是什么?

JMS(java消息服务)是规范,它定义了一些规则,一些接口。具体实现由各种做这个产品的厂家或开源组织来实现。

为什么?

在JMS还没有诞生前,每个企业都会有自己的一套内部消息系统,比如项目组A需要调用到项目组B的系统,项目组B也有可能会调用到项目组C的系统。这样每个公司都有自己的一套实现。很不规范。

怎么办?

Java定义了消息服务的规范,不管哪个厂商做的消息服务的中间件,我们应用程序开发的时候都一样的去拿消息、读消息、生成消息。是一种与厂商无关的API,用来访问消息收发系统消息,类似于JDBC。

JMS由以下元素组成:

JMS提供者:连接面向消息中间件的,JMS接口的一个实现。提供者可以是Java平台的JMS实现,也可以是非Java平台的面向消息中间件的适配器。

JMS客户:生产或消费基于消息的Java的应用程序或对象。

JMS生产者:创建并发送消息的JMS客户。

JMS消费者:接收消息的JMS客户。

JMS消息:包括可以在JMS客户之间传递的数据的对象

JMS队列:一个容纳那些被发送的等待阅读的消息的区域。与队列名字所暗示的意思不同,消息的接受顺序并不一定要与消息的发送顺序相同。一旦一个消息被阅读,该消息将被从队列中移走。

JMS主题:一种支持发送消息给多个订阅者的机制。

JMS应用程序结构支持两种模型:

1、点对点或队列模式:一对一的,我发过去消息,你就接受。生产者指定那个队列去生产的,消费者也是指定那个队列去接受的

2、发布者/订阅者模式:类似微博里面,我订阅了一个主题,我们订阅了那个主题的人都可以看到订阅的更新

Activemq简单介绍:

1、Activemq是一个软件,是一个服务器,要启动起来,我们的程序作为生产者和消费者。

2、当activemq重启的时候,之前发的message都不见了,是因为activemq没有做持久化处理。

3、Activemq是单机的,在大数据领域使用kafka,kafka是分布式的,相当于大的缓冲池,数据有快有慢,在点击量大的时候,数据量非常大,如果不经过中间缓存,之间发送给strom处理的话,就会过载,因为一台服务器的处理能力有限,速度就匹配不上。Activemq和kafka本质上的工作差不多。

4、Activemq消息服务支持跨语言,意味着我的应用程序可以是java、php、c++、c,那两者

之间的通信就得通过跨语言协议来做。

<transportConnectors><transportConnector name="openwire" uri="tcp://localhost:61616"/><transportConnector name="ssl"     uri="ssl://localhost:61617"/><transportConnector name="stomp"   uri="stomp://localhost:61613"/><transportConnector uri="http://localhost:8081"/><transportConnector uri="udp://localhost:61618"/>
</transportConnectors>

Openwire、ssl、stomp就是activemq支持的协议。其中最通用的是stomp。

JMS(Java消息服务)(Activemq简单介绍)相关推荐

  1. JMS(Java消息服务)入门教程

    什么是Java消息服务 Java消息服务指的是两个应用程序之间进行异步通信的API,它为标准消息协议和消息服务提供了一组通用接口,包括创建.发送.读取消息等,用于支持JAVA应用程序开发.在J2EE中 ...

  2. JMS (Java消息服务) 入门教程

    转载自:https://www.cnblogs.com/chenpi/p/5559349.html 什么是Java消息服务 Java消息服务指的是两个应用程序之间进行异步通信的API,它为标准消息协议 ...

  3. JMS Java消息服务(Java Message Service)

    JMS 在一些场景下RPC的同步方式可能不太适合业务逻辑的处理,并且这种方式在某些场景下会导致业务的紧耦合. 基于异步交互模型的JMS解决了RPC产生的紧耦合问题,它提供了一个可以通过网络访问的抽象消 ...

  4. java jms activemq_JMS-ActiveMQ与Java消息服务

    JMS:Java消息服务(Java Message Service)应用程序接口,是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间或分布式系统中发送消息,进行异步通. ...

  5. JMS(Java消息服务)与消息队列ActiveMQ基本使用(一)

    最近的项目中用到了mq,之前自己一直在码农一样的照葫芦画瓢.最近几天研究了下,把自己所有看下来的文档和了解总结一下. 一. 认识JMS 1.概述 对于JMS,百度百科,是这样介绍的:JMS即Java消 ...

  6. ActiveMQ学习总结(5)——Java消息服务JMS详解

    JMS: Java消息服务(Java Message Service) JMS是用于访问企业消息系统的开发商中立的API.企业消息系统可以协助应用软件通过网络进行消息交互. JMS的编程过程很简单,概 ...

  7. JAVA消息服务JMS规范及原理详解

    一.简介 JMS即Java消息服务(Java Message Service)应用程序接口,是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息,进 ...

  8. jmeter测试java服务_Jmeter 测试 JMS (Java Message Service)/ActiveMQ 性能

    前言 JMS 介绍:JMS 即 Java 消息服务(Java Message Service)应用程序接口,是一个 Java 平台中关于面向消息中间件(MOM)的 API,用于在两个应用程序之间,或分 ...

  9. Java消息服务JMS详解

    2019独角兽企业重金招聘Python工程师标准>>> JMS: Java消息服务(Java Message Service) JMS是用于访问企业消息系统的开发商中立的API.企业 ...

最新文章

  1. Myeclipse加载php插件
  2. java中的浮点计算
  3. python3.7 6如何安装-redhat7.6 安装Python 3
  4. 【Android 内存优化】Bitmap 内存占用计算 ( Bitmap 图片内存占用分析 | Bitmap 内存占用计算 | Bitmap 不同像素密度间的转换 )
  5. python 易支付sdk
  6. addListener添加事件监听器,第三个参数useCapture (Boolean) 的作用
  7. linux删除目录是显示非空,Linux删除非空目录
  8. Jquery 获取 radio选中值(转)
  9. 软件定义网络文章列表
  10. 【OCR技术系列之五】自然场景文本检测技术综述(CTPN, SegLink, EAST)
  11. 57. TCP relay功能描述及Python实现
  12. 全网首发:OPPO推送:服务器端的参考代码,JAVA版
  13. 017指北与游移方位惯导系统知识梳理
  14. 大华电子秤 手动变价方法
  15. 你知道如何从零开始学c++游戏编程吗
  16. Linux学习简单教程和常用命令(小白学习法)
  17. 千锋前端-React全家桶_React项目实战全球新闻发布管理系统-db.json文件数据
  18. Oracle 绑定变量详解
  19. 我逢人就吹的超好用Markdown编辑器-Typora
  20. SCI写作之-结构和写作顺序

热门文章

  1. python里面的pip是什么意思_python中的pip是什么意思
  2. 大数据学习路线(包含全套视频教程)
  3. Android开发EditText属性
  4. 如何设计好一个接口?
  5. 学习笔记之——路径规划
  6. 一个TCP连接总是以1KB的最大段发送TCP段,发送方有足够多的数据要发送。当拥塞窗口为16KB时发生了超时,如果接下来的4个RTT(往返时间)时间内的TCP段的传输都是成功的,那么当第4个RTT时间
  7. 经典面试题 之 分库分表
  8. 无法解析的外部符号 _Direct3DCreate9@4
  9. java的class文件批量反编译成java
  10. 关于@NotNull和@NotBlank的问题