JAVA消息 JMS 很重要
首先大致讲一下,java 消息模块
消息,个人理解分为两种:1.同步消息(RPC调用)
2.异步消息(本篇讲解部分)
一.同步消息java提供了多种方案:
最新比较常用的方式就是spring Http invoker(注:只在spring项目)和服务提供JAX-WS方式
二.本文主要内容:异步消息
异步消息首先分两处讲解:1.JMS(Java Message Service)
2.AMQP(Advanced Message Queuing Protocol)
1.首先来讲解下,不同于同步消息,什么是异步消息。
客户端主服务不需要等待服务处理消息,简单来说就是不阻塞。
(单纯这样通过多线程RPC访问也能达到同样效果)
在异步消息中有两个主要概念:消息代理(message broker)
目的地(destination)
注意:不同的消息系统会提供不同的消息路由模式,但是有两种通用的的目的地:
1. 队列(queue) 2.主题(topic)
队列分好多种,大家记得就可以,本文主要讲解,远程队列,模版队列和动态队列!!!!!
注:一个隐藏的mq概念(通道)!!!!!!!! 内容是在太多了
上述通用的概念可以百度,在讲解JMS也会讲解到具体的.
第一.JMS
(扯犊子讲下为啥需要知道JMS,jms消息的基础算是,acctiveMQ其实也是基于jms搞出来的)
基本的概念:JMS是java message service,在java程序需要异步发送消息的时候使用的一种服务
JMS主要的点(也是多种不同消息模式通用的点):1.点对点模式Point-to-Point(P2P)
2.发布/订阅模式Publish/Subscribe(Pub/Sub)
点对点:这种模式所涉及到的概念就是-1.发送者,2.接收者,3.消息队列(远程队列)
先来个点用时序图方便大家理解:
当前模式需要了解的点:1.一个生产者之对应一个消费者
2.生产者和消费者之间没有依赖,生产者只需要把消息丢到远程队列即可
3.消费者从队列获取消息,即队列中的消息只有在被消费或者超时才会被销毁(所以消费者可以不用时时监听)
(具体代码,我等结尾贴个开源代码,可以自己找)
发布/订阅模式:这种模式所涉及到的概念就是-1.发布者(Publisher),2.订阅者(Subscriber),3.主题Topic(模版队列+动态队列)
是时候再贴一张图了:
当前模式需要了解的点:1.一个生产者之对应多个个消费者,即一条消息可以被多次消费。
2.默认情况下,当生产者生产消息的时候,消费者必须在线同事消费,即发布主题时,订阅者必须在线监听
3.为了接触订阅模式,消费者与主题的时间耦合,JMS提供可持久化订阅,这块是重点,即针对于某些特定的订阅者,Topic会缓存至其订阅者消费或消息超时。
---------------------
作者:狗蛋儿_312
来源:CSDN
原文:https://blog.csdn.net/weixin_37352094/article/details/80500202
版权声明:本文为博主原创文章,转载请附上博文链接!
JAVA消息 JMS 很重要的更多相关文章
- JMS(Java消息服务)入门教程
什么是Java消息服务 Java消息服务指的是两个应用程序之间进行异步通信的API,它为标准消息协议和消息服务提供了一组通用接口,包括创建.发送.读取消息等,用于支持JAVA应用程序开发.在J2EE中 ...
- JMS(Java消息服务)与消息队列ActiveMQ基本使用(一)
最近的项目中用到了mq,之前自己一直在码农一样的照葫芦画瓢.最近几天研究了下,把自己所有看下来的文档和了解总结一下. 一. 认识JMS 1.概述 对于JMS,百度百科,是这样介绍的:JMS即Java消 ...
- java消息服务学习之JMS概念
JMS即Java消息服务(Java Message Service)应用程序接口是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信. ...
- Java消息队列——JMS概述
一.什么是JMS JMS即Java消息服务(Java Message Service)应用程序接口,是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送 ...
- ActiveMQ学习总结(5)——Java消息服务JMS详解
JMS: Java消息服务(Java Message Service) JMS是用于访问企业消息系统的开发商中立的API.企业消息系统可以协助应用软件通过网络进行消息交互. JMS的编程过程很简单,概 ...
- JMS(Java消息服务)入门教程(一)
什么是Java消息服务 Java消息服务指的是两个应用程序之间进行异步通信的API,它为标准消息协议和消息服务提供了一组通用接口,包括创建.发送.读取消息等,用于支持JAVA应用程序开发.在J2EE中 ...
- Java消息队列--JMS概述
1.什么是JMS JMS即Java消息服务(Java Message Service)应用程序接口,是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送 ...
- 【转载】JAVA消息服务JMS规范及原理详解
转载:https://www.cnblogs.com/molao-doing/articles/6557305.html 作者: moyun- 一.简介 JMS即Java消息服务(Java Messa ...
- JAVA消息服务JMS规范及原理详解
JAVA消息服务JMS规范及原理详解 一.简介 JMS即Java消息服务(Java Message Service)应用程序接口,是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应 ...
随机推荐
- thymeleaf 学习笔记-基础篇(中文教程)
(一)Thymeleaf 是个什么? 简单说, Thymeleaf 是一个跟 Velocity.FreeMarker 类似的模板引擎,它可以完全替代 JSP .相较与其他的模板引擎,它有如下 ...
- Centos设置SSH限制登录用户及IP
1,系统版本查看 2,编辑ssh配置文件 vim /etc/ssh/sshd_config 在尾部加一行 允许sysman用户从ip1.1.1.*登录 3,重启sshd即可 /etc/init.d/s ...
- You don't have permission to access
局域网内配置Discuz,web端访问server端,出现以下反馈: Forbidden You don't have permission to access / on this server. 网 ...
- beans有无状态
Spring Bean Scopes https://www.tutorialspoint.com/spring/spring_bean_scopes.htm When defining a < ...
- Scala高级语法
一.隐式 implicit分类: (1)隐式参数 (2)隐式转换类型 (3)隐式类 特点:让代码变得更加灵活 (一)隐式参数 1.ImplicitTest object ImplicitTest { ...
- 内核通信之Netlink源码分析-用户内核通信原理3
2017-07-06 上节主讲了用户层通过netlink和内核交互的详细过程,本节分析下用户层接收数据的过程…… 有了之前基础知识的介绍,用户层接收数据只涉及到一个核心调用readmsg(), 其他的 ...
- C++ new 长度为0的数组
在C++中可以new一个长度为0的数组,通过下面的语句: char* p = new char[0]; 指针p中保存一个非NULL的地址,但是你不能够对p指向的内存进行写入,因为p的内存长度为0, 该 ...
- 详解maxlength属性在textarea里奇怪的表现
这篇文章主要介绍了maxlength属性在textarea里奇怪的表现的相关资料,需要的朋友可以参考下 HTML5给表单带来了很多改变,比如今天要说的maxlength,这个属性可以限制输入框输入的最 ...
- oracle(十二)redo 与 undo
1.undo:回滚未提交的事务.未提交前,内存不够用时,DBWR将脏数据写入数据文件中,以腾出内存空间. 这就是undo存在的原因. redo:恢复所有已提交的事务 2.实例失败(如主机掉电)可能出现 ...
- 2014年百度之星程序设计大赛 - 资格赛 1001 Energy Conversion
版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/sr19930829/article/details/26003661 Energy Conversi ...