首页 > 编程语言 >ActiveMQ学习(四)——应用程序接口…

ActiveMQ学习(四)——应用程序接口…

时间:2023-04-30 11:06:45浏览次数:40  
标签:创建 程序接口 用户 学习 会话 消息 JMS ActiveMQ 连接


在 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(会话)

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


标签:创建,程序接口,用户,学习,会话,消息,JMS,ActiveMQ,连接
From: https://blog.51cto.com/u_548275/6237781

相关文章

  • CS231N assignment 3 _ GAN 学习笔记 & 解析
    这篇文章之所以来的比较早,是因为我们机器人比赛字符识别数据集不够,想自己造点数据集其实课程内容总结所谓GAN,原理很简单,我们有一个生成器网络和鉴别器网络,生成器生成假的数据,鉴别器分辨真假,二者知己知彼互相优化自己,从而达到博弈的效果.实际操作中,我们一般是......
  • 「学习笔记」tarjan求最近公共祖先
    Tarjan算法是一种离线算法,需要使用并查集记录某个结点的祖先结点。并没有传说中的那么快。过程将询问都记录下来,将它们建成正向边和反向边。在dfs的过程中,给走过的节点打上标记,同时维护并查集,这里利用了回溯的思想,如果\(u\)节点的这棵子树没搜完,那么fa[u]=u;,搜完后......
  • Vim学习笔记
     在Linux终端命令行输入gvim&打开GVIMVim打开文件终端输入:gvim***或gvim***&使用Vim独立打开文件vim***在终端显示文件&:表示当前的这个进程打开,但是它还不影响你接下来在terminal上面敲一些其他的一些命令Vim实现比较文件代码终端输入:gvimdifffileafileb或者......
  • DVT_eclipse学习笔记1
    常用方法1.自动补全快捷方式:alt+/(可以多次按这个“/”选择补全的东西)自动补全有时候会包含许多提案,分为几类:第一个是你可以在范围内访问的内容(信号、变量、方法等,取决于所包含的范围)alt+/第二个用于代码模板alt+/+/第三个是其他的东西,例如模块实例alt+/+/+/2.快速修......
  • Java学习2——第四-六次题目集的分析与总结
     一.前言 本次Blog是对java学习中第二阶段练习的一个总结,作为刚学习JAVA的小白,以下依旧只是本人作为普通学生,以当前能力和状态所做出的总结和分析,不足之处也欢迎各位大佬的指正! 这次的三个题目集,题量除了题目集六很少外,其它都是正常数量,当然题目集六的题也是最难的。总体难......
  • 中国剩余定理(CRT)学习笔记
    约定\(A\perpB\)表示\(\gcd(A,B)=1\)。\(A\midB\)表示\(B\equiv0\pmod{A}(A\neq0)\)。引入考虑以下这道题:有物不知其數,三三數之剩二,五五數之剩三,七七數之剩二。問物幾何?——《孫子算經》也就是说,求出下列关于\(x\)方程组的最小整数解:\[\begin{cases}x\equi......
  • SpringCloud学习笔记
    Eureka基本知识Eureka主要学习的是微服务的一些基本概念之类的,至于具体的操作其实都是在配置appolication.yml文件了,多看文档以及自己写过的demo就懂了。Eureka在微服务中承担的角色有三个,一个是注册中心server,一个是服务供给方porvider,以及接受用户请求的consumer,如果从启动类......
  • matlab学习1(基本操作、stringchar、矩阵运算、基础图)
    1.matlab简介matlab是矩阵实验室,数据是以矩阵的形式存在。2.基本操作1).直接在命令行输入指令2).在脚本文件章编写程序后运行脚本文件:存放代码的文件,尾缀:.m实时脚本文件界面方便,将结果实时显示在代码旁边(可以加代码,图片,类似于一个文档编辑器,很推荐使用)3).在函数文......
  • python+playwright 学习-59 grant_permissions 设置默认允许麦克风和摄像头等权限
    前言有些场景在使用的时候,会弹出一些权限框,比如麦克风和摄像头等,通过监听alert是没法捕获的。正确做法是给浏览器设置默认允许麦克风和摄像头等权限,不让弹窗出来。使用context的grant_permissions方法加权限。权限框弹窗示例这种弹窗是权限窗,不是alert解决办法context有个gr......
  • python+playwright 学习-58 Jenkins上使用 Pipeline 运行 playwright 自动化脚本
    前言Dockerfile.focal可用于在Docker环境中运行Playwright脚本。这些镜像包括在Docker容器中运行浏览器所需的所有依赖项,还包括浏览器本身。playwright在linux系统上目前只支持Ubuntu系统的部分版本,centos和debian系统上是没法运行的。jenkins环境准备需安装2个跟docke......