聲明:以下都是自己的一點(diǎn)小想法沃粗,因技術(shù)能力有限戈毒,不對(duì)的地方或有補(bǔ)充的地方請(qǐng)留言
一. RabbitMQ聲明Exchange的兩種方式
1.@bean 方式
@Bean
public FanoutExchange declareExchange() {
return new FanoutExchange(ExchangeName);
}
優(yōu)勢(shì):簡(jiǎn)單易寫容易理解
缺點(diǎn):結(jié)構(gòu)不清晰丙猬。當(dāng)聲明的Exchange 過(guò)多時(shí)不宜管理,想要找到對(duì)應(yīng)的Exchange可能要浪費(fèi)半天時(shí)間费韭,改動(dòng)起來(lái)麻煩
2.實(shí)現(xiàn)ApplicationRunner
@Component
public class Ignition implements ApplicationRunner {
private AmqpAdmin amqpAdmin;
@Autowired
public Ignition(AmqpAdmin amqpAdmin) {
this.amqpAdmin = amqpAdmin;
}
@Override
public void run(ApplicationArguments args) throws Exception {
// 聲明Exchange
declareExchange();
}
/**
* 聲明Exchange
*/
private void declareExchange() {
TopicExchange exchange = new TopicExchange(ExchangeName, true, false);
amqpAdmin.declareExchange(exchange);
}
優(yōu)勢(shì):結(jié)構(gòu)清晰茧球,每一個(gè)聲明都能有效快速的找到。Exchange容易管理
缺點(diǎn):編碼比第一種大星持。
二. RabbitMQ發(fā)送消息
@Autowired
private AmqpTemplate amqpTemplate;
// 發(fā)送
amqpTemplate.send(ExchangeName,routingKey, new Message(message.getBytes(), new MessageProperties()));