客户端 服务端
开发团队灵活修改 运维人员把控修改
运维成本低,开发人员直接可以修改 运维成本高
强依赖注册中心 不依赖注册中心
微服务框架 tomcat等传统应用

服务端负载均衡

负载均衡是我们处理高并发、缓解网络压力和进行服务端扩容的重要手段之一,但是一般情况下我们所说的负载均衡通常都是指服务端负载均衡,服务端负载均衡又分为两种,一种是硬件负载均衡,还有一种是软件负载均衡。
硬件负载均衡主要通过在服务器节点之间安装专门用于负载均衡的设备,常见的如F5。
软件负载均衡则主要是在服务器上安装一些具有负载均衡功能的软件来完成请求分发进而实现负载均衡,常见的就是Nginx。
无论是硬件负载均衡还是软件负载均衡都会维护一个可用的服务端清单,然后通过心跳机制来删除故障的服务端节点以保证清单中都是可以正常访问的服务端节点,此时当客户端的请求到达负载均衡服务器时,负载均衡服务器按照某种配置好的规则从可用服务端清单中选出一台服务器去处理客户端的请求。这就是服务端负载均衡。

客户端负载均衡

我们在Spring Cloud中服务的发现与消费一文中涉及到了客户端负载均衡,在那篇文章中我们提到 “Ribbon是一个基于HTTP和TCP的客户端负载均衡器,当我们将Ribbon和Eureka一起使用时,Ribbon会从Eureka注册中心去获取服务端列表,然后进行轮询访问以到达负载均衡的作用,客户端负载均衡中也需要心跳机制去维护服务端清单的有效性,当然这个过程需要配合服务注册中心一起完成。
从上面的描述我们可以看出,客户端负载均衡和服务端负载均衡最大的区别在于服务清单所存储的位置。在客户端负载均衡中,所有的客户端节点都有一份自己要访问的服务端清单,这些清单统统都是从Eureka服务注册中心获取的。在Spring Cloud中我们如果想要使用客户端负载均衡,方法很简单,开启@LoadBalanced注解即可,这样客户端在发起请求的时候会先自行选择一个服务端,向该服务端发起请求,从而实现负载均衡。

客户端负载均衡与服务端负载均衡对比相关推荐

  1. 客户端负载均衡与服务端负载均衡

    原文:https://segmentfault.com/a/1190000011081111 通过Nginx负载均衡服务器发送到不同的上游服务器去处理,这种负载均衡就是一种典型的服务端负载均衡,那么客 ...

  2. 服务端负载均衡和客户端负载均衡

    服务端负载均衡 用户在App访问通过80端口请求nginx,ngin来实现负载均衡,分发请求 客户端负载均衡 Eureka Server注册中心集群部署,goods_services服务提供者启动后向 ...

  3. SpringCloud(第 029 篇)配置客户端 ConfigClient 接入配置服务端

    SpringCloud(第 029 篇)配置客户端 ConfigClient 接入配置服务端 - 一.大致介绍 1.有配置服务端,那么势必就会有与之对应的客户端,SpringCloud 文档中集成也非 ...

  4. 确保客户端可以接收到服务端的异常serviceDebug includeExceptionDetailInFaults=true

    1.为了确保客户端可以接收到服务端反馈的异常 在服务端的配置文件中需要有 <system.serviceModel><behaviors><serviceBehavior ...

  5. MVC文件上传07-使用客户端jQuery-File-Upload插件和服务端Backload组件裁剪上传图片...

    本篇通过在配置文件中设置,对上传图片修剪后保存到指定文件夹. 相关兄弟篇: MVC文件上传01-使用jquery异步上传并客户端验证类型和大小  MVC文件上传02-使用HttpPostedFileB ...

  6. android binder - 客户端(c++层) 调用 服务端(java层),服务端回调客户端 例子

    学习了: android binder - 客户端(java层) 调用 服务端(c++层) 例子 http://blog.csdn.net/ganyue803/article/details/4131 ...

  7. 学习如何使用电脑客户端和ESP8266客户端来连接MQTT服务端以及订阅主题发送主题操作

    MQTT原理与应用 学习如何使用电脑客户端和ESP8266客户端来连接MQTT服务端 本文章学习借鉴于太极创客团队,以表感谢.官网[http://www.taichi-maker.com/] 文章目录 ...

  8. Android作为客户端,PC作为服务端:实现网络通信

    此项目实现网络通信,android手机客户端去请求PC服务端,将PC上mysql中的数据显示在手机上. PC服务端用JavaWeb写了个servlet,android手机客户端请求这个servlet, ...

  9. 服务器客户端证书,客户端如何验证HTTPS服务端证书信息

    通过一个例子说明客户端如何验证HTTPS服务端的证书信息. 类型浏览器如何验证WEB服务器的证书信息. 生成服务器端证书,以及CA证书 # generate ca certificate $ open ...

最新文章

  1. PHP流程控制语句例题,第四堂、php流程控制语句
  2. define() vs const 该如何选择?
  3. linux命令fdisk,Linux fdisk 命令使用详解
  4. 日程表、学生课表插件
  5. android 平板键盘布局,7款Android平板输入法横向评测,安卓平板软件HD/THD下载
  6. snmp使用默认团体名_CactiEZ 中文版snmp默认团体名
  7. sql注入 java_JAVA实现sql注入点检测
  8. 单片机- >网络模块(WIFI or 4G)->logstash->kafka->写入服务->es->grafana
  9. Linux常用命令指南
  10. 【CVPR2022】Beyond Fixation: Dynamic Window Visual Transformer
  11. Android studio配置代理下载依赖
  12. Java高级篇-----jdk1.8新特性
  13. 地磁传感器还可以用于室内定位?
  14. 浪潮服务器上RAID配置实战及RAID相关知识
  15. 苏州大学信息与通信工程837考研上岸经验分享
  16. 为了甩锅,我写了个牛逼的日志切面!
  17. elementui icon图标大全
  18. 跨交换机打通二层广播域不通问题解决过程
  19. 狂拽炫酷校园拽少与阳光善良少女的校园事
  20. 错误码429是什么错误?

热门文章

  1. 这篇文章是关于PDF文档解密软件推荐合集
  2. python flask-caching模块缓存详解
  3. 软件开发入门学习的个人看法(转自j2megame)
  4. document.getElementsByTagName
  5. maven项目pom.xml中添加axis2 的配置
  6. 记一次30位密钥长度RSA加密破解过程
  7. android studio安装 genymotion,Android Studio的模拟器genymotion
  8. 域用户计算机可以访问域控制器吗,组策略设置:使普通用户登陆域控制器的电脑...
  9. 天钰原装JD6606SP5芯片,多端口控制(MPC)应用, 过电压保护
  10. datediff oracle11,数据库中datediff函数用法