Java教程

Eureka注册中心

本文主要是介绍Eureka注册中心,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

什么是注册中心:     注册中心是微服务架构中的"通讯录",他记录了服务和服务地址的映射关系。在分布式架构中,服务会注册到这里,当服务需要调用其他服务时,就到这里找到服务的地址,进行调用。     就是:在没有注册中心的时候,服务间的调用需要知道被当当服务调方的具体地址(写死的ip:port)。更换部署地址,就不得不修改调用当中的指定地址。而有了注册中心之后,每个服务在调用别人的时候只需要知道服务名称(软编码)就可以了,地址都会通过注册中心根据服务名称获取到具体的服务地址进行调用。 常见的注册中心:     Netfilx Eureka     Alibaba Nacos     HashiCorp Consul     Apache Zookeeper     CoreOs Etcd     CNCF CoreDNS CAP原则:     指的是在一个分布式系统中,Consistency(一致性)、Availability(可用性)、Partition tolerance(分区容错性),三者不可兼得。 取舍策略:     Cap三个特性只能满足其中的两个,取舍无非三种:     ca:如果不要p(不允许分区),则c(强一致性)和a(可用性)是可以保证的。但是放弃p的同时也就意味着放弃了系统的拓展性,也就是分布式节点受限,没得办法部署子节点,这是违背分布式系统这几的初衷的。     cp:如果不要求A(可用),相当于每个请求都需要在服务器之间保持强一致性,而P(分区)会导致同步时间无限延长(也就是等待数据同步完才能正常访问服务),一旦发生网络故障或者消息丢失等情况,就要牺牲用户的体验,等待所有数据全部一致了之后再 让用户访问系统。设计成 CP 的系统其实不少,最典型的就是分布式数据库,如 Redis、HBase 等。对于这些分布式数据库来说,数据的一致性是最基本的要求,因为如果连这个标准都达不到,那么直接采用关系型数据库就好,没必要再浪费资源来部署分布式数据库。     ap: 要高可用并允许分区,则需放弃一致性。一旦分区发生,节点之间可能会失去联系,为了高可用,每个节点只能用本地数据提供服务,而这样会导致全局数据的不一致性。典型的应用就如某米的抢购手机场景,可能前几秒你浏览商品的时候页面提示是有库存的,当你选择完商品准备下单的时候,系统提示你下单失败,商品已售完。这其实就是先在 A(可用性)方面保证系统可以正常的服务,然后在数据的一致性方面做了些牺牲,虽然多少会影响一些用户体验,但也不至于造成用户购物流程的严重阻塞。 为什么需要注册中心:       注册中心解决了以下问题:
  • 服务管理
  • 服务之间的自动发现
  • 服务的依赖关系管理
    Eureka注册中心的三种角色:     Server、Consumer、Provider。

 

这篇关于Eureka注册中心的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!