为你剖析Docker负载均衡和服务发现
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订阅某个服务的注册中心,注册中心根据服务的运行状态推送某个服务的访问端点列表给client端。该方案的实现举例有Dubbo、DNS的解析等。 (编辑:财气旺网 - 财气网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |