消息中间件

初识MQ

自作多情 提交于 2019-12-03 13:37:28
MQ:消息队列 MQ的衡量指标:服务性能、数据的存储、集群架构 1.ActiveMQ 一、介绍 1.ActiveMQ是Apache出品的,最流行的开源消息总线,是一种完全支持JMS规范的消息中间件 2.其丰富的api、多种集群架构模式使得它成为一种老牌的消息中间件,在中小企业中应用广泛。 二、模式 来源: https://www.cnblogs.com/zheaven/p/11797447.html

京东消息中间件JMQ(转)

牧云@^-^@ 提交于 2019-12-03 10:34:17
http://blog.csdn.net/javahongxi/article/details/54411464 [京东技术]京东的MQ经历了JQ->AMQ->JMQ的发展,其中JQ的基于关系数据库,严格意义上讲称不上消息中间件,JMQ的存储是JFS和HBase,AMQ即ActiveMQ,本文说说JMQ。 JMQ是京东自主研发的一款消息中间件系统,具有高可用、数据高可靠等特性。广泛应用于公司内部系统,包括订单、支付、库房等场景。 整体结构   系统包括服务端、客户端、管理端与其他支撑模块。       详细架构 AMQ JMQ 服务端   服务端提供了配置信息分发、重试消息管理和消息存储与分发这三大类功能。每个服务端实例都具备这三类功能的服务能力,但是在实际部署上这三类功能对应三个不同的集群,对应每一个实例功能不叠加。在测试环境和库房等资源有限的环境下,这三类功能由同一个服务端实例提供服务。   配置信息分发:负责客户端参数变更时与消息分配的服务端实例变更时通知客户端。   重试消息管理:主要用于对业务系统临时处理不了的消息进行存放,然后再按照一定的策略投递给客户端处理。可以提供错误原因、错误处理次数等查询。   消息存储与分发:接收生产者投递的消息,把消息存放在本地磁盘上,消费者从该服务上拉取消息进行消费。      客户端  

消息中间件(下)

匿名 (未验证) 提交于 2019-12-03 00:39:02
1.Windows安装activeMQ 官网下载activeMQ,注意activeMQ版本需要和jdk版本相符才行,下载压缩包,解压得到文件夹,进入到bin目录,如下图 其中activemq.bat是启动一次,显示出一个dos窗口,关闭即结束,这里选择第二个安装activemq服务,然后到系统设置中开启服务即可 2.linux下安装activemq linux下安装activemq,需要先安装jdk才可以,安装activemq的步骤如下: 1)wget https://archive.apache.org/dist/activemq/5.14.4/apache-activemq-5.14.4-bin.tar.gz 2)apache-activemq-5.14.4-bin.tar.gz 解压文件 3)cd apache-activemq-5.14.4 ,进入到apache-activemq-5.14.4目录下 4)cd bin 进入bin目录 5)./activemq start 启动activemq服务 原文:https://www.cnblogs.com/wangxiaochao/p/9248650.html

中间件系列ActiveMQ,Rocketmq,Rabbitmq,Kafka,Mycat让你深入理解学习中间件

匿名 (未验证) 提交于 2019-12-02 23:57:01
分布式系统中,我们广泛运用消息中间件进行系统间的数据交换,便于异步解耦。现在开源的消息中间件有很多,前段时间我们自家的产品 RocketMQ (MetaQ的内核) 也顺利开源,得到大家的关注。 那么,消息中间件性能究竟哪家强? 带着这个疑问,我们中间件测试组对常见的三类消息产品(Kafka、RabbitMQ、RocketMQ)做了性能比较。 Kafka是LinkedIn开源的分布式发布-订阅消息系统,目前归属于Apache定级项目。Kafka主要特点是基于Pull的模式来处理消息消费,追求高吞吐量,一开始的目的就是用于日志收集和传输。0.8版本开始支持复制,不支持事务,对消息的重复、丢失、错误没有严格要求,适合产生大量数据的互联网服务的数据收集业务。 RabbitMQ是使用Erlang语言开发的开源消息队列系统,基于AMQP协议来实现。AMQP的主要特征是面向消息、队列、路由(包括点对点和发布/订阅)、可靠性、安全。AMQP协议更多用在企业系统内,对数据一致性、稳定性和可靠性要求很高的场景,对性能和吞吐量的要求还在其次。 RocketMQ是阿里开源的消息中间件,它是纯Java开发,具有高吞吐量、高可用性、适合大规模分布式系统应用的特点。RocketMQ思路起源于Kafka,但并不是Kafka的一个Copy,它对消息的可靠传输及事务性做了优化,目前在阿里集团被广泛应用于交易、充值

