由zookeeper开始看看所谓的软负载均衡

待总结算法

咱们在微服务架构中,经常使用一些注册中心进行订阅消费咱们的服务,这时候对于同一服务请求会有不一样的机器同时能够提供服务,这时是怎么选择哪一台机器去链接获取服务呢?安全

 

 

负载均衡设备做为纵跨网络2-7层协议的设备,每每放置再网络设备和应用设备的链接处,
同时它也有另外一个称呼:4/7层交换机,但它首先是个2-3层交换机。

 

 

在没有部署负载均衡设备以前,用户直接访问服务器地址(中间或许有在防火墙上将服务器地址映射成别的地址,但本质仍是一对一)。当单台服务器没法处理大量用户的访问时,就要考虑多台服务器提供服务,就需实现负载均衡了。负载均衡设备实现的原理是把多台服务器的地址映射成一个对外的服务IP(能够成为VIP),这个过程对用户是透明的,由负载均衡设备进行分发处理用户请求后统一出口响应。服务器

例以下面的例子,用户访问一个域名,先经过DNS服务器查询解析这个域名的公网地址(其实就是负载均衡设备的IP),接下来访问该地址,到达负载均衡设备,由此从新修改请求数据包部分数据,如将请求地址(目的地址)改成分发处理的服务器地址,这叫NAT,同时返回时也可能有NAT。网络

下面先总结一下三个基本的特征:负载均衡算法(策略),健康检查,会话保持架构

负载均衡算法负载均衡

轮询(RoundRobin):按请求顺序分发请求给队列中的服务器处理微服务

比率(Ratio):给队列中的每一个服务器分配一个加权值为比例,把每一个请求按比例分发性能

优先权(Priority):给全部服务器分组,给每一个组定义优先权,按照优先级分发请求到组(组内分发可按照轮询或者比率)学习

最少链接数(LeastConnection):负载均衡设备记录每一个服务器或者服务端口上的链接数,新的链接将分发给链接数少的服务器url

最快响应时间(Fast Response time):新的链接分发给响应最快的服务器

哈希算法(Hash):将客户端的源地址端口进行哈希运算,根据结果分发给对应的机器

基于策略:针对不一样的数据流设置导向规则,用户自行编辑流量分配策略,利用这些策略对经过的数据流实施导向控制

基于数据包内容:可根据HTTP的url是否带有.jpg扩展名,分发给指定的服务器处理

健康检查

健康检查用于负载均衡设备检查服务器开放的各类服务的可用状态,可配置的检查方法有如ping,TCP,UDP,HTTP,FTP,DNS等。

建立健康检查能够设定检查的间隔时间和尝试次数。最好结合应用状况来评估设置,既不会对业务产生影响,又不会对负载设备产生很大负担。

会话保持

假设同一个用户的不一样请求连续访问,链接是须要从新分发仍是固定服务器处理呢?

其实因为服务器之间很难作到实时同步用户访问信息,好比用户登录请求在一台机器处理,后续应用请求分发给其余机器处理的话,这时实时获取到集群其余机器中该用户的登录信息成本是跟高的,因此对于同一用户的连续请求在负载均衡设备作会话保持动做,将同源地址请求分发给同一机器响应处理。固然对于一些静态页面数据能够不用保持会话,例如公告新闻类,在每台机器的响应结果都是同样的。

补充知识

一个设备工做在哪一层,关键看它工做时利用哪一层的数据头部信息。网桥工做时,是以MAC头部来决定转发端口的,所以显然它是数据链路层的设备。 
具体说: 
物理层:网卡,网线,集线器,中继器,调制解调器 
数据链路层:网桥,交换机 
网络层:路由器 
网关工做在第四层传输层及其以上。 
集线器是物理层设备,采用广播的形式来传输信息。 
交换机就是用来进行报文交换的机器。多为链路层设备(二层交换机),可以进行地址学习,采用存储转发的形式来交换报文.。 
路由器的一个做用是连通不一样的网络,另外一个做用是选择信息传送的线路。选择通畅快捷的近路,能大大提升通讯速度,减轻网络系统通讯负荷,节约网络系统资源,提升网络系统畅通率。

交换机和路由器的区别

