它说我们可以使用 finagle ServerSet 和 Zookeeper 来创建一个集群。
- 我应该使用 finagle 服务器构建器来启动 kestrel 集群吗?或者集群可以仅使用 finagle 客户端构建。
- 在集群中分配队列的算法是什么?
1 我们需要使用 kestrel 作为库,而不是运行原来的 kestrel。基于 finagle 库的代码红隼服务器。
我们可以在客户端使用 ServerSet 来引用在 ZooKeeper 注册的 kestrel 集群。
https://github.com/robey/kestrel/blob/master/docs/guide.md
在 kestrel 服务器端,如果指定了 KestrelConfig 的可选 zookeeper 字段,kestrel 将尝试使用给定的配置来加入一组逻辑的 kestrel 服务器。ZooKeeper 主机、端口和其他连接选项记录在这里:ZooKeeperBuilder
Kestrel 服务器将根据其当前状态加入 0、1 或 2 个服务器集
2 消息发送者将把消息发送到一个随机挑选的 kestrel 服务器。消息接收器将监听所有 kestrel 服务器,并在任何 kestrel 服务器收到消息时得到通知。所以同一个队列分布在所有服务器上,没有算法。