Spring 生产者/消费者 使用

//服务调用

@Resource(name = "leadMessageService")

private MessageService messageService;

public interface MessageService {

void sendNotifycation(MessageNotifyDTO msg);

}

@Log4j

@Component("leadMessageService")

public class MessageServiceImpl implements MessageService {

@Autowired

private Producer producerClient;

@Override

public void sendNotifycation(MessageNotifyDTO msg) {

String onOff = LionConfigUtils.getProperty("ad-saleslead-mq.on-off", "true");

if (!Boolean.valueOf(onOff)) {

log.info("MessageServiceImpl@sendNotifycation the turn-off is closed");

return;

}

String s = "0";

try {

s = producerClient.sendMessage(msg);

log.info("sendMessage Success to : "+msg.getUserID());

} catch (SendFailedException sfe) {

log.error("messageId " + s + " send Failed, reason is " + sfe.getMessage());

sfe.printStackTrace();

}

}

}

生产者的bean配置

<bean id="apolloMessageDestination" class="com.dianping.swallow.common.message.Destination" factory-method="topic">

<constructor-arg value="apollo-message-mq-create" />

</bean>

<bean id="producerClient" factory-bean="producerFactory" factory-method="createProducer">

<constructor-arg>

<ref bean="apolloMessageDestination" />

</constructor-arg>

<constructor-arg>

<ref bean="producerConfig" />

</constructor-arg>

</bean>

消费者的bean 配置

<bean id="salesLeadListener" class="com.dianping.saleslead.mq.listener.SalesLeadListener"

init-method="init" destroy-method="close">

<property name="topic" value="dp_merchant_message_common" />

<property name="consumerId" value="saleslead-refund-consumer" />

</bean>

代码todo...

经验分享 程序员 微信小程序 职场和发展