Skip to content

joaboo/cmq-client

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 

Repository files navigation

cmq-client

近期项目中使用到CMQ,鉴于官方提供SDK太过简陋且存在严重BUG,于是自己简单的实现了一个,虽只实现了routingKey相关部分,但也足够一般使用。此外虽然本项目实现了应用启动时自动创建Topic、Queue、Subscription相关功能,但由于实际场景复杂,仍建议通过CMQ控制台进行相关创建。时间仓促,细节之处多有瑕疵,复杂场景测试不全,故仅供参考。

// 配置类
@EnableCMQ
@Configuration
public class CMQConfig {
	@Bean
	public CMQSpringConfigBean cmqSpringConfigBean() {
		CMQSpringConfigBean config = new CMQSpringConfigBean();
		config.setSecretId("xxx");
		config.setSecretKey("xxx");
		config.setUrlConfigBean(new URLConfigBean("sh", true));
		config.addProducerConfigBean(new ProducerConfigBean("topic1"));
		config.addProducerConfigBean(new ProducerConfigBean("topic2", true));
		config.addConsumerConfigBean(new ConsumerConfigBean("queue1", Consumer1.class));

		ConsumerConfigBean consumer2 = new ConsumerConfigBean("queue2", Consumer2.class);
		consumer2.setAutoCreateQueue(true);
		SubscriptionBean subscriptionBean2 = new SubscriptionBean("sub-topic1-queue3", "topic1", Arrays.asList("key2"), true, true);
		consumer2.setSubscriptionBeans(Arrays.asList(subscriptionBean2));
		config.addConsumerConfigBean(consumer2);
		return config;
	}
}

// 发送消息
@Autowired
private Producer producer;
producer.send("topicName", "routingKey", "message info");

// 消费消息
@Service
public class Consumer1 implements MessageListener {

	@Override
	public void onMessage(Message message) {
		System.err.println("Consumer1: " + message);
	}

}

2019-07-29 更新

时隔一年,官方基于HTTP的SDK的一些BUG都已修复,不过简陋依旧,幸好的是现在已经推出了支持基于TCP协议的SDK调用,地址如下: https://github.com/tencentyun/cmq-java-tcp-sdk

About

腾讯云CMQ客户端SDK的简单实现

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages