数据分片--请求路由

2018-05-19  本文已影响10人  MontyOak

当请求发送过来时,如何根据请求的键来确定应该吧请求发往哪个节点?这就是路由问题,延伸开来,可以被叫做是服务发现。在现有服务系统架构中,各个服务由网络交互,就会出现这个问题。
一般来讲有三种策略:

  1. 由客户端随机发送请求到某一数据节点,由该节点负责把请求转发给正确的数据节点;
  2. 由一个路由绑定器来负责将请求转发给正确的数据片,路由绑定器就是一个数据键与数据片/数据节点的映射表;
  3. 由客户端维护键与数据片/数据节点的映射关系,据此发送请求到目标节点;


    三种路由策略

三种策略的区别仅仅在于由哪里维护路由信息并负责请求转发。许多分布式系统中由一个服务发现中心负责维护这个信息,例如Zookeeperetcdconsul等等。这个服务发现中心负责接收各个节点发送来的注册信息,并提供给路由绑定器。(另外一个不依赖注册中心的方案是Gossip协议,它避免了潜在的单点问题,但是存在一个数据不一致的窗口期)

服务注册中心图示
上一篇下一篇

猜你喜欢

热点阅读