《Spring Cloud Netflix》-- 服务注册和服务发现-Eureka的服务认证和集群

    xiaoxiao2021-07-20  163

    一、 Eureka的服务认证

    1、 服务端添加依赖

    <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency>

    2、 服务端添加配置

    服务认证 security.basic.enabled=true security.user.name=roncoo security.user.password=123456

    3、 修改服务端和客户端的配置

    eureka.client.serviceUrl.defaultZone=http://roncoo:123456@localhost:8761/eureka/

    建议:能在内网的,尽量在内网,这样既可以保障安全,也能降低复杂度。

    二、 Eureka的集群

    说明:启动3个注册中心,我们将roncoo1、roncoo2、roncoo3各自都将serviceUrl指向另外两个节点,即是roncoo1、roncoo2、roncoo3是两两互相注册的。

    步骤:1、设置hosts:C:WindowsSystem32driversetchosts;

    # Cluster hosts 127.0.0.1roncoo1 127.0.0.1roncoo2 127.0.0.1roncoo3

    2、修改配置每个服务都需要相应的修改,服务-01

    spring.application.name=spring-cloud-server-01 eureka.instance.hostname=roncoo1 eureka.client.serviceUrl.defaultZone=http://roncoo:123456@roncoo2:8762/eureka/,http://roncoo:123456@roncoo3:8763/eureka/

    同理:服务-02,服务-03都做相对应的修改

    3、配置修改这里是为了测试,生产应该保持默认值:30s

    eureka.instance.lease-renewal-interval-in-seconds=5

    剔除失效服务的检测时间,默认值:60000,即60s

    eureka.server.eviction-interval-timer-in-ms=5000

    另一种集群方式(不可用):说明:注册中心1指向注册中心2, 注册中心2指向注册中心3,那么当服务向注册中心1注册时,注册中心2中会有该服务的注册信息,但是注册中心3中没有。

    结论:服务注册信息不会被二次传播。

    证实:PeerAwareInstanceRegistryImpl类

    // If it is a replication already, do not replicate again as this will create a poison replication如果该注册信息是其它Eureka同步过的则不会再继续传播给自己的peer节点// If the url represents this host, do not replicate to yourself.如果是本机的,不要向自己发同步请求

    参考内容:Spring Cloud 第一季


    最新回复(0)