负载均衡

关于负载均衡的一切:总结与思考

有些话、适合烂在心里 提交于 2019-12-22 20:43:21
  古人云,不患寡而患不均。   在计算机的世界,这就是大家耳熟能详的负载均衡( load balancing ),所谓负载均衡,就是说如果一组计算机节点(或者一组进程)提供 相同的(同质的)服务 ,那么对服务的请求就应该均匀的分摊到这些节点上。负载均衡的前提一定是“provide a single Internet service from multiple servers”, 这些提供服务的节点被称之为server farm、server pool或者backend servers。   这里的服务是广义的,可以是简单的计算,也可能是数据的读取或者存储。负载均衡也不是新事物,这种思想在多核CPU时代就有了,只不过在分布式系统中,负载均衡更是无处不在,这是分布式系统的天然特性决定的,分布式就是利用大量计算机节点完成单个计算机无法完成的计算、存储服务,既然有大量计算机节点,那么均衡的调度就非常重要。   负载均衡的意义在于,让所有节点以最小的代价、最好的状态对外提供服务,这样系统吞吐量最大,性能更高,对于用户而言请求的时间也更小。而且,负载均衡增强了系统的可靠性,最大化降低了单个节点过载、甚至crash的概率。不难想象,如果一个系统绝大部分请求都落在同一个节点上,那么这些请求响应时间都很慢,而且万一节点降级或者崩溃,那么所有请求又会转移到下一个节点,造成雪崩。   事实上

配置STP、RSTP以及负载均衡

纵然是瞬间 提交于 2019-12-22 19:04:17
生成树协议是一种二层管理协议,它通过有选择性地阻塞网络冗余链路来达到消除网络二层环路的目的,同时具备链路的备份功能。 每个VLAN都生成一棵树是一种比较直接,而且最简单的解决方法。它能够保证每一个VLAN都不存在环路。但是由于种种原因,以这种方式工作的生成树协议并没有形成标准,而是各个厂商各有一套,尤其是以Cisco的VLAN生成树PVST(Per VLAN Spanning Tree)为代表。 SW1,SW2,SW3同一的配置。 SW1为例 Switch>en Switch#conf t Enter configuration commands, one per line. End with CNTL/Z. Switch(config)#hostname SW1 SW1(config)#interface range fastEthernet 0/23-24 SW1(config-if-range)#switchport mode trunk SW1(config-if-range)#end SW1#show interfaces trunk Port Mode Encapsulation Status Native vlan Fa0/23 on 802.1q trunking 1 Fa0/24 on 802.1q trunking 1 Port Vlans allowed on

分布式系统的基础知识

走远了吗. 提交于 2019-12-22 04:47:04
一.网络通信模型:TCP/IP网络模型 二.网络IO的实现方式   1.BIO方式:一个线程只处理一个Socket   2.NIO方式:一个线程可以处理多个Socket   3.AIO方式:和NIO的区别是NIO在有通知时可以进行操作,AIO在有通知时操作已完成 三.负载均衡的方式   1.硬件负载均衡设备,透明代理   2.LVS(负载均衡系统),透明代理 四.数据库的分布式存储系统   1.分布式文件系统   2.分布式cache系统   3.分布式数据库 五.数据库的垂直拆分   即不同的表放入不同的数据库 六.数据库的水平拆分   即同一张表放入不同的数据库    来源: https://www.cnblogs.com/2nao/p/6623532.html

SDN期末作业

徘徊边缘 提交于 2019-12-21 19:20:06
负载均衡程序 ->githubl链接 演示视频 ->githubl链接 负载均衡场景 程序分工 陈家进:拓扑搭建、视频剪辑 陈甘霖:流表设计和修正、视频录制 陈敏辉:测试与纰漏修改,ReadMe说明 赖志平:控制流表下发,负载均衡策略实现,实验的统筹与指导实现 课程总结 经过这学期软件定义网络课程的学习,了解了一些网络前沿的知识,在上机课中学习了OPENFLOW 、ODL的使用,还学会了自己创建简单的拓扑,虽然还是对这些知识很模糊,但还是收获良多。 来源: https://www.cnblogs.com/StephenChenin/p/8359044.html

