首先大致讲一下,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 很重要的更多相关文章

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

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

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

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

  3. java消息服务学习之JMS概念

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

  4. Java消息队列——JMS概述

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

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

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

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

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

  7. Java消息队列--JMS概述

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

  8. 【转载】JAVA消息服务JMS规范及原理详解

    转载:https://www.cnblogs.com/molao-doing/articles/6557305.html 作者: moyun- 一.简介 JMS即Java消息服务(Java Messa ...

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

    JAVA消息服务JMS规范及原理详解 一.简介 JMS即Java消息服务(Java Message Service)应用程序接口,是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应 ...

随机推荐

  1. Linux配置Nginx,MySql,php-fpm开机启动的方法

    一. Nginx 开机启动 1.在/etc/init.d/目录下创建脚本 vim /etc/init.d/nginx 2.编写脚本内容 (将以下复制进去相应改动安装路径) 1 2 3 4 5 6 7 ...

  2. android data recovery and nc

    目录下会出现mmcblk0.raw文件,文件大小等于手机内部存储空间的大小,该文件正是手机内部存储空间的镜像文件. 第七步,打开一款传统的数据恢复工具,由于raw文件是linux文件系统格式,因此需要 ...

  3. scrapy爬虫系列之三--爬取图片保存到本地

    功能点:如何爬取图片,并保存到本地 爬取网站:斗鱼主播 完整代码:https://files.cnblogs.com/files/bookwed/Douyu.zip 主要代码: douyu.py im ...

  4. Python网络爬虫学习总结

    1.检查robots.txt 让爬虫了解爬取该网站时存在哪些限制. 最小化爬虫被封禁的可能,而且还能发现和网站结构相关的线索. 2.检查网站地图(robots.txt文件中发现的Sitemap文件) ...

  5. SQL基础--查询之一--单表查询

    SQL基础--查询之一--单表查询

  6. centos Linux系统日常管理1 cpuinfo cpu核数 命令 w, vmstat, uptime ,top ,kill ,ps ,free,netstat ,sar, ulimit ,lsof ,pidof 第十四节课

    centos Linux系统日常管理1  cpuinfo cpu核数   命令 w, vmstat, uptime ,top ,kill ,ps ,free,netstat ,sar, ulimit ...

  7. gb28181的SPVMN测试环境搭建以及设备端和服务器的具体实现

    1.GB/T28181开发1之SPVMN(1.0.0.1)环境搭建 https://blog.csdn.net/hiwubihe/article/details/82910685 2.SPVMN 视频 ...

  8. 2.8 The Object Model -- Enumerables

    在Ember.js中,枚举是包含许多子对象的任何对象,并允许你使用Ember.Enumerable API和那些子对象一起工作.在大部分应用程序中最常见的可枚举是本地JS数组,Ember.js扩展到符 ...

  9. Ubuntu vim java 自动补全javacomeplete2

    一 安装vundle $ git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim 默认安装在/.v ...

  10. c++第二十八天

    p140~p144:逗号运算符1.特点:1)规定运算顺序,即由左向右.2)逗号运算符的真正结果是右侧表达式的值! 练习 4.31 使用后置的运算符会有额外的内存开销, 在这道题中使用前置和后置结果貌似 ...