《Spring Cloud Netflix》-- 服务注册和服务发现-Eureka的服务认证和集群-阿里云开发者社区

开发者社区> 开发与运维> 正文

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

简介: 在微服务架构中,Spring Cloud为基于JVM的云应用开发中的服务发现、负载均衡、断路器、智能路由、配置管理、控制总线等等操作提供了一种简单、快捷的开发方式。

一、 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 第一季

版权声明:本文首发在云栖社区,遵循云栖社区版权声明:本文内容由互联网用户自发贡献,版权归用户作者所有,云栖社区不为本文内容承担相关法律责任。云栖社区已升级为阿里云开发者社区。如果您发现本文中有涉嫌抄袭的内容,欢迎发送邮件至:developer2020@service.aliyun.com 进行举报,并提供相关证据,一经查实,阿里云开发者社区将协助删除涉嫌侵权内容。

分享:
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

其他文章