微服务架构中服务的注册与发现

Posted 多科学堂

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了微服务架构中服务的注册与发现相关的知识,希望对你有一定的参考价值。

服务发现的概念比较简单,但是微服务架构中的服务发现并不简单。我们这里先看看服务的注册与发现。

 

配置文件方案

 

 

 

 

当然对于 nginx 来讲,我们可以配置让 Nginx 忽略某些已故障的 upstream server。但是对于一般的业务服务A来讲,把Nginx的这套逻辑重新实现一遍很明显成本并不低。另外当这个大的业务体系里面有太多像A这样的服务时,实现故障侦测并自动忽略的成本就更高了。

 

 

数据库的方案

 

 

但是我们上面还提到个关于维护服务实例之外的问题,即服务的状态侦测。当有实例故障的时候我们要停止到该实例的调用,然后在该服务实例恢复正常之后,还要能够恢复对该实例的调用。这里面就不可避免地要周期性地轮询这些服务的状态,然后去更新数据库。

这种周期性轮询的时间间隔就和你能容忍的服务失败时间和服务恢复时间有关系。如果你希望能够尽快发现服务失败或恢复正常的服务调用,那么这个轮询间隔就比较长。

 

所以在这种方案的情况下,你的服务自身仍然需要去实现这个服务侦测的逻辑。本质上和基于配置文件的方式没有区别。

 

 

注册中心方案

 

 

对于上面的两个问题,注册中心通过如下的方法来实现。

 

 

 

小结

 

以上就是微服务架构体系中的服务注册和服务发现的原理。这个架构的产生主要是随着大型业务系统的部署和运维的架构的变化而产生的。所有的方案都有适用的场景,所有的方案变化都是因为目标的场景发生了变化。技术和架构的演进,都是有迹可循。思考一个架构存在的合理性的关键就是思考它面对的场景。

 

 

 

EOF


以上是关于微服务架构中服务的注册与发现的主要内容,如果未能解决你的问题,请参考以下文章

微服务架构中服务的注册与发现

微服务架构下的服务治理:如何在 SpringCloud 框架中实现服务的注册与发现

微服务架构中基于DNS的服务发现

微服务架构中服务注册与发现

微服务架构:Eureka集群搭建

Spring Cloud微服务架构—服务注册与发现