Spring整合JMS消息中间件

匿名 (未验证) 提交于 2019-12-02 23:52:01
1.1 (1)springjms_producer POM SpringJms activeMQ 2 src/main/resources spring applicationContext-jms-producer.xml "cn.itcast.demo" "targetConnectionFactory" "org.apache.activemq.ActiveMQConnectionFactory" "brokerURL" "tcp:// 192.168.25.135 :61616" "connectionFactory" "org.springframework.jms.connection.SingleConnectionFactory" "targetConnectionFactory" "targetConnectionFactory" "jmsTemplate" "org.springframework.jms.core.JmsTemplate" "connectionFactory" "connectionFactory" "queueTextDestination" "org.apache.activemq.command.ActiveMQQueue" "queue_text" 3 cn.itcast.demo @Component public class

MQ削峰限流

匿名 (未验证) 提交于 2019-12-02 23:40:02
MQ的作用 1)解耦 :在项目启动之初是很难预测未来会遇到什么困难的,消息中间件在处理过程中插入了一个隐含的,基于数据的接口层,两边都实现这个接口,这样就允许独立的修改或者扩展两边的处理过程,只要两边遵守相同的接口约束即可。 2)冗余(存储) :在某些情况下处理数据的过程中会失败,消息中间件允许把数据持久化知道他们完全被处理 扩展性:消息中间件解耦了应用的过程,所以提供消息入队和处理的效率是很容易的,只需要增加处理流程就可以了。 3)削峰 :在访问量剧增的情况下,但是应用仍然需要发挥作用,但是这样的突发流量并不常见。而使用消息中间件采用队列的形式可以减少突发访问压力,不会因为突发的超时负荷要求而崩溃 4)可恢复性 :当系统一部分组件失效时,不会影响到整个系统。消息中间件降低了进程间的耦合性,当一个处理消息的进程挂掉后,加入消息中间件的消息仍然可以在系统恢复后重新处理 5)顺序保证 :在大多数场景下,处理数据的顺序也很重要,大部分消息中间件支持一定的顺序性 6)缓冲 :消息中间件通过一个缓冲层来帮助任务最高效率的执行 7)异步通信 :通过把把消息发送给消息中间件,消息中间件并不立即处。 本文只讨论削峰填谷的应用场景: 举个业务场景的栗子,秒杀业务: 上游发起下单操作 下游完成秒杀业务逻辑(库存检查,库存冻结,余额检查,余额冻结,订单生成,余额扣减,库存扣减,生成流水,余额解冻

消息中间件RabbitMQ-RabbitMQ简介

匿名 (未验证) 提交于 2019-12-02 23:36:01
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/shenzhen_zsw/article/details/90745796 消息中间件RabbitMQ-RabbitMQ简介 RabbitMQ简介 1.1消息队列中间件简介 1.2什么是RabbitMQ 具体特点包括: 1.可靠性(Reliability) 2.灵活的路由(Flexible Routing) 3.消息集群(Clustering) 4.高可用(Highly Available Queues) 5.多种协议(Multi-protocol) 6.多语言客户端(Many Clients) 7.管理界面(Management UI) 8.跟踪机制(Tracing) 9.插件机制(Plugin System) 1.3架构图与主要概念 1.3.1架构图 1.3.2 主要概念 RabbitMQ简介 1.1消息队列中间件简介 1)异步处理; 2)应用解耦; 3)流量削锋; 4)消息通讯; 1.2什么是RabbitMQ RabbitMQ 是一个由 Erlang 语言开发的 AMQP 的开源实现。 AMQP :Advanced Message Queue,高级消息队列协议。它是应用层协议的一个开放标准,为面向消息的中间件设计,基于此协议的客户端与消息中间件可传递消息,并不受产品

