详解Docker负载均衡和服务发现

本文详细介绍了Docker的负载均衡和服务发现,包括相关术语如Dubbo、LVS、Nginx等,讨论了容器化带来的问题及其解决方案。重点阐述了微服务发现方案,如DNS、内核空间LVS/IPVS、用户空间Nginx和HAProxy的优缺点,并提出Docker自带DNS服务发现、SLB和HAProxy的动态服务发现策略。最后,根据场景提供了服务形态和对应的路由服务总结。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

640?wx_fmt=jpeg

640?wx_fmt=gif&wxfrom=5&wx_lazy=1

Docker 是一个开源项目,诞生于 2013 年初,最初是 dotCloud 公司内部的一个业余项目,自开源后受到广泛的关注和讨论,以至于dotCloud 公司后来都改名为 Docker Inc。

Docker 是一个使用Go语言开发的开源的应用容器引擎,是PaaS提供商dotCloud开源的一个容器引擎。Docker 遵从 Apache 2.0 协议,项目代码在 GitHub 上进行维护。

简单讲,Docker就是一个可以分配资源的进程隔离模型。Docker 项目的目标是实现轻量级的操作系统虚拟化解决方案。

相关术语解释

  • Dubbo:阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和Spring框架无缝集成。

  • LVS:Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统。

  • Ipvs:IP虚拟服务器(IP Virtual Server,简写为IPVS)。是运行在LVS下的提供负载平衡功能的一种技术

  • Nginx:一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。

  • HAProxy:一个使用C语言编写的自由及开放源代码软件[1],其提供高可用性、负载均衡,以及基于TCP和HTTP的应用程序代理。

  • 南北通信:指的是整个容器集群入口的通信。南北通信的特点往往是通信量比较大,因此我们首先用SLB将流量分散到各个主机节点。

  • 东西通信:指的是集群内部,容器和容器间的通信方式。

 

技术原理介绍

容器化带来的问题

在缺省网络模型中,容器每次重启后,IP会发生变动,在一个大的分布式系统保证IP地址不变是比较复杂的事情。

IP频繁发生变动,动态应用部署无法预知容器的IP地址,client端如何发现server端的访问端点?

问题解决方案

根据客户端是否有感知进行分类。

客户端的发现:client 订阅注册中心,有一个固定的注册中心地址,client订阅某个服务的注册中心,注册中心根据服务的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值