服务发现Consul框架介绍

什么是服务注册与发现?

服务注册/发现是微服务架构中不可或缺的重要组件,起初服务都是单节点的甚至是单体服务,不保障高可用性,也不考虑服务的压力承载,服务之间调用单纯的通过接口访问(HttpClient/RestTemplate),直到后面出现了多个节点的分布式架构,起初的解决手段是在服务端负载均衡,同时在网关层收束接口,使不同的请求转发到对应不同端口上,这也是前后分离防止前端跨域的手段之一:

服务发现Consul框架介绍_第1张图片

 

要命的是,nginx并不具有服务健康检查的功能,服务调用方在调用一个服务之前是无法知悉服务是否可用的,不考虑这一点分布式的架构高可用的目标就成了一个摆设,解决手段也很简单:对超时或是状态码异常的请求进行重试尝试,请求会被分发到其他可用节点,或者采用服务注册与发现机制察觉健康的服务。

 

服务发现Consul框架介绍_第2张图片

Consul中的服务发现

consul在Java开发者眼中只有一个会被用到的功能:服务注册与发现,即Service Discovery,其核心流程如下:

服务发现Consul框架介绍_第3张图片

 

在consul中,假使是B服务调用A服务,其大致流程即为:

A服务调用consul的API注册自己 -> consul定时检查A服务状态(默认)或A服务本身与consul维持心跳请求 -> B服务通过consul提供的DNS调用A服务(默认)或从consul获取健康的服务列表并通过某种算法选择合适的服务调用。

 

你可能感兴趣的:(算法)