docker consul

docker consul的容器服务更新与发现

服务注册与发现是微服务架构中不可或缺的重要组件,起始服务都是单节点的,不保障高可用性,也不考虑服务的承载压力,服务之间调用单纯的通过接口访问的,直到后来出现多个节点的分布式架构,起初的解决手段是在在前端负载均衡,这样前端必须要知道所有后端服务的网络位置,并配置在配置文件中。

为解决后端需要调用后端服务器a-n,就需要配置n个服务器的网络位置,配置很麻烦

;后端服务的网络位置变化,都需要每个调用者的配置的问题

可以配置服务器发现模块

docker consul_第1张图片

什么是consul

consul是google开源的一个使用go语言开发的服务管理软件。支持多数据中心、分布式高可用的、服务发现和配置共享。采用Rat算法,用来保证服务的高可用。内置务注册与发现框架、分布一致性协议实现、健康检查、Key/Value存储、多数据中心方案,不再需要依赖其他工具 (比如2ooKeeper等)服务部罢简单,只有一个可运行的二进制的包。每个节点都需要运行agent,他有两种运行模式server 和 client。每个数据中心官方建议需要3或5个server节点以保证数据安全,同时保证server-leader的选举能够正确的进行。

在client模式下,所有注册到当前节点的服务会被转发到server节点,本身是不持久化这些信息。在server模式下,功能和client模式相似,唯一不同的是,它会把所有的信息持久化到本地,这样遇到故障,信息是可以被保留的。server-leader是所有server节点的老大,它和其它server节点不同的是,它需要负责同步注册的信息给其它的server节点,同时也要负责各个节点的健康监测。

consul提供的一些关键特性:服务注册与发现: consul通过DNS或者HTTP接口,一些外部服使服务注册和服务发现变的很容易务,例如saas提供的也可以一样注册。健康检查:健康检测使consu1可以快速的告警在集群中的操作。和服务发现的集成,可以防止服务转发到故障的服务上面。Key/Value存储:个用来存储动态配置的系统。提供简单的HTTP接口,可以在任何地方操作。多数据中心:无需复杂的配置,即可支持任意数量的区域。

总结:consul 服务的自动发现和注册

解决什么问题?

如果后端有大规模的服务节点集群,负载均衡器配置会很麻烦的问题(配置条目数量众多或一个后端服务节点网络位置发生改变需要修改所有使用者配置等问题)

docker consul_第2张图片

registrator把注册信息写入condul再有consul写入nginx的配置文件upstream。

手机发现的信息,将所有需要注册的信息持久化本地,可以通过server-leader将注册信息同步给其他server节点,以及对各个server节点做健康检查。

你可能感兴趣的:(docker,java-consul,consul)