MQ主要流程

解耦,异步,消峰

其中目的地主要为队列或者主题

队列点对点

消息的生产者

或者

这时消息的生产者名字已经出来

并且入队的数量变成了3

上述完成的也就是这部分

消息的消费者

前四步大同小异

这里需要和消息发送者的类型一致,所以需要强转一下

其中等待接收可以设置为一直等或者设置时长

最后再加上判断,良好的编程习惯

执行一下

出队变成了3,消费连接数变成了1,并且因为设置的receive为一直等,所以消费数量不会变化,除非关闭程序

不过这种方法是阻塞的

=====================

=====================

2通过监听的方式来消费消息(像是安卓中的监听事件)

前5步不变,从while处改变

加上System.in.read是让程序持续运行,不输入即一直运行,输入了然后就关闭,正好给消费时间

不然不写这部分,程序运行速度肯定超过消费速度

===============================

===============================

搞清楚了生产者消费者的基础程序和概念之后下面看一个重点

消费生产的冲突问题---三大消费问题

=================================

=================================

=================================

主题发布订阅-一对多

与队列基本一致,改一改名字和目的地即可

生产者

消费者同理也是如此操作即可

最后再说下MQ中间件的产品很多:kafka,RocketMQ,而学习了activeMQ基本原理相通,

JMS

而MQ基本属于JMS规范( JMS即Java消息服务(Java Message Service)应用程序接口,是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。Java消息服务是一个与具体平台无关的API,绝大多数MOM提供商都对JMS提供支持。)

而jms常见的问题就是保障消息可靠性保证,

1持久非持久2事务3签收

这就是涉及到消息头中的DeliveryMode

消息头

1JMSDestination 目的地

2JMSDeliveryMode 持久非持久模式

3JMSExpiration 过期时间

4   JMSPriority 优先级

5JMSMessageID 唯一识别编号

消息调用的幂等性就需要这个唯一识别编号

当然最后看了上面的一个一个设置消息头是不是很麻烦,上面只是为了演示方法,还可以通过send统一批处理

消息体

消息属性-更进一步增加识别度

怎样用:

JMS可靠性

1持久设置

这也是前面消息头讲过的

2事务设置(偏生产者)

生产者事务

前面我们都是用的false下面如设置为true看看

为什么false这么方便,自动提交还需要false呢

因为事务的特性:同生共死

所以再写代码时应该是这样用,假设一个生产者挂了,这一事务(加入有十个生产者)就因为都不能执行,这时应让事务回滚重新执行

即:正常给你提交,错误就再给你机会回滚直到生产成功

看看下面伪代码

3签收设置(偏消费者)

前面的情况是非事务,如果按照事务的情况,你设置手动的情况不ACK都不影响了

如一样可以接受

Broker

Broker可以被看成消息转发器。Broker也负责一些控制和管理操作。它能够定位服务端的位置,若发生异常,能够将异常捕获传给Client。Broker需要提供注册服务的接口给Server。如果请求来自其他的Broker,本地的Broker需要转发请求并最终将结果或异常回应给相应的远程Broker。Broker提供的服务和name service非常相像(如DNS、LDAP)。

l 责任:1. 注册服务。2. 提供服务API。3. 转发消息。4. 容错处理。5. 与其他Broker的交互。6。 定位服务。

导入依赖

然后写Broker

相当于ActiveMQ的一个mini版实例

就可以不再调用136而是本机

