消息队列

RabbitMQ入门

你。 提交于 2020-02-28 18:47:58
文章目录 一、rabbitMQ简介 各大主流中间件对比: 初识RabbitMQ RabbitMQ高性能的原因? 什么是AMQP高级消息队列协议? AMQP核心概念(重点) 二、rabbitMQ安装及使用(两种) Centos安装方式 Docker安装方式 常用操作命令 三、rabbitMQ快速入门 四、交换机 直流交换机 主题交换机 输出交换机 一、rabbitMQ简介 各大主流中间件对比: ActiveMQ ActiveMQ 是 Apache 出品,最流行的,能力强劲的开源消息总线,并且它一个完全支持 J M S 规范的消息中间件。 其丰富的 API 、多种集群构建模式使得他成为业界老牌消息中间件,在中小型企业中应用广泛! MQ 衡量指标:服务性能、数据存储、集群架构 Kafka 用来做日志分析的 RocketMQ RocketMQ是阿里开源的消息中间件,目前也已经孵化为Apache顶级项目,它是纯java开发,具有高吞吐量、高可用性、适合大规模分布式系统 应用的特点。 RocketMQ思路起源于Kafka,它对消息的可靠传输及事务 性做了优化,目前在阿里集团被广泛应用于交易、充值、流计算、消息推 送、日志流式处理、binglog分发等场景 RabbitMQ RabbitMQ是使用Erlang语言开发的开源消息队列系统,基于AMQP协议 来实现。 AMQP的主要特征是面向消息

5分钟带你体验一把 Kafka

余生颓废 提交于 2020-02-28 16:10:10
说在文章前面的话: 前置条件:你的电脑已经安装 Docker 主要内容: 使用 Docker 安装 使用命令行测试消息队列的功能 zookeeper和kafka可视化管理工具 Java 程序中简单使用Kafka 使用 Docker 安装搭建Kafka环境 单机版 下面使用的单机版的Kafka 来作为演示,推荐先搭建单机版的Kafka来学习。 以下使用 Docker 搭建Kafka基本环境来自开源项目:github.com/simplesteph… 。当然,你也可以按照官方提供的来:github.com/wurstmeiste… 。 新建一个名为 zk-single-kafka-single.yml 的文件,文件内容如下: version: '2.1' services: zoo1: image: zookeeper:3.4.9 hostname: zoo1 ports: - "2181:2181" environment: ZOO_MY_ID: 1 ZOO_PORT: 2181 ZOO_SERVERS: server.1=zoo1:2888:3888 volumes: - ./zk-single-kafka-single/zoo1/data:/data - ./zk-single-kafka-single/zoo1/datalog:/datalog kafka1: image:

RabbitMQ入门

被刻印的时光 ゝ 提交于 2020-02-28 15:27:39
文章目录 RabbitMQ简介 各大主流中间件对比 初识RabbitMQ RabbitMQ高性能的原因 什么是AMQP高级消息队列协议 AMQP核心概念(重点) RabbitMQ安装及使用 Centos安装方式 RabbitMQ安装与使用 Docker安装方式 常用操作命令 RabbitMQ快速入门 交换机 直流交换机 主题交换机 输出交换机 RabbitMQ简介 各大主流中间件对比 ActiveMQ ActiveMQ 是 Apache 出品,最流行的,能力强劲的开源消息总线,并且它一 个完全支持 J M S 规范的消息中间件。 其丰富的 API 、多种集群构建模式使得他成为业界老牌消息中间件,在中 小型企业中应用广泛! MQ 衡量指标:服务性能、数据存储、集群架构 Kafka Kafka用来做日志分析 RocketMQ RocketMQ是阿里开源的消息中间件,目前也已经孵化为Apache顶级项目, 它是纯java开发,具有高吞吐量、高可用性、适合大规模分布式系统 应用的特点。 RocketMQ思路起源于Kafka,它对消息的可靠传输及事务 性做了优化, 目前在阿里集团被广泛应用于交易、充值、流计算、消息推 送、日志流式处理、binglog分发等场景 RabbitMQ RabbitMQ是使用Erlang语言开发的开源消息队列系统,基于AMQP协议 来实现。

