负载均衡

springboot dubbo负载均衡配置

匿名 (未验证) 提交于 2019-12-02 23:36:01
版权声明:版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_30591163/article/details/90634169 springboot dubbo负载均衡配置 1、多zookeeper yml配置 2、负载配置 random roundRobin leastActive consistentHash 1、多zookeeper yml配置 dubbo: registry: protocol: zookeeper address: 127.0.0.1:2181|192.168.34.109:2181 2、负载配置 dubbo: reference: loadbalance: roundrobin random 随机,按权重设置随机概率。 在一个截面上碰撞的概率高,但调用量越大分布越均匀,而且按概率使用权重后也比较均匀,有利于动态调整提供者权重。 roundRobin 轮询,按公约后的权重设置轮询比率。 存在慢的提供者类即请求问题,比如:第二台机器很慢,但没挂,当请求调到第二台时就卡在那,久而久之,所有请求都卡在调到第二台上。 leastActive 最少活跃调用数,相同活跃数的随机,活跃数指调用前后计数差。 使慢的提供者收到更少请求,因为越慢的提供者的调用前后计数差会越大。 consistentHash 一致性Hash

客户端负载均衡 - Ribbon

匿名 (未验证) 提交于 2019-12-02 23:32:01
/*--> */ /*--> */ /*--> */ /*--> */ /*--> */ Ribbon是Netflix公司开源的一个负载均衡的项目(https://github.com/Netflix/ribbon),它是一个基于HTTP、TCP的客户端负载均衡器。 服务端负载均衡 负载均衡是微服务架构中必须使用的技术,通过负载均衡来实现系统的高可用、集群扩容等功能。负载均衡可通过硬件设备及软件来实现,硬件比如:F5、Array等,软件比如:LVS、Nginx等。 /*--> */ /*--> */ /*--> */ /*--> */ /*--> */ 用户请求先到达负载均衡器(也相当于一个服务),负载均衡器根据负载均衡算法将请求转发到微服务。负载均衡算法有:轮训、随机、加权轮训、加权随机、地址哈希等方法,负载均衡器维护一份服务列表,根据负载均衡算法将请求转发到相应的微服务上,所以负载均衡可以为微服务集群分担请求,降低系统的压力 /*--> */ /*--> */ /*--> */ /*--> */ /*--> */ 客户端负载均衡 上图是服务端负载均衡,客户端负载均衡与服务端负载均衡的区别在于客户端要维护一份服务列表,Ribbon从Eureka Server获取服务列表,Ribbon根据负载均衡算法直接请求到具体的微服务,中间省去了负载均衡服务。 Ribbon负载均衡的流程图:

Docker环境下的前后端分离项目部署与运维(一)项目简介及环境要求

匿名 (未验证) 提交于 2019-12-02 23:32:01
项目简介 本教程将从零开始部署一个的开源项目,利用docker虚拟机的容器技术,采用分布式集群部署,将项目转换成为高性能、高负载、高可用的部署方案。包括了MySQL集群、Redis集群、负载均衡、双机热备等等。 部署图 所用到的主流技术 Docker 容器、前后端集群、MySQL集群、Redis集群、Haproxy负载均衡、Nginx负载均衡、Keepalived实现双机热备 前后端分离项目部署图 前后端分离项目开源框架介绍 本次教程所采用的的项目开源框架是人人网的renren-fast,前台开发语言采用Vue,后台是java。 总体部署方案概述 数据库我们采用的是集群,每一个MySQL节点都是要发布到一个 Docker 虚拟机实例中(实例就是一个虚拟的空间,或者叫容器),每一个MySQL都要部署到独立的容器里面,这些MySQL之间有一个集群环境。 然后我们不能把所有的数据库的请求都定向给一个MySQL去处理,因为这样负载会很高,所以我们应该分散MySQL的处理数据的请求,那么我们该怎么做呢? 答案就是做一个负载均衡,后台程序发给数据库所有的请求都由负载均衡分散给其余的MySQL,这些MySQL就能去处理对应的请求了,这样每一个MySQL节点的负载相应的会低一点。 而后台项目要体现的就是高可用,任何一个节点挂掉后不影响整体的运行,所以后台项目也要搞集群

ribbon负载均衡策略

匿名 (未验证) 提交于 2019-12-02 23:32:01
ribbon负载均衡策略 Greenwich.SR1版本 类 中文 描述 RandomRule 随机策略 随机选择server RoundRobinRule 轮询策略 按顺序循环选择server RetryRule 重试策略 在配置时间内选择server不成功,则一直尝试选择一个可用的server BestAvailableRule 最低并发策略 逐个考察server,如果server断路打开,则忽略,再选择并发连接最低的server AvailabilityFilteringRule 可用过滤策略 过滤掉一直连接失败并标记为circuit breaker tripped的server,过滤掉高并发连接的server WeightedResponseTimeRule 响应时间加权策略 根据server的响应时间分配权重,响应时间越长,权重越低,被选择的概率越低;响应时间越高,权重越高,被 选中的概率越高 ZoneAvoidanceRule 区域权衡策略 综合判断server所在区域的性能和server的可用性轮询选择server Ribbon默认的负载均衡策略是 ZoneAvoidanceRule ,可以在类 RibbonClientConfiguration看到 文章来源: https://blog.csdn.net/u013887008/article/details

设计一个分布式RPC框架

匿名 (未验证) 提交于 2019-12-02 23:05:13
提前先祝大家春节快乐!好了,先简单聊聊。 我从事的是大数据开发相关的工作,主要负责的是大数据计算这块的内容。最近Hive集群跑任务总是会出现Thrift连接HS2相关问题,研究了解了下内部原理,突然来了兴趣,就想着自己也实现一个RPC框架,这样可以让自己在设计与实现RPC框架过程中,也能从中了解和解决一些问题,进而让自己能够更好的发展(哈哈,会不会说我有些剑走偏锋?不去解决问题,居然研究RPC。别急,这类问题已经解决了,后续我也会发文章详述的)。 原理图上我已经标出来流程序号,我们来走一遍: ① Client以本地调用的方式调用服务 ② Client Stub接收到调用后,把服务调用相关信息组装成需要网络传输的消息体,并找到服务地址(host:port),对消息进行 编码 后交给Connector进行发送 ③ Connector通过网络通道发送消息给Acceptor ④ Acceptor接收到消息后交给Server Stub ⑤ Server Stub对消息进行 解码 ,并根据解码的结果通过 反射 调用本地服务 ⑥ Server执行本地服务并返回结果给Server Stub ⑦ Server Stub对返回结果组装打包并 编码 后交给Acceptor进行发送 ⑧ Acceptor通过网络通道发送消息给Connector ⑨ Connector接收到消息后交给Client Stub

Ribbon出厂提供的负载均衡策略

匿名 (未验证) 提交于 2019-12-02 23:03:14
1.简单轮询负载均衡(RoundRobinRule) No available alive servers after 10 tries from load balancer: XXXX 。 2.加权响应时间负载均衡 (WeightedResponseTimeRule) 3.随机负载均衡 (RandomRule) 4.区域感知轮询负载均衡(ZoneAvoidanceRule) 5.选择一个最小的并发(BestAvailableRule) 6.过滤失败连接(AvailabilityFilteringRule) 7.重试功能(RetryRule) choose(ILoadBalancer lb, Object key) 方法中,每次还是采用RoundRobinRule中的choose规则来选择一个服务实例,如果选到的实例正常就返回,如果选择的服务实例为null或者已经失效,则在失效时间deadline之前不断的进行重试(重试时获取服务的策略还是RoundRobinRule中定义的策略),如果超过了deadline还是没取到则会返回一个null。 8.过滤服务(PredicateBasedRule) 参考资料 1. https://lxlong.iteye.com/blog/2314573 2. https://segmentfault.com/a/1190000011159573 备注

Nginx反向代理,负载均衡,redis session共享,keepalived高可用

匿名 (未验证) 提交于 2019-12-02 22:10:10
相关知识自行搜索,直接上干货。。。 使用的资源: nginx主服务器一台,nginx备服务器一台,使用keepalived进行宕机切换。 tomcat服务器两台,由nginx进行反向代理和负载均衡,此处可搭建服务器集群。 redis服务器一台,用于session的分离共享。 nginx主服务器:192.168.50.133 nginx备服务器:192.168.50.135 tomcat项目服务器1:192.168.50.137 tomcat项目服务器2:192.168.50.139 redis服务器:192.168.50.140 注意访问时需要配置防火墙规则,或者关闭防火墙 首先进行的通用安装: 总的需要模拟五台服务器,使用vmware,全部使用centos6.5 64位,五台服务器全部安装jdk,我使用的是jdk1.8. 1.安装VMware虚拟机,安装linux系统,此处使用centOS6.5 64位,安装linux命令行工具,上传文件工具,此处使用SecureCRT,SecureFX 。安装教程不再赘述,百度一大堆.......... 这步有问题请使劲点: www.baidu.com 2.在linux上安装jdk: 安装jdk:卸载openjdk版本,上传解压jdk,配置环境变量----参考: http://jingyan.baidu.com/article

nginx负载均衡

匿名 (未验证) 提交于 2019-12-02 22:10:10
负载均衡的作用 负载均衡:分摊到多个操作单元上进行执行,和它的英文名称很匹配。就是我们需要一个调度者,保证所有后端服务器都将性能充分发挥,从而保持服务器集群的整体性能最优,这就是负载均衡。 负载均衡这里面涉及的东西相对也是比较多的,理论就不说太多了,网上,书上很多,今天我们就利用Nginx服务器来实现一个简单的负载均衡。 负载均衡算法 源地址哈希法:根据获取客户端的IP地址,通过哈希函数计算得到一个数值,用该数值对服务器列表的大小进行取模运算,得到的结果便是客服端要访问服务器的序号。采用源地址哈希法进行负载均衡,同一IP地址的客户端,当后端服务器列表不变时,它每次都会映射到同一台后端服务器进行访问。 轮询法:将请求按顺序轮流地分配到后端服务器上,它均衡地对待后端的每一台服务器,而不关心服务器实际的连接数和当前的系统负载。 随机法:通过系统的随机算法,根据后端服务器的列表大小值来随机选取其中的一台服务器进行访问。 加权轮询法:不同的后端服务器可能机器的配置和当前系统的负载并不相同,因此它们的抗压能力也不相同。给配置高、负载低的机器配置更高的权重,让其处理更多的请;而配置低、负载高的机器,给其分配较低的权重,降低其系统负载,加权轮询能很好地处理这一问题,并将请求顺序且按照权重分配到后端。 加权随机法:与加权轮询法一样,加权随机法也根据后端机器的配置,系统的负载分配不同的权重。不同的是

nginx 反向代理 负载均衡配置

匿名 (未验证) 提交于 2019-12-02 22:10:10
负载均衡是指一台主服务器接收请求,转发到多台服务器组成的服务器集群,让多台服务器平均分担负载。 我在VMware上装了3台centos,其中一台作为反向代理服务器,其余两台组成服务器集群。 A:192.168.0.167 B:192.168.0.168 C:192.168.0.169 反向代理服务器 用户直接访问C服务器,由C服务器转发请求到A和B服务器。 C服务器nginx.conf 配置: 在 http { 内添加以下代码 upstream myserver { #myserver为自定义的名称 server 192.168 . 0.167 : 80 ; #服务器A的ip server 192.168 . 0.168 : 80 ; #服务器B的ip } 在location / { 内添加以下代码 proxy_pass http : //myserver; #转发到哪个服务器集群,我这里为http://myserver A、B服务器nginx.conf 配置(如果服务器中只有一个server域,这一步可以省略) 把 server { 内的server_name改成服务器C的ip或域名 server_name 192.168 . 0.169 ; 然后把两个完全一样的项目分别部署到服务器A、B上。 这里为了测试,我把两个index.php文件分别放到A、B服务器上 并分别写入内容