交换机拥有一条很高带宽的背部总线和内部交换矩阵。交换机的全部的端口都挂接在这条总线上,控制电路收到数据包之后,处理端口会查找内存中的地址对照表以肯定目的MAC(网卡的硬件地址)的NIC(网卡)挂接在哪一个端口上,经过内部交换矩阵迅速将数据包传送到目的端口,目的MAC若不存在则广播到全部的端口,接收端口回应后交换机会“学习”新的地址,并把它添加入内部MAC地址表中。

使用交换机也能够把网络“分段”,经过对照MAC地址表,交换机只容许必要的网络流量经过交换机。经过交换机的过滤和转发,能够有效的隔离广播风暴,减小误包和错包的出现,避免共享冲突。

交换机在同一时刻可进行多个端口对之间的数据传输。每一端口均可视为独立的网段,链接在其上的网络设备独自享有所有的带宽,无须同其余设备竞争使用。当节点A向节点D发送数据时,节点B可同时向节点C发送数据,并且这两个传输都享有网络的所有带宽,都有着本身的虚拟链接。假使这里使用的是10Mbps的以太网交换机,那么该交换机这时的总流通量就等于2×10Mbps=20Mbps,而使用10Mbps的共享式HUB时,一个HUB的总流通量也不会超出10Mbps。

总之,交换机是一种基于MAC地址识别,能完成封装转发数据包功能的网络设备。交换机能够“学习”MAC地址,并把其存放在内部地址表中,经过在数据帧的始发者和目标接收者之间创建临时的交换路径,使数据帧直接由源地址到达目的地址。

从过滤网络流量的角度来看,路由器的做用与交换机和网桥很是类似。可是与工做在网络物理层,从物理上划分网段的交换机不一样,路由器使用专门的软件协议从逻辑上对整个网络进行划分。例如,一台支持IP协议的路由器能够把网络划分红多个子网段,只有指向特殊IP地址的网络流量才能够经过路由器。对于每个接收到的数据包,路由器都会从新计算其校验值,并写入新的物理地址。所以,使用路由器转发和过滤数据的速度每每要比只查看数据包物理地址的交换机慢。可是,对于那些结构复杂的网络,使用路由器能够提升网络的总体效率。路由器的另一个明显优点就是能够自动过滤网络广播。

集线器与路由器在功能上有什么不一样?

首先说HUB,也就是集线器。它的做用能够简单的理解为将一些机器链接起来组成一个局域网。而交换机(又名交换式集线器)做用与集线器大致相同。可是二者在性能上有区别:集线器采用的式共享带宽的工做方式,而交换机是独享带宽。这样在机器不少或数据量很大时,二者将会有比较明显的。而路由器与以上二者有明显区别,它的做用在于链接不一样的网段而且找到网络中数据传输最合适的路径。路由器是产生于交换机以后,就像交换机产生于集线器以后,因此路由器与交换机也有必定联系,不是彻底独立的两种设备。路由器主要克服了交换机不能路由转发数据包的不足。

总的来讲,路由器与交换机的主要区别体如今如下几个方面:

(1)工做层次不一样 
最初的的交换机是工做在数据链路层,而路由器一开始就设计工做在网络层。因为交换机工做在数据链路层,因此它的工做原理比较简单,而路由器工做在网络层,能够获得更多的协议信息,路由器能够作出更加智能的转发决策。

(2)数据转发所依据的对象不一样 
交换机是利用物理地址或者说MAC地址来肯定转发数据的目的地址。而路由器则是利用IP地址来肯定数据转发的地址。IP地址是在软件中实现的,描述的是设备所在的网络。MAC地址一般是硬件自带的,由网卡生产商来分配的,并且已经固化到了网卡中去,通常来讲是不可更改的。而IP地址则一般由网络管理员或系统自动分配。

(3)传统的交换机只能分割冲突域,不能分割广播域;而路由器能够分割广播域 
由交换机链接的网段仍属于同一个广播域,广播数据包会在交换机链接的全部网段上传播,在某些状况下会致使通讯拥挤和安全漏洞。链接到路由器上的网段会被分配成不一样的广播域,广播数据不会穿过路由器。虽然第三层以上交换机具备VLAN功能,也能够分割广播域,可是各子广播域之间是不能通讯交流的,它们之间的交流仍然须要路由器。

(4)路由器提供了防火墙的服务 路由器仅仅转发特定地址的数据包,不传送不支持路由协议的数据包传送和未知目标网络数据包的传送,从而能够防止广播风暴。

相关文章
相关标签/搜索