MQ技术

二次信任 提交于 2020-02-28 14:53:08
MQ技术(消息队列) 消息中间件概述 消息队列技术是分布式应用间交换信息的一种技术。 消息队列可驻留在内存或磁盘上,队列存储消息直到它们被应用程序读走。 通过消息队列,应用程序可独立地执行–它们不需要知道彼此的位置、或在继续执行前不需要等待接收程序接收此消息。 消息队列为构造以同步或异步方式实现的分布式应用提供了松耦合方法。 消息队列的API调用被嵌入到新的或现存的应用中,通过消息发送到内存或基于磁盘的队列或从它读出而提供信息交换。 消息队列可用在应用中以执行多种功能,比如要求服务、交换信息或异步处理等。 消息队列的四大好处: 1.解耦:每个成员不必受其他成员影响,可以更独立自主,只通过一个简单的容器来联系。 2.提速 3.广播 4.削峰 消息队列的成本: 1.引入复杂度 2.暂时的不一致性 中间件是一种独立的系统软件或服务程序,分布式应用系统借助这种软件在不同的技术之间共享资源,管理计算资源和网络通讯。 它在计算机系统中是一个关键软件,它能实现应用的互连和互操作性,能保证系统的安全、可靠、高效的运行。 中间件位于用户应用和操作系统及网络软件之间,它为应用提供了公用的通信手段,并且独立于网络和操作系统。 中间件为开发者提供了公用于所有环境的应用程序接口,当应用程序中嵌入其函数调用,它便可利用其运行的特定操作系统和网络环境的功能,为应用执行通信功能。 如果没有消息中间件完成信息交换

5分钟带你体验一把 Kafka

倾然丶 夕夏残阳落幕 提交于 2020-02-28 13:12:25
Guide哥答应大家的 Kafka系列的第2篇原创文章。为了保证内容实时更新,我将相关文章也发送到了Gihub上!地址 :https://github.com/Snailclimb/springboot-kafka 相关阅读: 入门篇!大白话带你认识 Kafka! 前置条件:你的电脑已经安装 Docker 主要内容: 使用 Docker 安装 使用命令行测试消息队列的功能 zookeeper和kafka可视化管理工具 Java 程序中简单使用Kafka 使用 Docker 安装搭建Kafka环境 单机版 下面使用的单机版的Kafka 来作为演示,推荐先搭建单机版的Kafka来学习。 以下使用 Docker 搭建Kafka基本环境来自开源项目: https://github.com/simplesteph/kafka-stack-docker-compose 。当然,你也可以按照官方提供的来: https://github.com/wurstmeister/kafka-docker/blob/master/docker-compose.yml 。 新建一个名为 zk-single-kafka-single.yml 的文件,文件内容如下: version: '2.1' services: zoo1: image: zookeeper:3.4.9 hostname: zoo1 ports

PHP memcache实现消息队列实例

坚强是说给别人听的谎言 提交于 2020-02-28 12:38:26
现在memcache在服务器缓存应用比较广泛,下面我来介绍memcache实现消息队列等待的一个例子,有需要了解的朋友可参考。 memche消息队列的原理就是在key上做文章,用以做一个连续的数字加上前缀记录序列化以后消息或者日志。然后通过定时程序将内容落地到文件或者 数据库 。 php实现消息队列的用处比如在做发送 邮件 时发送大量邮件很费时间的问题,那么可以采取队列。 方便实现队列的轻量级队列服务器是: star ling 支持memcache协议的轻量级持久化服务器 htt ps ://github.com/starling/starling Beanstalkd轻量、高效,支持持久化,每秒可处理3000左右的队列 http://kr.github.com/beanstalkd/ php中也可以使用memcache/memcached来实现消息队列 <?php /** * Memcache 消息队列类 */ class QMC { const PREFIX = 'ASDFASDFFWQKE'; /** * 初始化mc * @staticvar string $mc * @return Memcache */ static private function mc_init() { static $mc = null; if (is_null($mc)) { $mc = new

RabbitMQ 整合 SpringCloud实战

