深入浅出微服务2

1.Feign-》面向接口开发
2.Okhttp
3.HttpClient
4.RestTemplate

Http &Rpc

NIO的实现,针对不同场景使用不同序列化。

分布式实现

深入浅出微服务2
1 临时节点、持久化节点
2 watch机制

zookeeper

基于注册中心引入

它的真正用意是什么? 分布式协调组件

google chubby->不开源
分布式一致性问题、分布式锁

GFS -> 存在多个服务

一致性解决方案 -> 服务(chubby)

选举出一个master(类似一个锁)

雅虎->Apache(捐献给zookeeper)
深入浅出微服务2
zookeeper设计

  1. 防止单点故障(设计一个集群(master、slave) leader\follower\observer)
  2. 数据同步
  3. leader选举算法(paxos(zookeeper不是使用)-> zab协议(zookeeper使用paxos思想实现的 zab协议)
  4. 2pc协议:当发送请求后,所有请求都返回确定,才会提交请求,否则会回退
    深入浅出微服务2
    zookeeper:改进的2pc协议,可以理解成进行投票,少数服从多数的思想。
    深入浅出微服务2

List< ZNode >

private List< ZNode > znode

create/delete/set/get

锁的基本实现

zookeeper的基本特征

1 创建节点
create /node v
a 顺序节点 -s
b 同一级别节点不存在重复
c 创建节点时必须创建全路径
d 临时节点(没有心跳后,会自动删除)
2 删除节点
delete /node
3 修改节点
set /node 3
4 查找节点

#watcher 通过get -w 对节点进行监听
监听事件被被触发后,事件就失效了

负载均衡

  1. 首先需要拿到目标服务所有地址
  2. 实现动态感知
    命名服务
    分布式锁
    有序节点、临时节点、唯一性

配置中心
key-value

分布式全局ID
序节点有序新