ActiveMQ 三、Java编码实现ActiveMQ通讯

第九课时:Java编码MQ标准API讲解

1、新建Maven工程;

2、POM.xml中加入activeMQ相关依赖:

下面是junit/log4j等基础通用配置:

3、JMS编码总体架构(Java消息服务规范;j2ee技术体系中的一种)

主要作用在于session,Destination(目的地)

大体看了JMS总体架构后,对比我们用过的Java连接JDBC:1、注册驱动;2、建立连接(Connection);3、创建运行SQL的语句(Statement)....是不是很类似;

如果说我们new一个对象它会到堆内存中的新生区中(物理上说),那么MQ中消息就会到Destination中(队列、主题)

Destination中的队列(在点对点的消息传递域中,目的地称为队列queue)

Destination中的主题(在发布订阅消息传递域中,目的地称为主题topic)

第十课时:消息生产到消息队列、消费者消费消息队列中的消息及消费方式。(编码入门阶段)

1、项目源码详见同文件夹下 :第十课:消息生产到消息队列;到消费者消费的三种方式。

第十一课时:Java编码topic讲解

Topic特点

注意:先启动订阅(消费者),再启动生产,不然发送的消息就是废消息。

队列和主题的区别:

第十二课时:JMS是什么?

1、在编码中我们都以Jms开头,那Jms是什么?

Jms(Java Message Service:Java消息服务;它是JavaEE体系中的一个技术)

第十三课时:JMS组成的四大元素

1、JMS provider(实现JMS接口和规范的消息中间件,也就是我们的MQ服务器)

2、JMS producer(消息生产者,创建和发送JMS消息的客户端服务)

3、JMS consumer(消息消费者,接收和处理JMS消息的客户端应用)

4、JMS message:

像我们之前班长给约定的规范一样:但它里面有三个特点很重要:消息头、消息体、消息属性。

第十四课时:JMS message之消息头

1、JMSDestination:消息发送的目的地,主要是指Queue和Topic

2、JMSDeliveryMode(设置消息持久化):如何保证消息的可靠性?如何保证消息的持久化?

首先比较持久化和非持久化模式

一条持久化消息:应该被传送“一次仅仅一次”,这就意味着如果JMS提供者如果出现故障,该消息不会丢失,它会在服务器恢复之后再次传递。

一条非持久的消息:最多传送一次,这意味着服务器出现故障,该消息将永远丢失。

3、JMSExpiration(设置消息过期时间):

4、JMSPriority(设置消息优先级;好比加急快递和普通快递):

5、JMSMessageID(每个消息的唯一标识,由MQ产生)   这个很重要

第十五课时:JMS message之消息体

1、如果说JMS message就相当于我们发邮件;那么消息头就是我们的收件人、目的地、持久化、过期时间、优先级...等。消息体就是邮件内容,也就是封装具体的消息数据。

2、消息体中5种格式:

一般常用的TextMessage和Mapmessage就能满足百分之90需求

3、最后强调:发送和接收的消息体类型必须一致对应

第十六课时:JMS message之消息属性

设置在消息头发送之前:

生产者设置:

消费者消费:

第十六课时:Queue可靠性之持久非持久化

解决问题:设置队列持久化;主要解决activeMQ服务区宕机问题

1、如果不设置setDeliveryMode,默认持久化。

第十七课时:Topic可靠性之持久非持久化

在主题中,必须先启动消费者(订阅者再启动生产者),否则是费消息

1、设置topic持久化消费端代码改造

2、设置topi持久化生产端代码改造

解决问题:设置主题持久化,是让订阅该主题但不在线的人,在线后获取对应订阅主题消息

 

 

 

 

 

 

 

 

 

 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值