泪湿孤枕 提交于 2020-02-28 10:27:22
RabbitMQ 整合 SpringCloud实战 RabbitMQ 整合 SpringCloud实战 rabbitmq-common 子项目 rabbitmq-springcloud-consumer 子项目 rabbitmq-springcloud-producer 子项目 RabbitMQ 整合 SpringCloud实战 注意一点,在发送消息的时候对 template 进行配置 mandatory=true 保证监听有效 生产端还可以配置其他属性,比如发送重试,超时时间、次数、间隔等 消费端核心配置: 首先配置手工确认模式,用于ACK的手工处理,这样我们可以保证消息的可靠性送达,或者在消费端消费失败的时候可以做到重回队列、根据业务记录日志等处理; 可以设置消费端的监听个数和最大个数,用于控制消费端的并发情况 @RabbitListener注解的使用: 消费端监听@RabbitListener注解,这个对于在实际工作中非常的好用 @RabbitListener是一个组合注解,里面可以注解配置(@QueueBinding、@Queue、@Exchange)直接通过这个组合注解一次性搞定消费端交换机、队列、绑定、路由、并且配置监听功能等 注:由于类配置写在代码里非常不友好,所以强烈建议大家使用配置文件配置 <ignore_js_op> rabbitmq-common 子项目

Beats:使用Elastic Stack监控RabbitMQ

旧巷老猫 提交于 2020-02-28 02:31:50
RabbitMQ是一个开放源消息代理,创建于2007年以实现AMQP,并且在过去的十二年中,通过不断增加的插件列表,它已包括HTTP,STOMP,SMTP和其他协议。它也是Kafka的一个强劲的竞争者。在今天的文章中,我们将详述如何使用Elastic Stack来监控RabbitMQ。 RabbitMQ简介 RabbitMQ是消息队列软件,也称为消息代理或队列管理器。 简单地说; 它是定义队列的软件,应用程序连接到该队列以传输一条或多条消息。 一条消息可以包含任何种类的信息。 例如,它可能具有有关应在另一个应用程序(甚至可能在另一个服务器上)上启动的过程或任务的信息,或者可能只是一条简单的文本消息。 队列管理器软件存储消息,直到接收应用程序连接并从队列中取出消息为止。 接收应用程序然后处理该消息。 消息队列的基本体系结构很简单-有一些称之为生产者(producers)的客户端应用程序,它们可以创建消息并将其传递到代理(消息队列)。 其他应用程序(称为消费者,也即consumers)连接到队列并订阅要处理的消息。 软件可以充当消息的生产者或消费者,或者既充当消息的消费者又充当生产者。 存储在队列中的消息将被存储,直到消费者检索到它们为止。 在下面我们来具体介绍如何使用Elastic Stack来把我们想要的RabbitMQ日志导入到Elastic Stack中,并对日志进行分析。

kafka是什么?storm与kafka的区别?

余生颓废 提交于 2020-02-28 01:04:29
kafka是消息队列,类似于RabitMQ,作为中间组件,主要解决异步,削峰,提高系统性能。 storm与kafka的区别? storm用于流数据的实时处理,在获取流数据之前,需要加入kafka消息队列来提高性能。 flume是什么? flume是在kafka获取数据之间,加入flume获取数据,把获取数据的流程封装起来,变得比较简单。 来源: oschina 链接: https://my.oschina.net/u/4434424/blog/3176335

为什么要使用消息队列

大兔子大兔子 提交于 2020-02-28 00:05:13
1.通过异步处理提高系统性能,能够实现削峰与降低响应时间 在不是用消息队列前用户发送请求到服务器,然后在读写数据库,这样如果在高并发情况下会给服务器与数据库很大压力,并且直接从数据库中获取数据会相对较慢,响应时间过长; 如果使用了消息队列,则用户发送请求到服务器后,会直接转到消息队列,而不是直接访问数据库,消息队列会立即返回时间比直接访问数据库时间小,处理能力也高,这样就解决了高并发问题与响应时间问题 2.解耦 使用消息队列后,使得服务器与数据库之间不会直接调用,这样就降低了耦合性,提高了可扩展能力。 来源: oschina 链接: https://my.oschina.net/u/4434424/blog/3164211