服务器负载均衡有什么优点

落爺英雄遲暮 提交于 2019-12-21 18:45:16
随着网站、应用访问量的增加,一台服务器已经不能满足应用的需求,而需要多台服务器集群,这时就会用到负载均衡,那么负载均衡优点有那些呢,壹基比知曰来说说 负载均衡设备优势 负载均衡优化了访问请求在服务器组之间的分配,消除了服务器之间的负载不平衡,从而提高了系统的反应速度与总体性能; 负载均衡可以对服务器的运行状况进行监控,及时发现运行异常的服务器,并将访问请求转移到其它可以正常工作的服务器上,从而提高服务器组的可靠性采用了负均衡器器以后,可以根据业务量的发展情况灵活增加服务器,系统的扩展能力得到提高,同时简化了管理。 负载均衡器有多种多样的形式,除了作为独立意义上的负载均衡器外,有些负载均衡器集成在交换设备中,置于服务器与Internet链接之间,有些则以两块网络适配器将这一功能集成到PC中,一块连接到Internet上,一块连接到后端服务器群的内部网络上。 一般而言,硬件负载均衡在功能、性能上优于软件方式,不过成本昂贵。当Web服务器为图像服务、SSL(安全套接层)会话或数据库事务而进行优化时,负载均衡器可以体现特别的价值。 当需要进行服务器升级或系统维护时,保证稳定的服务器退出服务以避免服务中断。当选定某台服务器要退出服务后,将不会将任何新的用户分配到该服务器。但是,它可以要该服务器完成对当前用户的服务。从而保证了无中断的优质服务,并且简化了服务器群的管理。 智能的服务器服务恢复

Nginx代理功能与负载均衡详解

蓝咒 提交于 2019-12-21 14:20:50
序言 Nginx的代理功能与负载均衡功能是最常被用到的,关于nginx的基本语法常识与配置已在上篇文章中有说明,这篇就开门见山,先描述一些关于代理功能的配置,再说明负载均衡详细。 Nginx代理服务的配置说明 1、上一篇中我们在http模块中有下面的配置,当代理遇到状态码为404时,我们把404页面导向百度。 error_page 404 https://www.baidu.com; #错误页 然而这个配置,细心的朋友可以发现他并没有起作用。 如果我们想让他起作用,我们必须配合着下面的配置一起使用 proxy_intercept_errors on; #如果被代理服务器返回的状态码为400或者大于400,设置的error_page配置起作用。默认为off。 2、如果我们的代理只允许接受get,post请求方法的一种 proxy_method get; #支持客户端的请求方法。post/get; 3、设置支持的http协议版本 proxy_http_version 1.0 ; #Nginx服务器提供代理服务的http协议版本1.0,1.1,默认设置为1.0版本 4、如果你的nginx服务器给2台web服务器做代理,负载均衡算法采用轮询,那么当你的一台机器web程序iis关闭,也就是说web不能访问,那么nginx服务器分发请求还是会给这台不能访问的web服务器

负载均衡算法

↘锁芯ラ 提交于 2019-12-21 03:45:32
一个网络请求中会经历多个节点的负载均衡:DNS、Nginx、网关、RPC(dubbo)等。但是负载均衡的算法大多数是一样的,下面列举一下。 以nginx的负载算法为例: 1、轮询+权重 2.、ip hash 3、url hash 4、least_conn 5、least_time 基本上就这些。这些算法不但是这些第三的组件用到,我们在开发的过程中自己写代码也可以使用。 来源: https://www.cnblogs.com/cuiqq/p/11960712.html

【架构-01】转载:微服务架构

