微服务架构基础之注册中心性能优化
在微服务架构中,注册中心是核心的基础服务之一。在微服务架构流行以前,注册中心就已经开始出如今分布式架构的系统中。Dubbo是一个在国内比较流行的分布式框架,被大量的中小型互联网公司所采用,Dubbo是一个很是实用的框架,提供了比较完善的服务治理功能,而服务治理的实现主要依靠的就是注册中心。服务器
1 什么是注册中心架构
注册中心能够说是微服务架构中的”通信录“,它记录了服务和服务地址的映射关系。在分布式架构中,服务会注册到这里,当服务须要调用其它服务时,就到这里找到服务的地址,进行调用。并发
举个现实生活中的例子,好比说,咱们手机中的通信录的两个使用场景:负载均衡
上述两个场景就是咱们在微服务架构中经常提到的:框架
2 为何须要注册中心分布式
了解了什么是注册中心,那么咱们继续谈谈,为何须要注册中心。ide
在分布式系统中,咱们不单单是须要在注册中心找到服务和服务地址的映射关系这么简单,咱们还须要考虑更多更复杂的问题:微服务
这里问题的解决都依赖于注册中心。简单看,注册中心的功能有点相似于DNS服务器或者负载均衡器,而实际上,注册中心做为微服务的基础组件,可能要更加复杂,也须要更多的灵活性和时效性。高并发
3 常见的注册中心
结合开发中经常使用的微服务架构体系,再看注册中心。如下主要以Java体系中经常使用的微服务框架为例进行说明。
3.1 Dubbo中的注册中心
Dubbo支持多种注册中心的实现,经常使用的是:
此处,能够看到,以上的实现主要是为了集中存储服务的信息。而这些组件自己就能够作到高性能和高可用。
Dubbo官方架构图
在Dubbo架构图中,能够看到注册中心(Registry)位于顶端,全部的服务治理相关的操做都围绕它进行。服务提供者(Provider)注册到注册中心,服务消费者(Comsumer)到注册中心订阅,同时,注册中心中的变动也会通知服务消费者。
3.2 SpringCloud中的注册中心
目前,SpringCloud能够说是最流行的微服务架构,SpingCloud整个体系功能完备,与Spring框架完美契合,开箱即用,极大下降了落地微服务架构的开发成本。在SpringCloud中,也是支持多种注册中心的:
以上三种,最经常使用的主要是Eureka,官方是这样定义的:
Eureka is a REST (Representational State Transfer) based service that is primarily used in the AWS cloud for locating services for the purpose of load balancing and failover of middle-tier servers.
与Dubbo对于服务注册的抽象有所不一样,Eureka使用的是C/S架构:
并且,Eureka支持多节点的部署,从而保证高可用。生产环境中,经常使用的方式是部署两台节点,作成一个P2P的集群。
4 小结
本文主要从概念上对微服务架构中的注册中心进行分析讲解,让读者从宏观上去理解注册中心。文中主要以常见的注册中心为例,固然,在其余的微服务架构体系中,这些原理是基本相似的。读者能够结合本身的实际开发经验,理解注册中心的概念,从而更好地驾驭微服务。
顺便给你们推荐一个Java架构方面的交流学习群:698581634,里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化这些成为架构师必备的知识体系,主要针对Java开发人员提高本身,突破瓶颈,相信你来学习,会有提高和收获。在这个群里会有你须要的内容 朋友们请抓紧时间加入进来吧。