在 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. libc++abi.dylib: terminate_handler unexpectedly threw an exception
  2. java 64位 默认分配内存大小_查看你机器中Java程序堆内存的默认初始大小和最大大小...
  3. 鸟哥的Linux私房菜(服务器)- 第十章、申请合法的主机名
  4. ubuntu16.04安装,使用redis布隆过滤器示例
  5. IOS开发之网络编程--文件压缩和解压缩
  6. C++---string类接口整理与深浅拷贝
  7. 点可云ERP-V7.0-国产免费开源的ERP进销存系统 附带安装详细教程
  8. 应急通信系统|消防应急指挥系统
  9. Android逆向学习(二):游戏开发物语反编译
  10. Linux中文件搜索,查找,读取
  11. 二分、数组-LeetCode378. 有序矩阵中第K小的元素
  12. welook手机视频通话软件
  13. PhotoShop文件基本操作
  14. 深度学习进化编年大事记
  15. 【毕业设计】2-基于单片机控制的直流电机调速系统设计(原理图+仿真+答辩论文+答辩PPT)
  16. 新零售复购分析,简单 3 步抓住回头客
  17. .Net Web开发必备
  18. 多线程爬取百度关键字结果,并获取真实url
  19. 将DIB复制到剪贴板
  20. 韩国:以网络为基础打造的无缝移动连接型智慧城市

热门文章

  1. python keyboard库_python库 pywinio虚拟键盘使用
  2. 数据挖掘决策树python_机器学习之决策树ID3(python实现)
  3. 3.OSPF协议及链路状态算法
  4. 牛客小白月赛9: D. 树上求和(dfs序+线段树)
  5. 基环树DP(bzoj 1040: [ZJOI2008]骑士)
  6. bzoj 1632: [Usaco2007 Feb]Lilypad Pond(BFS)
  7. [paper reading] CenterNet (Object as Points)
  8. M文件-函数的参数-传值还是传址/检查输入参数的个数/传递参数/输出参数
  9. sim800c GPRS模块的透传模式
  10. 使用实例 ---- 使用NUnit在.Net编程中进行单元测试