我是C++的新手,但是在Java EE方面有很多经验。
我需要编写一个高度异步的小型应用程序。它从HTTP接收数据并将其存储在一个队列中(它需要保证传递和非常高的吞吐量),例如ActiveMQ或OpenMQ,也许可以通过JMS。
然后,另一个C++应用程序/监听器(通过一些直接由Queue而不是由我的池激活的Listener)从Queue中取出数据,连接到MySQL数据库并进行一些业务逻辑计算,并将消息发送到另一个Queue。
在Java EE中,这将是一个Web应用程序,它将消息发送到JMS队列。消息驱动Bean将成为EJB模块中这些消息的使用者,而 session EJB会将消息发送到传出JMS队列。
有C++经验的人可以向我解释一些基本知识:
我们将非常感谢您提出有关如何实现上述方案的其他建议。
编辑:我希望消息代理和客户端使用C++。 ActiveMQ是Java产品,并不是我们真正需要的产品。
最佳答案
1-JMS-Java消息服务-仅是Java和Java的API引用。除AMQP之外,没有适用于C++的消息传递标准(在我看来,这并不是真正应有的跨实现工作)。对于C++,每种消息代理实现都必须依赖于特定的供应商库。
实现建议:
2-对于多线程,JMS规范也没有真正提供解决方案。它更像Java EE容器(或Spring框架),它简单地包装了线程的管理并减轻了开发人员的负担。在这种情况下,ActiveMQ附带的支持类不超过几个,据我所知,其他任何供应商库都没有。因此,寻找一些包装线程的库(我不知道)或自己处理使用者线程。它不应该那么杂乱无章,做对了。
关于c++ - C++和JMS-如何连接两者?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12234318/