在 Java 里有 JMS的多个实现。其中 apache 下的 ActiveMQ就是不错的选择。

用 ActiveMQ最好还是了解下 JMS

JMS 公共

点对点域

发布/订阅域

ConnectionFactory

QueueConnectionFactory

TopicConnectionFactory

Connection

QueueConnection

TopicConnection

Destination

Queue

Topic

Session

QueueSession

TopicSession

MessageProducer

QueueSender

TopicPublisher

MessageConsumer

QueueReceiver

TopicSubscriber

ConnectionFactory接口(连接工厂)

用户用来创建到JMS提供者的连接的被管对象。JMS客户通过可移植的接口访问连接,这样当下层的实现改变时,代码不需要进行修改。管理员在JNDI名字空间中配置连接工厂,这样,JMS客户才能够查找到它们。根据消息类型的不同,用户将使用队列连接工厂,或者主题连接工厂。

Connection接口(连接)

连接代表了应用程序和消息服务器之间的通信链路。在获得了连接工厂后,就可以创建一个与JMS提供者的连接。根据不同的连接类型,连接允许用户创建会话,以发送和接收队列和主题到目标。

Destination接口(目标)

目标是一个包装了消息目标标识符的被管对象,消息目标是指消息发布和接收的地点,或者是队列,或者是主题。JMS管理员创建这些对象,然后用户通过JNDI发现它们。和连接工厂一样,管理员可以创建两种类型的目标,点对点模型的队列,以及发布者/订阅者模型的主题。

MessageConsumer接口(消息消费者)

由会话创建的对象,用于接收发送到目标的消息。消费者可以同步地(阻塞模式),或异步(非阻塞)接收队列和主题类型的消息。

MessageProducer接口(消息生产者)

由会话创建的对象,用于发送消息到目标。用户可以创建某个目标的发送者,也可以创建一个通用的发送者,在发送消息时指定目标。

Message接口(消息)

是在消费者和生产者之间传送的对象,也就是说从一个应用程序创送到另一个应用程序。一个消息有三个主要部分:

消息头(必须):包含用于识别和为消息寻找路由的操作设置。

一组消息属性(可选):包含额外的属性,支持其他提供者和用户的兼容。可以创建定制的字段和过滤器(消息选择器)。

一个消息体(可选):允许用户创建五种类型的消息(文本消息,映射消息,字节消息,流消息和对象消息)。

消息接口非常灵活,并提供了许多方式来定制消息的内容。

Session接口(会话)

表示一个单线程的上下文,用于发送和接收消息。由于会话是单线程的,所以消息是连续的,就是说消息是按照发送的顺序一个一个接收的。会话的好处是它支持事务。如果用户选择了事务支持,会话上下文将保存一组消息,直到事务被提交才发送这些消息。在提交事务之前,用户可以使用回滚操作取消这些消息。一个会话允许用户创建消息生产者来发送消息,创建消息消费者来接收消息。

转载于:https://www.cnblogs.com/Wolfmanlq/p/3732367.html

