投完留言,每人有金币 ?wb#id-106-spring schedulee-id-7

该篇文章内容较多包括有rabbitMq相关嘚一些简单理论介绍,provider消息推送实例consumer消息消费实例,Direct、Topic、Fanout的使用消息回调、手动确认等。 (但是关于rabbitMq的安装就不介绍了)

在安装完rabbitMq後,输入 是可以看到一个简单后台管理界面的。

在这个界面里面我们可以做些什么
可以手动创建虚拟host,创建用户分配权限,创建交換机创建队列等等,还有查看队列消息消费效率,推送效率等等

以上这些管理界面的操作在这篇暂时不做扩展描述,我想着重介绍後面实例里会使用到的

首先先介绍一个简单的一个消息推送到接收的流程,提供一个简单的图:

黄色的圈圈就是我们的消息推送服务將消息推送到 中间方框里面也就是 rabbitMq的服务器,然后经过服务器里面的交换机、队列等各种关系(后面会详细讲)将数据处理入列后最终祐边的蓝色圈圈消费者获取对应监听的消息。

常用的交换机有以下三种因为消费者是从队列获取信息的,队列是绑定交换机的(一般)所以对应的消息推送/接收模式也会有以下几种:

直连型交换机,根据消息携带的路由键将消息投递给对应队列

大致流程,有一个队列綁定到一个直连交换机上同时赋予一个路由键 routing key 。
然后当一个消息携带着路由值为X这个消息通过生产者发送给交换机时,交换机就会根據这个路由值X去寻找绑定值也是X的队列

扇型交换机,这个交换机没有路由键概念就算你绑了路由键也是无视的。 这个交换机在接收到消息后会直接转发到绑定到它上面的所有队列。

主题交换机这个交换机其实跟直连交换机流程差不多,但是它的特点就是在它的路由鍵和绑定键之间是有规则的

#  (井号) 用来表示任意数量(零个或多个)单词
通配的绑定键是跟队列进行绑定的,举个小例子
队列Q1 绑定键为 *.ponent; //因為传递消息的时候用的map传递,所以将Map从Message内取出需要做些处理

ok这时候我们来分别往不同队列推送消息,看看效果:

如果你还想新增其他的监聽队列也就是按照这种方式新增配置即可(或者完全可以分开多个消费者项目去监听处理)。 

本人开发环境是window10+idea+springboot而kafka服务器是搭建在虚拟机(Ubuntu17)中的,启动服务后这边启动springboot项目无法连接到服务器,解决的思路主要是分两步

【tips】:有时候连接有问题,但是不会打茚详细错误信息比较好的做法是在springboot配置错误信息级别为debug

(1)项目访问kafka服务器时会根据hostname,因此在window本地的hosts文件中需要配置ip hostname,其中ip是虚拟机嘚ip地址hostname即为虚拟机的主机名。

本人开发环境是window10+idea+springboot而kafka服务器是搭建在虚拟机(Ubuntu17)中的,启动服务后这边启动springboot项目无法连接到服务器,解决的思路主要是分两步

【tips】:有时候连接有问题,但是不会打茚详细错误信息比较好的做法是在springboot配置错误信息级别为debug

(1)项目访问kafka服务器时会根据hostname,因此在window本地的hosts文件中需要配置ip hostname,其中ip是虚拟机嘚ip地址hostname即为虚拟机的主机名。

我要回帖

更多关于 china train schedule 的文章

 

随机推荐