当前位置: 首页 > news >正文

网站实名认证查询申请表河南网站建设软件

网站实名认证查询申请表,河南网站建设软件,手机logo免费设计软件,做教育培训网站的公司文章目录 1、安装ActiveMQ2、整合3、发送消息到队列4、使用消息监听器对消息队列监听5、流程性业务消息消费完转入下一个消息队列6、发布订阅模型 1、安装ActiveMQ docker安装 docker pull webcenter/activemqdocker run -d --name activemq -p 61616:61616 -p 8161:8161 webce…

文章目录

  • 1、安装ActiveMQ
  • 2、整合
  • 3、发送消息到队列
  • 4、使用消息监听器对消息队列监听
  • 5、流程性业务消息消费完转入下一个消息队列
  • 6、发布订阅模型

1、安装ActiveMQ

docker安装

docker pull webcenter/activemq
docker run -d --name activemq -p 61616:61616 -p 8161:8161 webcenter/activemq
# * 61616是 activemq 的服务端口(映射为61616)
# * 8161是 管理后台端口(对外映射为8161)

访问控制台http://IP:8161

常规安装(安装为系统服务)

下载:

https://activemq.apache.org/components/classic/download/

在这里插入图片描述

解压缩即安装:

在这里插入图片描述

启动服务:双击bin/win64/activemq.bat

在这里插入图片描述

访问控制台:http://127.0.0.1:8161/,用户名&密码:admin

2、整合

导入ActiveMQ的起步依赖:

<dependency>   <groupId>org.springframework.boot</groupId>    <artifactId>spring-boot-starter-activemq</artifactId>
</dependency>

加入相关配置:

spring:  activemq:    broker-url: tcp://localhost:61616  jms:    pub-sub-domain: false    # JMS的两种模型,点对点、发布订阅模型,这里为true即发布订阅模型template:      default-destination: codetest #默认的消息队列的名称

注入JmsMessagingTemplate操作对象,进行消息的发送与接收

@Autowired    
private JmsMessagingTemplate jmsMessagingTemplate;

业务逻辑代码就实现上篇的MessageService接口就行,上篇在拿一个队列模拟MQ,来进行消息的生产与消费,这里有了真正的队列来存储消息了。

3、发送消息到队列

convertAndsend方法,发送消息到消息队列,convert,即转换,转换成能接受的数据类型然后发送,因此这个方法的形参类型可为Object,调用方便。

@Service
@Slf4j
public class MessageServiceActivemqImpl implements MessageService {    @Autowired    private JmsMessagingTemplate jmsMessagingTemplate;   public void sendMessage(String id) {    log.info("使用Active将待发送短信的订单纳入处理队列,id:"+id);jmsMessagingTemplate.convertAndSend(id);    }    public String doMessage() {        String id = jmsMessagingTemplate.receiveAndConvert(String.class);log.info("已完成短信发送业务,订单id:" + id);return id;  }
}

取消息消费则相反,先receive接收,再convert转换,调用receiveAndConvert,形参为要转的目标类型。调用下上篇的接口(其实controller里就只是调用了一下service层方法),可以看到消息写入成功:

在这里插入图片描述

需要指定队列存储消息,则convertAndSend方法和receiveAndConvert方法传参多一个队列名即可。

jmsMessagingTemplate.convertAndSend("order.queue.id",id); 
String id = jmsMessagingTemplate.receiveAndConvert("order.queue.id",String.class);

4、使用消息监听器对消息队列监听

实际开发时,自然不用每次去手动取消息,直接@JmsListener注解监听队列,有消息了就自动拿出来消费(执行逻辑代码)就行:

@Component
@Slf4j
public class MessageListener {    @JmsListener(destination = "order.queue.id")    public void receive(String id){ //实际业务逻辑代码       log.info("已完成短信发送业务,id:"+id);    }
}

重启服务,发现上面发送的消息已被自动消费:

在这里插入图片描述
在这里插入图片描述

5、流程性业务消息消费完转入下一个消息队列

@SendTo注解将一个方法的返回值给自动加到某个队列里,搭配@JmsListener注解,就可实现消费消息的流转。 当然也可单独使用,就发送就好,像@CachePut

@Component
@Slf4j
public class MessageListener {   @JmsListener(destination = "order.queue.id")   @SendTo("order.other.queue.id")    public String receive(String id){   log.info("已完成短信发送业务,id:"+id); //把这条消息处理完以后,返回return  " a handled new id :" + id;     }
}

这里对比下发布订阅模型与交换机:消息被消费以后,队列中就没了,如果其他程序也要用,又该如何处理? ==> 发布订阅模型,加入交换机来实现。比如RabbitMQ的Fanout Exchange广播、Direct Exchange路由、Topic Exchange话题。这里是把消息广播或路由到队列,而@SendTo搭配@JmsListener是在代码中处理完消息后的流转。

在这里插入图片描述

这种流水线的关系,体现的是一种顺序和依赖的业务。

6、发布订阅模型

spring:  activemq:    broker-url: tcp://localhost:61616  jms:    pub-sub-domain: true    #发布订阅模型template:      default-destination: codetest #默认的消息队列的名称

此时发消息就在Topics中了:

在这里插入图片描述

http://www.yayakq.cn/news/604886/

相关文章:

  • 网站开发动态结构设计西安网站制作哪家便宜又好
  • 凤山网站seo快速建站网站
  • 深圳大浪有做网站的吗linux网站开发工具
  • 做僾免费观看网站网站建站授权模板下载
  • 高端建站收费标准网站建设与管理专业学什么
  • 百度怎样注册免费的网站电子商务网站建设与管理实验报告
  • 深圳做网站专业的公司优设网站
  • 北京网站推广优化公司万网域名解析后台
  • 东莞专业网站推广怎么做wordpress 福利源码
  • 如何在外管局网站做付汇延期软件搭建公司
  • 网站建设价格兴田德润i网址多少原材料价格查询网站
  • 手机网站 制作技术肇庆自助建站模板
  • 上海网站建设渠道wordpress主题 relax
  • 建站之星怎么免费做网站微信客户管理
  • 网站设计公司 无锡长春建站模板展示
  • 网上做的好金融网站萍乡网站开发
  • 家装网站自己做的物流商 网站建设方案
  • 汕头网站建设sagevis亿唐为什么2005年做虚拟网站
  • 建网站 域名通讯设备东莞网站建设
  • 建站公司都是用什么建站工具石景山上海网站建设
  • 网站怎么做域名跳转有哪些好的响应式网站有哪些
  • 北京网站整站优化做社交网站
  • 自己做头像的网站非流光横峰网站建设
  • 学字体网站郑州企业型网站建设
  • 做网站可以干嘛网站做字工具
  • 中介网站设计怎样做自己可以发布消息的网站
  • 网站设计的国际专业流程专业做网盘资源收录分享的网站
  • 盐城做网站哪家公司好wordpress图片调用代码
  • 爬闪数媒 网站建设公众号开发是前端还是后端
  • 最全的ppt模板网站福州解封最新消息