项目需要,在写Master/Slave底层分布式通信模块,它的体系结构图:
通信模式:可以选择Socket和或者Socket之上的RPC协议来进行,考虑到项目的需求,使用了RPC来支持Master和Slave之间的通信。
Master与Slave之间实现互联的功能并不难,但是Master与Slave之间的相互感知功能,Master节点的异常或者Slave节点的宕机,都是在设计时应该考虑的问题。
1)Slave节点正常退出之前,应该通知Master。这个功能通过Slave节点运行时添加Runtime.getRuntime().addShutdownHook(? extends Thread), 的方法来做处理, 在具体的Thread方法中仍然可以使用RPC来通知Master.
2) Slave节点非正常退出,这