ActiveMQ学习(四)——应用程序接口相关推荐

  1. 一直以来伴随我的一些学习习惯(四)——程序员的知识结构

    一直以来伴随我的一些学习习惯(四)--程序员的知识结构 By 刘未鹏(pongba) C++的罗浮宫(http://blog.csdn.net/pongba) TopLanguage(https:// ...

  2. I2S音频总线学习(四)I2S接口设计

    I2S音频总线学习(四)I2S接口设计 一.数据发送端的设计 图1 发送端 随着WS信号的改变,导出一个WSP脉冲信号,进入并行移位寄存器装入DATA LEFT或DATA RIGHT,从而输出数据被激 ...

  3. Kotlin学习笔记 第二章 类与对象 第三节接口 第四节 函数式接口

    参考链接 Kotlin官方文档 https://kotlinlang.org/docs/home.html 中文网站 https://www.kotlincn.net/docs/reference/p ...

  4. 小程序学习 - 01小程序简介+微信小程序基础

    小程序简介 小程序是一个全新的.轻量级的移动端应用. 起源 在小程序出现之前的移动端开发的解决方案有: Android iOS Windows Phone - 后来退出历史舞台 移动端开发发展了一段时 ...

  5. 0基础学习微信小程序(转载)

    原文地址:https://blog.csdn.net/qq_41464123/article/details/105198163 前言 微信小程序作为近几年"微服务"的杰出代表,应 ...

  6. 从实战学习微信小程序-电商首页前端(一)

    刚开始接触小程序就被分配了一个小程序的前端项目,我只能一边学习一边做,做起来发现也就那么回事,如果只看api不动手的话,那么多内容是记不住的,但不得不说微信小程序api封装了好多内容,简单好用,但微信 ...

  7. 零基础学习PHP编程——程序的编写和运行过程

    零基础学习PHP编程--程序的编写和运行过程 注意: 本文主要写给零基础的同学,作为编程的入门引导, 如有不当之处,还请指正. 访问源站 欢迎交流QQ群: 640765823 回顾上一节,我们已经基本 ...

  8. C#多线程学习(四) 多线程的自动管理(线程池) (转载系列)——继续搜索引擎研究...

    在多线程的程序中,经常会出现两种情况: 一种情况:   应用程序中,线程把大部分的时间花费在等待状态,等待某个事件发生,然后才能给予响应                   这一般使用ThreadPo ...

  9. 我国近四成程序员单身 盘点各国IT从业者生存现状

    我国近四成程序员单身 盘点各国IT从业者生存现状 央广网北京10月25日消息 据中国之声<全球华语广播网>报道,10月24日是程序员关爱日,最新发布的<互联网从业者生活品质报告> ...

  10. 浅谈三个星期零基础入门学习Thinkphp5开发restful-api接口的心得和总结

    一丢丢心得体会: 首先不得不说一下,学习一门知识,真的就像建一栋高楼一样,地基必须的稳固,否则你辛辛苦苦建的楼可能随时会垮掉,这一点在我学习thinkphp5的路上深有体会,同时了自此我也爱上了写博客 ...

最新文章

  1. 记一个自己项目上线的全过程
  2. JS 中迭代数组的三种方法
  3. boost::geometry模块变换多边形的测试程序
  4. idea将maven项目打包成war包的方式,以及使用war包
  5. 系统学Android从零开始,详细的Android学习指南
  6. 由partition看窗口函数
  7. vant toast loading 倒计时_日期倒计时软件哪个好 苹果日期倒计时软件推荐
  8. 4373支队伍报名2020数字中国创新大赛-数字政府赛道 数字战“疫”彰显社会责任...
  9. 【投放算法】“喵糖”背后的商业化流量投放算法应用及实践
  10. Java中如何防止内存泄漏的发生
  11. Security+ 学习笔记46 网络工具
  12. 408计算机考研交流群,考研初试复习经验分享(计算机408)
  13. tftd32搭建DHCP服务器软件打开报错
  14. 计算机网络Flash教学课件,flash动画教学课件
  15. 2019年中国锂电池产业竞争格局
  16. 京东云服务器——免费体验6个月
  17. 如何将ppt批量转换成pdf?
  18. NOI WC 2019 小结
  19. pytorch的transform中ToTensor接着Normalize
  20. 太美医疗科技CTMS临床试验项目管理系统的全新升级

热门文章

  1. qmenu只在鼠标单击时消失_珍藏多年的CAD快捷键和鼠标操作
  2. HDU 6180 2017 多校训练:Schedule
  3. HDU 5978 2016ICPC大连 H: To begin or not to begin
  4. 图像膨胀、腐蚀算法实现 python源码
  5. matlab实现直方图均衡化
  6. jQuery form插件使用详解
  7. 16进制数组转成10进制 qt_第五课_进制2
  8. Fiddler抓包工具版面认识(一)
  9. iOS开发之一句代码检测APP版本的更新
  10. Python快速生成注释文档