…衆ロ難τιáo~ 提交于 2019-12-21 00:33:21
【架构-01】转载:微服务架构 纯洁的微笑公众号文章:【12张手绘图】我搞懂了微服务架构! 什么是微服务? 微服务架构是一种架构模式或者说是一种架构风格,它提倡将单一应用程序划分成一组小的服务,每个服务运行独立的自己的进程中,服务之间互相协调、互相配合,为用户提供最终价值。 服务之间采用轻量级的通信机制互相沟通(通常是基于 HTTP 的 RESTful API ) 。 每个服务都围绕着具体业务进行构建,并且能够被独立地部署到生产环境、类生产环境等。 另外,应尽量避免统一的、集中式的服务管理机制,对具体的一个服务而言,应根据业务上下文,选择合适的语言、工具对其进行构建,可以有一个非常轻量级的集中式管理来协调这些服务。 可以使用不同的语言来编写服务,也可以使用不同的数据存储。 根据马丁.福勒的描述,我总结了以下几点: ①小服务 小服务,没有特定的标准或者规范,但他在总体规范上一定是小的。 ②进程独立 每一组服务都是独立运行的,可能我这个服务运行在 Tomcat 容器,而另一个服务运行在 Jetty 上。可以通过进程方式,不断的横向扩展整个服务。 ③通信 过去的协议都是很重的,就像 ESB,就像 SOAP,轻通信,这意味着相比过去更智能更轻量的服务相互调用,就所谓 smart endpoints and dumb pipes。 这些 Endpoint 都是解耦的

负载均衡所谓的四层❓七层❓

心不动则不痛 提交于 2019-12-20 23:57:32
目录 写在最前: 一、简单分析 1、换句话理解二、三、四、七 2、四到七层负载均衡 3、负载均衡器通常称为四层交换机或七层交换机 4、四层交换 5、七层交换 6、注意 二、区别 1、技术原理上 2、应用场景上 三、一些主流负载均衡软件 1、NGINX 优点: 缺点: 2、LVS 优点: 缺点: 3、HAProxy 的特点 4、NGINX 对比 LVS 的总结 5、现在对网络负载均衡的使用是随着网站规模的提升根据不同的阶段来使用不同的技术 写在最前: 所谓四层就是基于 IP + PORT 的负载均衡 所谓七层就是基于 URL 等应用层信息的负载均衡 同理,还有基于 MAC 地址的二层负载均衡和基于 IP 地址的三层负载均衡 一、简单分析 1、换句话理解二、三、四、七 二层负载均衡会通过一个虚拟 MAC 地址接收请求,然后再分配到真实的 MAC 地址 三层负载均衡会通过一个虚拟 IP 地址接收请求,然后再分配到真实的 IP 地址 四层通过虚拟 IP + PORT 接收请求,然后再分配到真实的服务器 七层通过虚拟的 URL 或主机名接收请求,然后再分配到真实的服务器 2、四到七层负载均衡 所谓的四到七层负载均衡,就是在对后台的服务器进行负载均衡时,依据四层的信息或七层的信息来决定怎么样转发流量。 比如四层的负载均衡,就是通过发布三层的 IP 地址(VIP),然后加四层的端口号

如何在客户端实现服务的负载均衡

馋奶兔 提交于 2019-12-20 19:44:36
思考一个问题:如果为同一个提供者在Eureka中注册多个服务?客户端应该如何选择服务呢? 这时,就需要在客户端实现服务的负载均衡。而在Spring Cloud中推荐使用Ribbon来实现负载均衡。 1、Ribbon简介 Ribbon是Netflix发布的负载均衡器。它有助于控制HTTP和TCP客户端的行为。为Ribbon配置服务提供者地址列表后, Ribbon就可基于某种负载均衡算法,自动地帮助服务消费者去请求。Ribbon默认为我们提供了很多的负载均衡算法,例如轮询、随机等。当然,我们也可为 Ribbon实现自定义的负载均衡算法。 2、架构 3、开始使用Ribbon 3.1. 为microservice order增加ribbon依赖 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-ribbon</artifactId></dependency> 其实,该依赖是可以省略的,因为spring-cloud-starter-netflix-eureka-client中已经包含了spring-cloud-starter-netflix-ribbon: 3.2. 为RestTemplate设置@LoadBalanced注解