消息中间件RabbitMQ-直接模式(Direct)

匿名 (未验证) 提交于 2019-12-02 23:36:01
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/shenzhen_zsw/article/details/90745984 消息中间件RabbitMQ-直接模式(Direct) 直接模式(Direct) 什么是Direct模式 创建队列 代码实现 消息生产者 消息消费者 测试 直接模式(Direct) 什么是Direct模式 我们需要 将消息发给唯一一个个节点时使用这种模式,这是最简单的一种形式。 任何发送到Direct Exchange的消息都会被转发到RouteKey中指定的Queue。 1)一般情况可以使用rabbitMQ自带的Exchange:”"(该Exchange的名字为空字符串,下文称其为default Exchange)。 2)这种模式下不需要将Exchange进行任何绑定(binding)操作; 3)消息传递时需要一个“RouteKey”,可以简单的理解为要发送到的队列名字; 4)如果vhost中不存在RouteKey中指定的队列名,则该消息会被抛弃; 创建队列 做下面的例子前,我们先建立一个叫malasong的队列。 说明: 1)Durability: 1.1)是否做持久化 Durable(持久) 1.2)transient(临时) 2)Auto delete : 是否自动删除; 代码实现 消息生产者 (1

消息中间件_metaq

匿名 (未验证) 提交于 2019-12-02 22:56:40
MetaQ是一款分布式、队列模型的消息中间件。基于发布订阅模式,有Push和Pull两种消费方式,支持严格的消息顺序,亿级别的堆积能力,支持消息回溯和多个维度的消息查询。 消费模型 metaq采用发布-订阅模型,发布者发布消息到metaq,订阅者向metaq订阅消息。 消息的消费方式是pull方式,由消费者主动从metaq服务器拉取数据,解析成消息并消费。 消息持久性 metaq 接收到消息之后,会先把消息持久化到本地。 常用的持久化方式: 持久化到DB 持久化到KV存储,如levelDB,伯克利DB 持久化到文件 持久化部分的性能会直接影响消息中间件的性能。 消息堆积能力:metaq每台服务器提供大约亿级的消息堆积能力(多个业务方共用),超过堆积阈值,订阅消息吞吐量会下降。 消息过滤 对于应用比较多,访问量比较大的情况,消息量也就随之增大,一方面服务端给每个客户端发送消息时,总不能把全站的消息都发送过去,这样大量的无用消息在网络上传输是一种资源浪费。另一方面,客户端也不需要接收所有的消息,而只需要接收自己需要的消息。这时,消息中间件就需要一个消息过滤的功能。 metaq支持两种过滤方式:服务器端过滤,客户端过滤。 消息实时性 metaq客户端通过长轮询的方式连接服务端,可以保证消息非常实时,实时性不低于push 每个消息至少投递一次 Consumer先pull消息到本地

Win7环境下安装ActiveMQ

喜欢而已 提交于 2019-12-02 22:02:12
参考ActiveMQ官方文档: http://activemq.apache.org/getting-started.html 安装ActiveMQ 近来要学习JMS,在网上查了些资料,发现ActiveMQ是比较流行的JMS开源框架,决定使用ActiveMQ来学习JMS开发。作为学习JMS的起步,首先要安装ActiveMQ,在windows环境下安装ActiveMQ需要以下步骤: 下载ActiveMQ最新版本的二进制版,下载路径:http://activemq.apache.org/download.html。 解压到任意目录,在DOS窗口下,将工作目录切换到ActiveMQ的安装目录,并输入命令:activemq。 等待ActiveMQ启动。 如果ActiveMQ启动没有问题,就会出现如上图中红线标示的信息: INFO ActiveMQ JMS Message Broker (ID:apple-s-Computer.local-51222-1140729837569-0:0) has started 测试ActiveMQ ActiveMQ的默认端口为61616,另开一个DOS窗口,输入如下命令并回车,可以查看这个端口是否已经打开: netstat -an | find "61616" 也可以在浏览器中检测ActiveMQ的运行状况,访问路径如下: http://127.0.0.1