纯手写本地负载均衡器轮训算法 | 学习笔记

简介: 快速学习 纯手写本地负载均衡器轮训算法

开发者学堂课程【精通 Spring Cloud Alibaba纯手写本地负载均衡器轮训算法学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/634/detail/10071


纯手写本地负载均衡器轮训算法


目录:

一、Rpc远程调用设计到本地负载均衡算法。

二、运行


一、Rpc 远程调用设计到本地负载均衡算法。

1. 从注册中心获取服务集群的列表。

2.从列表选择一个 负载均衡算法有那些:

A.一致性 hash 计算。

B.轮训、权重.

C.随机

采用什么设计模式:策略模式

假设我们两台服务器集群,访问次数集群 size

1%2=1.

2%2=0.

3%2=1.

4%2=0.

1%1=0,


二、运行

import org.springframework.cloud.client.ServiceInstance;

import java.util.List;

@author 蚂蚁课堂创始人-余胜军QQ644064779

@title:RotationLoadBalancer

@description:每特教育独创第五期互联网架构课程

@date 2020/1/722:08

public class RotationLoadBalancer implements LoadBalancer

private AtomicInteger atomicInteger = new AtomicInteger(initialValue:0);

@Override

public ServiceInstance getSingleAddres(List<ServiceInstance> serviceInstances)

int index = atomicInteger.incrementAndGet()% serviceInstances.size();

return serviceInstances.get(index);

@RestController

public class OrderService

@Autowired

private DiscoveryClient discoveryClient; @Autowired

private RestTemplate restTemplate; @Autowired

private LoadBalancer loadBalancer;

订单服务调用到我们的会员服务接口

@return

@RequestMapping("/orderToMember")

public Object orderToMember()(

// 1.根据服务名称从 注册中心获取集群列表地址

List<ServiceInstance>instances=

discoveryClient.getInstances( serviceld:"meitemayikt-member");

// 2.列表任意选择一个 实现本地 rpc 调用 rest 采用我们负载均衡的算法

ServiceInstance srviceInstance = loadBalancer.get

SingleAddres(instances);

URI rpcMemberUrl = srviceInstance.getUri();String result = restTemplate.getForObject(url:rpcMemberUrl +"/getUser", String.class);

return

"订单调用会员返回结果:"+result;

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
相关文章
|
负载均衡 算法 Java
Spring Cloud全解析:负载均衡算法
本文介绍了负载均衡的两种方式:集中式负载均衡和进程内负载均衡,以及常见的负载均衡算法,包括轮询、随机、源地址哈希、加权轮询、加权随机和最小连接数等方法,帮助读者更好地理解和应用负载均衡技术。
441 2
|
存储 负载均衡 算法
负载均衡算法
负载均衡算法
159 1
|
7月前
|
负载均衡 算法 关系型数据库
大数据大厂之MySQL数据库课程设计:揭秘MySQL集群架构负载均衡核心算法:从理论到Java代码实战,让你的数据库性能飙升!
本文聚焦 MySQL 集群架构中的负载均衡算法,阐述其重要性。详细介绍轮询、加权轮询、最少连接、加权最少连接、随机、源地址哈希等常用算法,分析各自优缺点及适用场景。并提供 Java 语言代码实现示例,助力直观理解。文章结构清晰,语言通俗易懂,对理解和应用负载均衡算法具有实用价值和参考价值。
大数据大厂之MySQL数据库课程设计:揭秘MySQL集群架构负载均衡核心算法:从理论到Java代码实战,让你的数据库性能飙升!
|
负载均衡 算法 搜索推荐
Nginx 常用的负载均衡算法
【10月更文挑战第17天】在实际应用中,我们需要根据具体的情况来选择合适的负载均衡算法。同时,还可以结合其他的优化措施,如服务器健康检查、动态调整权重等,来进一步提高负载均衡的效果和系统的稳定性。
383 59
|
缓存 负载均衡 算法
slb支持多种负载均衡算法
slb支持多种负载均衡算法
416 6
|
负载均衡 NoSQL 算法
一天五道Java面试题----第十天(简述Redis事务实现--------->负载均衡算法、类型)
这篇文章是关于Java面试中Redis相关问题的笔记,包括Redis事务实现、集群方案、主从复制原理、CAP和BASE理论以及负载均衡算法和类型。
一天五道Java面试题----第十天(简述Redis事务实现--------->负载均衡算法、类型)
|
11月前
|
负载均衡 算法
架构学习:7种负载均衡算法策略
四层负载均衡包括数据链路层、网络层和应用层负载均衡。数据链路层通过修改MAC地址转发帧;网络层通过改变IP地址实现数据包转发;应用层有多种策略,如轮循、权重轮循、随机、权重随机、一致性哈希、响应速度和最少连接数均衡,确保请求合理分配到服务器,提升性能与稳定性。
2396 11
架构学习:7种负载均衡算法策略
|
负载均衡 算法 应用服务中间件
5大负载均衡算法及原理,图解易懂!
本文详细介绍负载均衡的5大核心算法:轮询、加权轮询、随机、最少连接和源地址散列,帮助你深入理解分布式架构中的关键技术。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
5大负载均衡算法及原理,图解易懂!
|
负载均衡 算法
SLB-Backend的负载均衡算法
【10月更文挑战第19天】
222 5
|
负载均衡 算法 应用服务中间件
Nginx 常用的负载均衡算法
【10月更文挑战第22天】不同的负载均衡算法各有特点和适用场景。在实际应用中,需要根据具体的业务需求、服务器性能和网络环境等因素来选择合适的算法。
379 3

热门文章

最新文章