我尝试在 DNS 服务器加上两台新服务器的地址,
不出所料,真的可以这么做。
因为 DNS 会基于轮循负载算法返回地址,只要用户拿到每个地址的机会是均衡的,
请求到我服务器也会是均衡的。于是,我的目的间接达到了。

问题延伸:服务单宕机,无法轻易处理。

一个合格的负载均衡器是怎样的

上面的方案看起来挺好的,我自己不需要增加多余的机器,就轻易实现了负载均衡。但是,我还是遇到了问题。

有一天,用户访问商城服务出现大量报错,原因是第三台服务器的服务突然挂掉了,但是 1/3 的请求还是落到这一台。因为一时排查不出问题的根源,而且重启没多久又会马上挂掉,我试着把这台服务器的地址从 DNS 上剔除出来。然而,另一个问题出现了,DNS 的更新并没有生效,我剔除了故障机器的地址,请求还是会落到这一台······

经历了这一回,我总算明白,单纯使用 DNS 做负载均衡还是不靠谱。

一个合格的负载均衡器至少要做到:当部分服务出现故障时,自动将其屏蔽,当服务恢复后,再将屏蔽放开
显然,DNS 不能很好地满足。经过研究,我发现了 nginx、SLB、ALB 等等负载均衡器,它们都可以做到这一点。最后,我选择了 SLB 作为负载均衡器。

使用Eureka做负载均衡器
后来,我发现了一个更好的方案,那就是 Eureka。和 SLB 不同,Eureka 是专门针对 mid-tier services 的负载均衡器。它主要包含三个部分:

Eureka Server:存放服务名和服务对应地址的映射表,这就是我们常说的服务注册中心。开篇的时候我说过,“Eureka 是一个服务注册中心”这种说法是片面的,这里就能知道原因了吧。

Eureka Client for application service:服务提供方,向 Eureka Server 注册自己的地址。例如,mid-tier services 所在应用就属于这一类。

Eureka Client for application client:服务消费方,从 Eureka Server 获取 application service 的地址,并消费对应的服务,它包含内置的负载均衡器。例如,订单服务调用客户服务的 mid-tier services,那么订单服务就是一个 application client。

当然,这三个部分都可以进行横向的扩展。
下图只画出了订单服务调用客户服务的示例,其他的是一样的。

引用 https://www.cnblogs.com/ZhangZiSheng001/p/14313051.html

怎么做才能将请求平摊到多台服务器上面去呢相关推荐

  1. 同步服务老是报错_SQL2005的维护计划做异地备份,采用另一台服务器设置共享文件夹的方式同步。但是一直报错,本地备份可以...

    步骤 ID1 服务器WIN-4HJFID58MLT 作业名称 Subplan_yidibeifen 步骤名称Subplan_yidibeifen 持续时间00:00:01 SQL 严重性0 SQL 消 ...

  2. linux脚本好难,如何做才能学好Shell脚本的经验总结

    大多同学反馈Shell脚本不容易学,感觉学完了Shell脚本这部分课程,还是不能写出脚本来. 我来帮大家分析一下原因,并解说如何做才能学好Shell脚本. 之所以你觉得难学,写不出东西来.是因为,太生 ...

  3. VSCode 阅读 Linux 代码怎么才不卡顿?这样做才能快的飞起!

    Linux 内核代码用什么编辑器? 分享过怎么学习 Linux 内核代码的思路,当时顺便提了一点,奇伢是用 vscode 看内核代码.有同学对此提出了疑问: vscode 看 Linux 代码不卡吗? ...

  4. aspen怎么做灵敏度分析_数据分析终极难题:数据分析怎么做才能驱动业务?

    今天来说说数据驱动业务这个话题,但凡企业搞信息化建设.数字化转型的大多都是扛着"数据驱动业务"的大旗往前冲的,渴望通过数据分析来驱动业务增长,但是在实际工作中,大部分的数据分析项目 ...

  5. 如何买到好的固态硬盘?这样做才能不被骗

    如何买到好的固态硬盘?这样做才能不被骗 在行业涨价的大背景下,我们在选择固态硬盘产品的时候更是需要提高警惕,多多了解关于固态硬盘产品的参数和关键术语,多加斟酌和比较不同品牌,避免被不良商家的文字游戏所 ...

  6. 项目管理excel_项目管理甘特图是什么?怎么做才能更高效?(EXCEL制作甘特图详细步骤)...

    项目管理甘特图是什么?甘特图即Gantt chart,又被称之为横道图.条状图.其命名是由提出者亨利·L·甘特(Henrry L.Ganntt)先生的名字而来的.甘特图是以图示的方式,并通过活动列表和 ...

  7. 居民安装光伏系统常会碰壁 怎么样做才能少走弯路?

    很多人做事情,总是对不上点子,找不到合适的路子,往往南辕北辙,多走了路不说,还碰了不少次壁,所以当处理一件事情的时候,大多数人都会寻求那条"终南捷径". 近1-2年时间,户用分布式 ...

  8. 抖音自媒体是如何赚钱的,怎么做才能挣到更多的钱?

    大家好,这里是"杨铭创业圈",现在自媒体比较流行,很多人私信我问自媒体如何赚钱,今天就针对于这块分享一下,同时也会剖析的讲一下如何做才能挣到更多的钱. 大家都在做短视频,但不一定每 ...

  9. 网校系统开发如何做才能保证系统稳定发展

    疫情的出现,加速了在线教育的发展.尤其是在教育领域本就资源不平等的环境中,在线教育的出现,无疑是改善了教育领域存在的弊端.网校系统开发商也紧紧抓住机会,开发出不同版本的网校系统,供有所需求的用户使用. ...

最新文章

  1. 【ACM】杭电OJ 2044 2045
  2. 欧歌赛机器人_本页面内容已永久停止用户浏览!
  3. java项目怎么定义异常_在Java项目中如何实现自定义异常
  4. GitHub 热榜:文字识别神器,超轻量级中文 OCR!
  5. Java集合框架之fastutil
  6. 文本生成器(bzoj 1030)
  7. API标准化成为技术团队面临的最大挑战
  8. vim grep配置及使用
  9. 滴滴市值超百度 达到791亿美金
  10. matlab符号函数sgn,latex 符号函数sgn
  11. 基于R语言的方差分析
  12. python图像差分法目标检测_OpenCV实现帧差法检测运动目标
  13. 模电摸索日记之《集成运算放大器》
  14. 计算机位移指令的作用,移位指令
  15. python 中文排序(按拼音)
  16. html 大转盘游戏,HTML5 Canvas大转盘抽奖活动页面代码
  17. 无线控制需要服务器,无线局域网无线控制器管理用户通过RADIUS服务器认证的配置-Cisco.PDF...
  18. SV-- event(二)
  19. 【多模态】Multi-modal chemical information reconstruction from images and texts for exploring the
  20. 脸萌~基于SVG绘制

热门文章

  1. 漫谈Servlet(一)
  2. go语言和java比_闲话Python, Go, Java
  3. 堆排序,为什么升序排列要建大堆,降序排列要建小堆
  4. Java 编码最容易疏忽的 10 大问题!
  5. Android Studio 导入 AOSP 源码 1
  6. Java并发之Condition的实现分析
  7. 项目中记录影响性能的缓慢数据库查询
  8. 使用Spring配合Junit进行单元测试的总结
  9. 《1024伐木累》-程序员妹子与花木兰
  10. 如何帮孩子成为最好的自己