spring cloud 学习(2) - eureka server注册中心高可用及安全认证
2017-06-27 20:28
726 查看
接上节继续,注册中心单点肯定是不牢靠的,可以参考下面的方案做成注册中心集群:
弄成3个节点,每个节点向其它节点注册,这样只要集群中有一个节点正常工作即可。为了方便在本机弄出这种效果,我们先修改下host文件
127.0.0.1 localhost server1 server2 server3
相当于给本机ip绑了3个hostname。然后在项目中,创建3个profile,参考下图:
application.yml:
application-server1.yml:
application-server2.yml:
application-server3.yml:
弄成3个节点,每个节点向其它节点注册,这样只要集群中有一个节点正常工作即可。为了方便在本机弄出这种效果,我们先修改下host文件
127.0.0.1 localhost server1 server2 server3
相当于给本机ip绑了3个hostname。然后在项目中,创建3个profile,参考下图:
application.yml:
spring: application: name: eureka-server-cluster profiles: active: server1
application-server1.yml:
server: port: 8100 eureka: instance: hostname: server1 instance-id: ${spring.application.name}:${server.port} client: service-url: defaultZone: http://server2:8200/eureka,http://server3:8300/eureka
application-server2.yml:
server: port: 8200 eureka: instance: hostname: server2 instance-id: ${spring.application.name}:${server.port} client: service-url: defaultZone: http://server1:8100/eureka,http://server3:8300/eureka
application-server3.yml:
server: port: 8300 eureka: instance: hostname: server3 instance-id: ${spring.application.name}:${server.port} client: service-url: defaultZone: http://server1:8100/eureka,http://server2:8200/eureka [/code]
其它不用改,idea中启用时,指定3个不同的profile,参考下图:
启用3个实例,分别应对server1,server2,server3 这三个profile后,看下UI
可以看到,每个eureka server都向其它节点注册了。
其它服务向eureka server集群注册时,参考下面的配置:server: port: 8001 spring: application: name: "service-provider-demo" eureka: instance: prefer-ip-address: true client: service-url: defaultZone: http://localhost:8100/eureka/,http://localhost:8200/eureka/,http://localhost:8300/eureka/
再来看另一个问题:
注册中心的管理界面以及服务注册时,没有任何认证机制,安全性比较差,如果其它服务恶意注册一个同名服务,但是实现不同,可能就有风险了,可以参考下面的配置改进:
先添加:compile 'org.springframework.boot:spring-boot-starter-security' 依赖,然后在eureka server的application.yml中增加security: basic: enabled: true user: name: yjmyzz #用户名 password: 123456 #密码
这样就添加了1个用户名及密码(注:其原理就是spring-security,熟悉spring-security的朋友,也可以改成把用户名/密码存储在数据库中)
启动后,再浏览eureka server就用输入用户名,密码了。
然后其它服务注册时,相应的defautZone也要改成类似:
defaultZone: http://yjmyzz:123456@server1:8100/eureka,http://yjmyzz:123456@server2:8200/eureka 这种格式。
相关文章推荐
- Spring Cloud (19) | Eureka Server 高可用服务注册中心
- spring cloud-给Eureka Server加上安全的用户认证详解
- SpringCloud(第 051 篇)EurekaServer集群高可用注册中心以及简单的安全认证
- SpringCloud(第 051 篇)EurekaServer集群高可用注册中心以及简单的安全认证
- spring cloud-给Eureka Server加上安全的用户认证
- Spring Cloud 入门 分布式注册中心Eureka Server 使用
- Spring Cloud(Dalston.SR5)--Eureka 注册中心高可用搭建
- Spring Cloud-Eureka注册发现高可用(学习实践)
- Spring Cloud(Dalston.SR5)--Eureka 注册中心高可用-服务提供和消费
- SpringCloud(第 051 篇)EurekaServer集群高可用注册中心以及简单的安全认证
- spring cloud-给Eureka Server加上安全的用户认证
- 【Spring Cloud】一、Eureka Server 服务注册中心服务端启动
- spring-cloud-eureka-server 注册中心启动不显示页面而是xml问题
- 学习Spring Cloud第六课(将微服务注册到Eureka Server上)
- Spring Cloud 注册中心Eureka
- (三)SpringBoot+SpringCloud —— 高可用的Eureka注册中心
- [bigdata-105] spring-cloud-02 服务注册 eureka server 双机高可用
- Spring Cloud学习:01服务注册及发现(Eureka)
- [置顶] idea创建springcloud项目图文教程(EurekaServer注册中心)(六)
- 【Spring Cloud学习】 像服务注册中心上注册服务