我想设计一个接口,用于在springboot微服务之间简单地发送和接收消息。任何服务都应该能够自动连接接口并使用发送/接收方法。这些方法的实现应该取决于,比如application.props文件是否要使用kafka或activemq。我不能想出一个干净的设计。我在想是否可以为它创建一个自定义注解。无论我有什么Spring Boot 的经验,我无法想象这样的设计。这个框架看起来像下面的东西,但是我不知道如何将它实现为正确的代码:bean,在kafka/activemq特定的注解和方法之间切换,等等诸如此类的东西。
服务:
@自动连线messageproducer messageproducer
@自动连线消息接收器消息接收器
messageproducer[interface]public void sendmessage(目标,负载)
messagereceiver[接口]public void receivemessage(源,负载)
1条答案
按热度按时间nbysray51#
您可以有两个实现类,如
KafkaMessageProducer
以及ActvieMQMessageProducer
. 内部application.properties
你可以这样做messaging.type=kafka
或者messaging.type=activemq
它将指定应用程序应选择哪个消息传递通信。配置类:
如果您想在同一个应用程序中使用这两种消息传递类型(例如,一个服务类将使用kafka,而另一个类将使用activemq),那么创建两个bean(如上所述,但是
@Qualifier
而且没有@ConditionalOnProperty
). 在每个需要消息生产者的服务上,用@Qualifier
您需要哪种实现