您的位置:首页 > 编程语言 > Java开发

springCloud之Eureka Server集群

2017-10-28 23:16 363 查看
          在线上生产环境中,如果Eureka Server宕机时,某些服务业出现了不可用的情况,Eureka Client中的缓存如不被更新,就可能会影响到微服务的调用,甚至影响到整个应该用系统的高可用行。因此生成环境中通常会部署一个高可用的Eureka Server 集群。

         Eureka Server 可以通过运行多个实例并相互注册的方式实现高可用部署,Eureka Server实例会彼此增量地同步信息,从而确保所有节点数据一致。

        配置系统hosts,windows的hosts文件在System43/drivers/etc/hosts; linux的在/etc/hosts,修改为 127.0.0.1 peer1 peer2


spring:
application:
name: eureka-server2
---
spring:
profiles: peer1
server:
port: 9000
eureka:
instance:
hostname: peer1
client:
service-url:
defaultZone: http://peer2:9001/eureka/ ---
spring:
profiles: peer2
server:
port: 9001
eureka:
instance:
hostname: peer2
client:
service-url:
defaultZone: http://peer1:9000/eureka/[/code] 
使用mvn打包成jar,分别运行
java -jar eureka-server2-0.0.1-SNAPSHOT.jar --spring.profiles.active=peer1
java -jar eureka-server2-0.0.1-SNAPSHOT.jar --spring.profiles.active=peer2

mvn打包测试和运行的时候都会出现一下错误



这个错误主要是启动第一个的Server的时候向另一个发送心跳的时候,另一个Server还未启动,同时启动成功之后就没有该异常了。之后出现注:微服务即使只配置Eureka Server集群中的某个节点,也能注册到Eureka Server集群,因为多个Eureka Server之间的数据相互同步,但为了防止一些极端的情况,还是配置多个Eureka节点。



为Eureka添加用户认证
在Eureka Server配置maven依赖及用户密码

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

security:
basic:
enabled: true # 开启基于HTTP Basic的认证
user:
name: test1
password: 123456


注:Eureka Server节点url改为http://test2:123456@peer1:9000/eureka/
点击进入Eureka Server的时候会提示输入用户和密码

常见问题



保护模式主要用于一组客户端和Eureka Server之间存在网络分区场景下的保护,当客户端没有在一定时间向server进行心跳,就会自动进入保护模式,当心跳正常了也会自动解除。一旦进入保护模式,Eureka Server将会尝试保护其服务注册表中的信息,不再删除服务注册表中的数据(也就是不会注销任何微服务)。



原因:Eureka的Server没有启动成功,而在使用@EnableDiscoveryClient或者@EnableEurekaClient之后,该客户端会自动去寻找Eureka Server,如果找不到就会报这个错。

Eureka的元数据有两种,分别是标准元数据和自定义元数据。标准元数据包括主机名,IP地址,端口号,状态页,和健康检查等信息,被发布在服务注册表中,用于服务之间的调用。

自定义元数据eureka.instance.metadata-map.key=value (key和value随便写)



参考文章

http://blog.csdn.net/zzp448561636/article/details/70198878
http://www.roncoo.com/article/detail/128086
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: