向各位大佬请教一个问题,在一个局域网内有 N 台服务器,每台服务器上都有两份 XML(一份 a.xml 存储该台服务器的信息,另外一份 b.xml 存储该局域网内所有服务器的信息) 。
请问这个需求通过什么技术实现比较好,感觉有点类似于飞秋的功能。望大佬们点拨一下呀,提供一下搜索关键字也好呀。
![]() | 1 jasonyang9 2019-12-16 15:13:31 +08:00 ![]() 无中心架构就是靠广播咯,协议大致是这样的: * 当新增服务器时,发送 Hello 包,内容有自己的信息(即 a.xml ),其它服务器收到后更新自己的 b.xml * 当服务器更改自己的 a.xml 时,广播,其它服务器收到后更新自己的 b.xml * 当服务器下线时发送 Byebye 包,其它服务器收到后更新自己的 b.xml * 如果考虑到服务器宕机的可能性,那么要定期测试(心跳)其它所有服务器,发现失效的更新自己的 b.xml 。。。当然这都是好人模式,没有认证的,服务器傻傻的相信自己收到的所有数据包。。。 |
![]() | 2 luoqeng 2019-12-16 15:35:36 +08:00 ![]() 这是一个共识问题,如何确保 b.xml 的一致性? 解决方法就是选个 Raft 或者 Paxos 协议选举出 leader 保存下来。 去中心化的 区块链? |
3 aLife20 OP |
5 Delon 2019-12-16 16:23:29 +08:00 mDNS |
![]() | 6 wangyzj 2019-12-16 16:35:27+08:00 用 etcd 或者 zookeeper 啊 |
8 lihongjie0209 2019-12-16 18:01:14 +08:00 参考一下思科的设备发现协议, 这种事情在网络层很常见 |