python消息中间件activemq_消息中间件ActiveMQ和JMS基础相关推荐

  1. jms activemq_带有ActiveMQ的JMS

    jms activemq 带有ActiveMQ的JMS JMS是Java消息服务的缩写,它提供了一种以松散耦合,灵活的方式集成应用程序的机制. JMS以存储和转发的方式跨应用程序异步传递数据. 应用程 ...

  2. 速读“消息中间件”架构体系-ActiveMQ:入门+原理分析+优缺点!

    ActiveMQ 01 介绍 ActiveMQ 是完全基于 JMS 规范实现的一个消息中间件产品. 是 Apache 开源基金会研发的消息中间件.ActiveMQ主要应用在分布式系统架构中,帮助构建高 ...

  3. 使用Apache ActiveMQ的JMS开发基础

    去年是我尝试JMS的时候. 背后的想法和概念让我有些困惑,但是当我知道它的用途后,我很快就掌握了它. 在本文中,我将展示使用Apache ActiveMQ作为后端使用Java开发简单的生产者/消费者的 ...

  4. 【ActiveMQ】JMS中间件ActiveMQ详解

    1.JMS介绍 Java Message Service(JMS)是SUN提出的旨在统一各种MOM(Message-Oriented Middleware )系统接口的规范,它包含点对点(Point ...

  5. java消息中间件_java消息中间件

    消息队列 什么是消息队列 消息队列是消息中间件的一种实现方式. 什么是消息中间件? 将消息中间件需要理解一下什么是消息和中间件? 消息 消息是指软件对象之间进行交互作用和通讯利用的一种方式. 中间件 ...

  6. c语言和python哪个自学好-有c语言基础 自学python 应该选什么书来看?

    然后,目前你还处在新手村阶段.还是先关注下入门资料.Python 新手入门课_Python - 实验楼​www.shiyanlou.com 这是实验楼为 Python 零基础的同学定制的课程,仅需要一 ...

  7. python自学步骤-学习Python最正确的步骤(0基础必备)

    首先,学习Python编程技术,自学或者参加培训学习都适用,每个人都有自己的学习方式和方法. 一:明确自己的学习目标. 不管我们学习什么样的知识,都要对自己的学习目标有一个明确的认识.只有这样才能朝着 ...

  8. python从零基础到项目实战怎么样-Python 3.x网络爬虫从零基础到项目实战

    ● 案例完整 本书中的所有案例都是通过"理论讲解 + 环境搭建 + 完整代码及分析 + 运行结果"这种完善的结构进行讲解的.此外,复杂的案例配有项目结构图,有难度的案例还分析了底层 ...

  9. Python语言学习:python语言的特点、入门、基础用法之详细攻略

    Python语言学习:python语言的特点.入门.基础用法之详细攻略 相关内容 Python 基础教程 目录 python语言的特点 python语言的入门 python语言的基础用法 python ...

最新文章

  1. 我想成为一名计算机管理员英语作文,我想成为一名老师英语作文4篇
  2. 模拟和存根有什么区别?
  3. 【代码笔记】Web-JavaScript-JavaScript表单验证
  4. Python之数据分析(动画效果、animation模块、气泡动画)
  5. 大数据时代的河南机遇
  6. 从信号转换角度研究血压(波形)预测的相关论文
  7. 定时开关机cmd命令
  8. 国务院通过大数据发展行动纲要
  9. oracle财务系统表,EBS系统财务常用表和各表关联关系
  10. HDU - 3533 Escape
  11. oracle优化器analyzed,Oracle Optimizer:迁移到使用基于成本的优化器—–系列1.2-数据库专栏,ORACLE...
  12. DropBox系列-安卓DropBox介绍
  13. 从平民到帝皇——给企业主的启示
  14. 矩阵的转置与矩阵的逆
  15. wlh- beagle bone 通过uboot tftp 加载zImage 设备树 及 nfs 挂载根文件系统
  16. java全角数字_JAVA技巧(JAVA全角和半角的转换代码)
  17. 微信如何关闭城市服务定位服务器,位置定位微信(怎么悄悄的查对方位置)
  18. linux上配置zabbix并设置企业微信,机器人以及自主告警
  19. 计算机科学格鲁吉亚理工,乔治亚理工大学计算机科学专业大学排名
  20. html转盘游戏,使用Javascript和CSS3实现一个转盘小游戏(实战篇)

热门文章

  1. 视频问答PPT大放送丨中信银行邓琼-GoldenDB分布式数据库研发与应用实践
  2. ORA-600_16703比特币攻击案例分析
  3. 干货分享丨从MPG 线程模型,探讨Go语言的并发程序
  4. 云小课|网络好不好,ping一下就知道
  5. 一文总结GaussDB通信原理知识
  6. 如何通过一个SDK轻松搞定人脸识别,拯救初入职场的程序猿
  7. 人车识别实验丨华为ModelArts VS 百度Easy DL硬核体验
  8. opengl学习笔记(三)
  9. zookeper安装_ZooKeeper的安装与部署
  10. 逻辑回归与线性回归的区别