Spring boot 我是否可以使用消息队列位于我的应用程序和外部系统之间,以跟踪所有发出的消息?
我有一个spring boot应用程序,可以进行一些处理。此应用程序发送请求,与不同的应用程序通信。这些要求包括Spring boot 我是否可以使用消息队列位于我的应用程序和外部系统之间,以跟踪所有发出的消息?,spring-boot,apache-kafka,rabbitmq,activemq,message-queue,Spring Boot,Apache Kafka,Rabbitmq,Activemq,Message Queue,我有一个spring boot应用程序,可以进行一些处理。此应用程序发送请求,与不同的应用程序通信。这些要求包括 HL7消息发送到外部系统的tcp/ip套接字 对其他API的http请求(不是每个API调用,而是选定的API调用) json数据到文件系统 我需要一种机制来存储所有输出的内容并跟踪它们,这样,如果我需要重新发送某些内容,我应该能够手动重新发送它们。同时也要确保发送的东西最终到达端点 我看了一下消息代理/消息队列——RabbitMQ、Kafka、ActiveMQ。这些我都没用过。
- HL7消息发送到外部系统的tcp/ip套接字
- 对其他API的http请求(不是每个API调用,而是选定的API调用)
- json数据到文件系统
- 在消息传递环境中,我可以向代理发送消息,然后让代理发送到外部端点吗李>
- 消费者是否连接到MQ或订阅MQ以接收消息?经纪人不能直接向接收者发送消息吗
- 如果接收器是restful API,那么它是否可以在不编写任何特定于MQ的使用者代码的情况下接收请求?我不能要求外部系统编写一些消费代码
为系统发出的每个请求/消息向数据库添加一个条目以及有效负载。构建可用于跟踪这些请求的UI,并在UI中提供可用于将这些消息重新发送到端点的重发选项。查看每天发送的大约200000个请求/消息。如果您的唯一需求是重新发送失败的消息,那么您可以使用简单的消息队列(如RabbitMQ)对失败的消息进行排队。然后开发一个单独的服务来订阅上面的队列并重新发送它接收到的消息 如果你希望通过更多的需求来扩展你的服务,那么就选择卡夫卡吧。 但是不管您选择了什么消息代理,都要这样设计它