我正在编写一个基于消息的客户端/服务器应用程序。我想尽可能地重复使用,而不是编写另一个实现并好奇其他人在使用什么。
图书馆应提供的功能:
- 客户端和服务器端功能
- 应该基于消息工作
- 支持多线程
- 应该在负载平衡器/防火墙后面工作
我用HTTPCore做了几个测试,但底线是必须同时实现客户端和服务器,只覆盖传输层。由于网络相关要求,RMI 也不是一个选项。
任何想法都受到高度赞赏。
细节
我的想法是实现一个客户端/服务器包装器,它处理客户端通信(包括用户/密码验证)并将传入请求写入 JMS 队列:
#1 User --> Wrapper (Check for user/password) --> JMS --> "Server"
#2 User polls Wrapper which polls JMS
单独的进程将处理请求,并可以通过包装器回复客户端。我想使用 JMS,因为:
- 它很好地处理持久性
- 负载平衡——通过添加额外的服务器作为消费者很容易处理峰值
- JMSTimeToLive 也很方便
不幸的是,我没有看到自己使用 JMS 的方法,因为客户端应该只能访问他们的消息,并且在 JMS 端设置不同的用户听起来也不可行。