纵横研究院微服务&容器专题社区

Spring Cloud注册中心

2019-04-11  本文已影响11人  二圈儿

1、 什么是注册中心

注册中心可以说是微服务架构中的”通讯录“,它记录了服务和服务地址的映射关系。在分布式架构中,服务会注册到这里,当服务需要调用其它服务时,就到这里找到服务的地址,进行调用。
服务提供者provider: 启动的时候向注册中心上报自己的网络信息。
服务消费者consumer: 启动的时候向注册中心上报自己的网络信息,拉取provider的相关网络信息。

2 、为什么需要注册中心

微服务应用和机器越来越多,调用方需要知道接口的网络地址,如果靠配置文件的方式去控制网络地址,对于动态新增机器,维护带来很大问题。

3、分布式应用知识CAP定理

CAP定理:指的是在一个分布式系统中,Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性),三者不可同时获得。

4、分布式系统CAP注册中心选择

CAP三者不可同时获得的原因:

  1. C A 满足的情况下,P不能满足的原因:
    数据同步(C)需要时间,也要正常的时间内响应(A),那么机器数量就要少,所以P就不满足。
  2. CP 满足的情况下,A不能满足的原因:
    数据同步(C)需要时间, 机器数量也多(P),但是同步数据需要时间,所以不能再正常时间内响应,所以A就不满足。
  3. AP 满足的情况下,C不能满足的原因:
    机器数量也多(P),正常的时间内响应(A),那么数据就不能及时同步到其他节点,所以C不满足。
注册中心选择:

5、注册中心搭建(使用IDEA)

File --> New -->Project

@SpringBootApplication
@EnableEurekaServer
public class EurekaServerApplication {
    public static void main(String[] args) {
        SpringApplication.run(EurekaServerApplication.class, args);
    }
}
server:
  port: 8761

eureka:
  instance:
    hostname: localhost
  client:
  #声明自己是个服务端
    registerWithEureka: false
    fetchRegistry: false
    serviceUrl:
      defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/

6、创建服务提供者向注册中心上报

server:
  port: 8771

#服务的名称
spring:
  application:
    name: product-service

#指定注册中心地址
eureka:
  client:
    service-url:
      defaultZone: http://localhost:8761/eureka/

7、Eureka服务注册中心配置控制台问题

  1. eureka管理后台出现一串红色字体:是警告,说明有服务上线率低

    由于自我保护模式默认是开启状态
    关闭检查方法:eureka服务端配置文件加入

server:
  enable-self-preservation: false

注意:不建议关闭,因为关闭会导致如若因为网络问题没上报至注册中心的服务也会被认为挂掉而清除掉了此服务。

  1. 为什么只加一个注册中心地址,就可以注册,而且很多资料显示启动类加注解@EnableEurekaClient
    查阅官网,给出解释如下: 官方文档:http://cloud.spring.io/spring-cloud-netflix/single/spring-cloud-netflix.html#spring-cloud-eureka-server
上一篇 下一篇

猜你喜欢

热点阅读