通过内部负载均衡为集群服务提供统一的服务端口

最近更新时间:2021-01-26 15:15:05

查看PDF

大数据场景下,通常是以集群的形式向外提供服务。在程序代码中通常需要填入集群的所有hosts。

例如,Kakfa的服务列表为:

kmr-dd626f75-gn-6de00bfb-core-1-001.ksc.com
kmr-dd626f75-gn-6de00bfb-core-1-002.ksc.com
kmr-dd626f75-gn-6de00bfb-master-1-001.ksc.com

ES的服务列表为:

kmr-1f56d223-gn-ef4a457b-master-1-001.ksc.com
kmr-1f56d223-gn-ef4a457b-master-2-001.ksc.com
kmr-1f56d223-gn-ef4a457b-master-2-002.ksc.com

Zookeeper的服务列表为:

kmr-dd626f75-gn-6de00bfb-core-1-002.ksc.com:2181
kmr-dd626f75-gn-6de00bfb-core-1-001.ksc.com:2181
kmr-dd626f75-gn-6de00bfb-master-1-001.ksc.com:2181

如果将服务列表硬编码在程序代码中,后续服务集群规模有调整时,都需要对应进行调整,针对这种情况,可以使用内部负载均衡,将实际提供服务的host和端口屏蔽调,只为程序代码暴露负载均衡地址,具体的集群规模调整都在负载均衡中进行。

具体流程如下:

  1. 在控制台中创建负载均衡
    image.png
  2. 创建监听器
    image.png
  • 选择正确的VPC;
  • 填写要监听的端口,例如zookeeper填写2181,Kafka则为6667;
  • 选择后端的真实实例;
  • 添加真实服务器响应的端口;

image.png

这里列出了两个监听器,一个是监听Zookeeper的请求,一个是监听Kafka的请求。

后续集群规模的调整,只需要在负载均衡的真实服务器添加或删除就可以。在程序中填入的集群服务host不再需要填写集群的全部host而是填写负载均衡的IP地址。

文档内容是否对您有帮助?

根本没帮助
文档较差
文档一般
文档不错
文档很好

在文档使用中是否遇到以下问题

内容不全,不深入
内容更新不及时
描述不清晰,比较混乱
系统或功能太复杂,缺乏足够的引导
内容冗长

更多建议

0/200

评价建议不能为空

提交成功!

非常感谢您的反馈,我们会继续努力做到更好!

问题反馈