我说的都是基于TCP消息传递的分布式。
网络层 : Netty , Mina. 我自己用的Netty, 公司用的Mina. (都是NIO,异步,当你有同步需求的时候很蛋疼,比如负载均衡)
消息传输格式 : google protocol buffer (我用的就是这个,序列化和饭序列化速度很快,缺点:要定义格式文件,没有继承的概念!!用编译器生成java代码,所以不要想extends)
集群管理, 心跳, FailOver通知, leader选举: zookeeper (基本快成行业标准了。)
负载均衡 :基于zookeeper自己写代码就可以(RoundRobin,WeightedRoundRobin)
缓存 : Redis (也快成行业标准了。速度暴快!配合protocol buffer很给力)
缓存定位 :自己写(根据你分布式缓存存储方式,比如full cache. 单点缓存。我用的单点缓存,参考一致性Hash)
我目前就做了这么多,如果你还想做消息列队,消息订阅之类的东西,直接用redis。
还有一些优秀的框架 参考: Hadoop IPC. dubbo.