Eureka整理
来源:互联网 发布:金山软件安全卫士 编辑:程序博客网 时间:2024/06/08 01:03
概述
原理 : https://github.com/Netflix/eureka/wiki http://cloud.spring.io/spring-cloud-static/Camden.SR4/#_spring_cloud_netflix
源码:https://github.com/Netflix/eureka/
应用实例:
配置项:https://segmentfault.com/a/1190000008378268
重点细节
总体: Eureka是基于REST的服务,用来为分布式应用体系提供服务定位(负载均衡),服务宕机策略,同时Eureka Client还提供了复杂的负载均衡算法。
一个region中有一个eureka服务器群组,这个群组只知道这个region中的所有service。一个region分为多个zone,每个zone有一个server来处理服务请求。client向服务器注册自己,然后没30秒发一次心跳保持活跃装填。超过90秒没收到心跳,server将client踢出。service的信息会在所有的server中复制同步。每一个zone的client都能收到信息,而且可以根据信息进行跨zone的远程调用。(图见git wiki第一章)
关于配置 : 需要配置eureka server 和 eureka client。 server同时也是一个client,因为他需要寻找定位其他server。 eureka有自己的配置,但是我们使用spring cloud的配置方式代替原有的配置文件。具体方式就是在application.yml中添加配置项。
REST Operation: eureka的各个节点之间通过REST请求的方式进行操作。具体的api见 https://github.com/Netflix/eureka/wiki/Eureka-REST-operations。
client与server间的通信:client首先跟同zone的server对话,如果失败则跟其他zone的server通信。 application在访问client的时候会自动负载均衡。
所有的操作的信息都会在一定延迟后才能同步到所有的节点,这是因为无论是server缓存还是client从server上fetch数据都是周期性刷新的,当然,server会先于其他client同步。
client会从server周期性的fetch数据并缓存在本地,这样client在访问其他service的时候就不需要先访问server了。每次更新的数据会在server储存3分钟左右,client会自动处理获取的重复性数据。
注册:
server间得通信:server间会不停的同步数据。当一个server获取了所有节点的信息后,他会根据信息来设置阈值,一旦受到的ping数量低于阈值,系统会进入安全模式。安全模式下,任何instance都不会被判定为失效。安全模式下可能有一些实际失效的instance依然在登记列表中存活。server之间的通信与server与client的通信机制一样。
server间的通信障碍可能会导致各个server的信息不一致,这会在网络通信恢复之后自动恢复。
概念:instance,想server注册自己
client,可以发出请求定位其他service
client发现定位其他client的java代码:
@Autowiredprivate DiscoveryClient discoveryClient;public String serviceUrl() { List<ServiceInstance> list = discoveryClient.getInstances("STORES"); if (list != null && list.size() > 0 ) { return list.get(0).getUri(); } return null;}
spring官方文档提供了一些平时可能会用到的配置项。
待解决问题:1.跨region,不同region不能互相访问
2.AWS的应用
4.github代码整理
- Eureka整理
- Eureka!
- Eureka
- Eureka
- Eureka
- Eureka
- Eureka
- Eureka! (续)
- HDU5738 Eureka
- HDU5738 Eureka
- HDU_5738 Eureka
- SpringCloud Eureka
- eureka入门
- HDU5738 Eureka
- Eureka简介
- Eureka常见问题
- eureka使用
- SpringCloud.Eureka
- CSS的单位及css3的calc()及line-height百分比
- 机器学习算法小整理之K-means
- Codeforces Round #419 (Div. 2)A&B&技巧
- Linux进入单用户singleuser 模式
- linux杂记
- Eureka整理
- 跳动的心
- 20170904考试总结
- Centos Web 压力测试工具ApacheBench (ab)独立安装
- (11)java代码实现回复video类型的消息
- mysql 亿级查询优化(分页)
- 超好用的Bootstrap框架
- better-scroll的参数和方法
- C++学习笔记08