/basic-mq

rabbitmq消息队列封装

Primary LanguageJava

Basic-mq

说明:

本项目是对spring-amqp 进行的封装,可以直接打包成jar,加入到自己项目中,然后在自己项目中配置响应依赖就可以。

项目结构

--org.cs.basic.mq
	--consumer
	--global
	--producer
	--rpc
	--topic
	--util    --工具类 连接工具类,对象和byte转换工具类
--test
	--org.cs.basic.test
	--resources

使用方法

1:编译项目打包成jar,加入到自己项目中 2:在项目中加入依赖

  <dependency>  
    <groupId>com.rabbitmq</groupId>  
    <artifactId>amqp-client</artifactId>  
    <version>3.2.4</version>  
</dependency>  
<dependency>  
    <groupId>org.springframework.amqp</groupId>  
    <artifactId>spring-amqp</artifactId>  
    <version>1.3.4.RELEASE</version>  
</dependency>  
<dependency>  
    <groupId>org.springframework.amqp</groupId>  
    <artifactId>spring-rabbit</artifactId>  
    <version>1.3.4.RELEASE</version>  
</dependency>  
<dependency>  
    <groupId>com.caucho</groupId>  
    <artifactId>hessian</artifactId>  
    <version>4.0.7</version>  
</dependency>  

3:初始化配置

 EventControlConfig config2 = new EventControlConfig("192.168.0.19","admin","admin",1,1);

4:初始化链接

DefaultEventController controller = DefaultEventController.getInstance(config2);  

5:发送消息 需要先获得发送模板对象

EventTemplate eventTemplate=controller.getEopEventTemplate();
eventTemplate.send("Q_T_Message_Expiration", defaultExchange, "hello world!", 8000, 0);

6:消费消息 在消费端同样要执行第一步和第二步 还需要添加监听队列,启动监听

  controller.add("Q_T_Message_Expiration", defaultExchange,new MessagePriority());      
  controller.start();



 class MessagePriority implements EventProcesser{
	public void process(Object e) {
		try {
			Thread.sleep(1000);
			System.out.println(e);
		} catch (InterruptedException e1) {
			e1.printStackTrace();
		}
		
	}
	
} 

配置

config配置

  • public EventControlConfig(String serverHost)
  • public EventControlConfig(String serverHost,String username,String password)
  • public EventControlConfig(String serverHost,int port,String username,String password)
  • public EventControlConfig(String serverHost,String username,String password,int processThreadNum,int prefetchSize)
  • public EventControlConfig(String serverHost,String username,String password,int prefetchSize)

当然自己可以在EventControlConfig.java中配置

发送模式

  • void send(String queueName,String exchangeName,Object eventContent)
  • Object sendAndReceive(String queueName,String exchangeName,Object eventContent)
  • void send(String queueName,String exchangeName,String routing,Object eventContent)
  • void send(String queueName,String exchangeName,String consumerQueueName,String consumerExchange,String routing,Object eventContent)
  • void send(String queueName,String exchangeName,String consumerQueueName,String consumerExchange,String routing,Object eventContent,int expiration,int priority)
  • void send(String queueName, String exchangeName, Object eventContent,int expiration,int priority)
  • void send(String queueName, String exchangeName, String routing,Object eventContent,int expiration,int priority)