1 Star 1 Fork 282

mes / Spring-rabbitMQ

forked from shenzhanwang / Spring-rabbitMQ 
加入 Gitee
与超过 600 万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未指定开源许可证,未经作者的许可,此代码仅用于学习,不能用于其他用途。
克隆/下载
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README.md

本人已经实践完成,介绍下具体的步骤

@_@并且补充一些遇到的坑 (T. T)

先上一个我成功图片 -.-

首先感谢作者精细整理,此次让我学习到了东西。

接下来讲述下我的操作步骤 !!!

1.自己需要安装rabbitMQ +erlang (erlang注意这是一个坑版本很重要)

安装包

具体的安装步骤,自己百度咯! 我是windows版本的 这部分跳过。

启动MQ (启动时候需要无效,请用管理员权限这是一个坑)

net start rabbitmq-server 如果无效,请使用管理员权限 启动完成后使用 用户guest 密码一样 登录 。

如下图所示 rabbitmq.png

新增一个用户名,guest 这个用户实际是没有权限 (这里是一个坑) 点击Admin添加个用户 赋予administrators权限 rabbitmq.png 目前这个时候 MQ服务端完成

2.git下载代码后用IDEA打开,注意对应的JAR下载完成后

打开Rabbitconfig这个类(需要修改地址和用户名密码 这里是一个坑)

config 修改自己rabbit 服务端和用户名称 很关键

我的客户端发现存在乱码,可以修改成GBK。[这里就不当杠精了]

3.配置TOMCAT,添加WAR、

我看了评论有人不知道怎么启动项目。。。 这是springmvc web 我觉得都可以猜到

具体操作就不细讲了这步大家都会,我只截图配置信息

打开Deployment 把 WAR添加进来 然后应用

接下来直接启动项目就可以了!!

4.关键性代码,个人理解

PublisherImpl.java 文件 三种模式实现 前端传入action层

mail对象存入队列中,然后监听解析出来


@Service("publisher")
public class PublisherImpl implements Publisher {
   @Autowired
   RabbitTemplate rabbitTemplate;

   /**
    * 订阅模式 fanout   routingkey 为空则全部通知
    *
    * @param mail 邮件对象实体类
    */
   public void publishMail(Mail mail) {
       rabbitTemplate.convertAndSend("fanout", "", mail);
   }

   /**
    * 直连模式 direct (全KEY匹配)
    *
    * @param mail       邮件对象实体类
    * @param routingkey 绑定的KEY
    */
   public void senddirectMail(Mail mail, String routingkey) {
       rabbitTemplate.convertAndSend("direct", routingkey, mail);
   }

   /**
    * topic交换机模 (KEY模糊搜索匹配)
    *
    * @param mail       邮件对象实体类
    * @param routingkey 绑定的KEY
    */
   public void sendtopicMail(Mail mail, String routingkey) {
       rabbitTemplate.convertAndSend("mytopic", routingkey, mail);
   }


}
   
}
交换机路由功能 KEY 是一个关键。。。一个队列可以被多个KEY绑定。
消费者直接连接的是队列名称不是KEY ,生产者可以用交换机路由(KEY)分发不同的队列

//fanoutExchange 广播交换机 binding  
	@Bean
	public Binding binding1(){
		Binding binding=BindingBuilder.bind(myQueue1()).to(fanoutExchange());
		return binding;
	}


// topicExchange 3个binding将交换机和相应队列连起来
	@Bean
	public Binding bindingtopic1(){
		Binding binding=BindingBuilder.bind(topicQueue1()).to(topicExchange()).with("*.orange.*");//binding key
		return binding;
	}

 //   directExchange  直连
   @Bean
	public Binding bindingorange(){
		Binding binding=BindingBuilder.bind(directQueue1()).to(directExchange()).with("orange");
		return binding;
	}

点评 ( 0 )

你可以在登录后,发表评论

简介

Spring整合消息队列RabbitMQ 展开 收起
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
Java
1
https://gitee.com/wangziyangyang/Spring-rabbitMQ.git
git@gitee.com:wangziyangyang/Spring-rabbitMQ.git
wangziyangyang
Spring-rabbitMQ
Spring-rabbitMQ
master

搜索帮助

105716 1d94204e 1850385 105716 2d26be5c 1850385