文档章节

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

liwei2000
 liwei2000
发布于 2017/07/25 14:58
字数 451
阅读 26
收藏 2

一、 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的集群

 

face/emZWEi6etwQjmFZTmYA7TsBTQaiRbbfJ.png

 

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

 

步骤:

1、设置hosts:C:\Windows\System32\drivers\etc\hosts;

# 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

 

另一种集群方式(不可用):

 face/4taHC72wB2hQiSwChERK7GnWbwah2rbe.png

说明:注册中心1指向注册中心2, 注册中心2指向注册中心3,那么当服务向注册中心1注册时,注册中心2中会有该服务的注册信息,但是注册中心3中没有。

 

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

 

证实:PeerAwareInstanceRegistryImpl类

 face/y73rbEYQrwjQtE8wyPxHWmKPnixRNhAP.png

 

// 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.

如果是本机的,不要向自己发同步请求

参考微服务视频内容:http://www.roncoo.com/

本文转载自:http://www.roncoo.com/article/detail/128086

共有 人打赏支持
liwei2000
粉丝 39
博文 56
码字总数 43050
作品 0
贵阳

暂无文章

GO 数组相关操作

package mainimport("fmt""math/rand""time")func main() {//数组的几种定义方式var arr1 [3]int = [3]int{1,2,3}var arr2 = [3]int{4,5,6}arr3 := [3]string{"h", "w", ......

汤汤圆圆
32分钟前
1
0
JAVA 中interrupt、interrupted和isInterrupted的区别

首先,我们说明下三个方法的功能 interrupt() 向当前调用者线程发出中断信号 isinterrupted() 查看当前中断信号是true还是false interrupted() 是静态方法,查看返回当前中断信号并将中断信号...

我爱春天的毛毛雨
37分钟前
1
0
Coding and Paper Letter(二十二)

资源整理。 1 Coding: 1.开源项目openeo api。oponEO开发了一个开放的API,以简单统一的方式将R,python和javascript客户端连接到对地观测大数据云平台的后台。 此存储库包含此API,即oponE...

胖胖雕
今天
1
0
RxJS的另外四种实现方式(三)——性能最高的库

接上篇 RxJS的另外四种实现方式(二)——代码最小的库(续) 代码最小的库rx4rx-lite虽然在性能测试中超过了callbag,但和most库较量的时候却落败了,于是我下载了most库,要解开most库性能...

一个灰
今天
5
0
马太效应

马太效应

yizhichao
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部