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
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
相关文章推荐
- (2-2)SpringCloud-服务注册到Eureka Server集群并消费
- 【微服务架构】SpringCloud之Eureka(注册中心集群篇)(三)
- SpringCloud服务注册到Eureka Server
- Spring-cloud Eureka 集群
- springcloud实战之3 高可用服务注册中心(eureka集群)
- 【微服务架构】SpringCloud之Eureka(注册中心集群篇)(三)
- (01) SpringCloud: Eureka Server 搭建
- springcloud-eureka集群-整合hystrix框架
- 四、Spring Cloud - Netflix(Eureka注册中心集群构建代码层面)
- Spring Cloud Eureka Server HA With Docker
- java.io.FileNotFoundException: class path resource [templates/] spring-cloud-netflix-eureka-server
- SpringCloud(第 004 篇)用户服务类(添加服务注册,将用户微服务注册到 EurekaServer 中)
- Spring cloud系列四 Eureka 之概述和服务注册中心集群
- spring cloud eureka server 配置
- springcloud记录篇1-eurekaserver
- SpringCloudEureka集群
- SpringCloud(第 004 篇)用户服务类(添加服务注册,将用户微服务注册到 EurekaServer 中)
- spring-cloud-eureka (二) Client - Server 接口交互(消息发送)源码分析
- Spring Cloud Eureka 集群高可用
- 学习Spring Cloud第六课(将微服务注册到Eureka Server上)