消息中间件

Kafka简明教程

不想你离开。 提交于 2019-11-28 23:58:43
作者:柳树之 www.jianshu.com/p/7b77723d4f96 Kafka是啥?用Kafka官方的话来说就是: Kafka is used for building real-time data pipelines and streaming apps. It is horizontally scalable, fault-tolerant, wicked fast, and runs in production in thousands of companies. 大致的意思就是,这是一个实时数据处理系统,可以横向扩展、高可靠,而且还变态快,已经被很多公司使用。 那么什么是实时数据处理系统呢?顾名思义,实时数据处理系统就是数据一旦产生,就要能快速进行处理的系统。 对于实时数据处理,我们最常见的,就是消息中间件了,也叫MQ(Message Queue,消息队列),也有叫Message Broker的。 这篇文章,我将从消息中间件的角度,带大家看看Kafka的内部结构,看看它是如何做到横向扩展、高可靠的同时,还能变态快的。 为什么需要消息中间件 消息中间件的作用主要有两点: 解耦消息的生产和消费。 缓冲。 想象一个场景,你的一个创建订单的操作,在订单创建完成之后,需要触发一系列其他的操作,比如进行用户订单数据的统计、给用户发送短信、给用户发送邮件等等,就像这样:

Kafka、RabbitMQ、RocketMQ消息中间件的对比—— 消息发送性能

本秂侑毒 提交于 2019-11-28 22:09:02
中间件小哥 浏览 228 2016-04-08 11:21:09 摘要 引言 分布式系统中,我们广泛运用消息中间件进行系统间的数据交换,便于异步解耦。现在开源的消息中间件有很多,前段时间我们自家的产品 RocketMQ (MetaQ的内核) 也顺利开源,得到大家的关注。 那么,消息中间件性能究竟哪家强? 带着这个疑问,我们中间件测试组对常见的三类消息产品(Kafka、... 引言 分布式系统中,我们广泛运用消息中间件进行系统间的数据交换,便于异步解耦。现在开源的消息中间件有很多,前段时间我们自家的产品 RocketMQ (MetaQ的内核) 也顺利开源,得到大家的关注。 那么,消息中间件性能究竟哪家强? 带着这个疑问,我们中间件测试组对常见的三类消息产品(Kafka、RabbitMQ、RocketMQ)做了性能比较。 Kafka是LinkedIn开源的分布式发布-订阅消息系统,目前归属于Apache定级项目。Kafka主要特点是基于Pull的模式来处理消息消费,追求高吞吐量,一开始的目的就是用于日志收集和传输。0.8版本开始支持复制,不支持事务,对消息的重复、丢失、错误没有严格要求,适合产生大量数据的互联网服务的数据收集业务。 RabbitMQ是使用Erlang语言开发的开源消息队列系统,基于AMQP协议来实现。AMQP的主要特征是面向消息、队列、路由(包括点对点和发布/订阅)

消息中间件Kafka - 介绍及安装

独自空忆成欢 提交于 2019-11-28 18:22:37
文章目录 Kafka介绍 优势 关键概念 安装 Kafka介绍 优势 高吞吐量 :非常普通的硬件Kafka也可以支持每秒数百万的消息 支持通过Kafka服务器和消费机集群来区分消息 支持Hadoop并行数据加载 关键概念 Broker :Kafka集群中的一台或多台服务器统称为broker。 Topic :Kafka处理的消息源(feeds of messages)的不同分类。 Partition :Topic物理上的分组,一个topic可以分为多个partition,每个partition是一个有序的队列。partition中的每条消息都会被分配一个有序的id(offset)。 Message :消息,是通信的基本单位,每个producer可以向一个topic(主题)发布一些消息。 Producers :消息和数据生产者,向Kafka的一个topic发布消息的过程叫做producers。 Consumers :消息和数据的消费者,订阅topics并处理其发布的消息的过程叫做consumers。 安装 下载 先安装jdk 然后jdk的安装方式在elasticsearch的安装文章中有,这里就不写了 kafka官网 wget https://www-us.apache.org/dist/kafka/2.1.1/kafka_2.11-2.1.1.tgz 解压 tar -xzvf

JAVA消息中间件

久未见 提交于 2019-11-28 11:03:52
什么是中间件?   非底层操作系统软件,非业务系统软件,不是直接给最终用户使用的,不能直接给客户带来价值的软件统称为中间件。 什么是消息中间件?   关注与消息的接受和发送,利用高效可靠的异步消息传递机制集成分布式系统。 JMS   JAVS消息服务,是一个Java平台中面向消息中间件的API,用于在两个应用程序之间或分布式系统中发送消息,进行异步通讯。 AMQP?   Advanced Message Queuing Protocol,是一个提供统一消息服务的应用层标准协议,基于此协议的客户端可消息中间件可传递消息,并接受客户端/中间件不同产品、不同研发语言的等条件的限制。 来源: https://www.cnblogs.com/niuyg928/p/11405985.html

消息中间件——RabbitMQ(一)Windows/Linux环境搭建(完整版)

北慕城南 提交于 2019-11-28 07:16:56
原文: 消息中间件——RabbitMQ(一)Windows/Linux环境搭建(完整版) 前言 最近在学习消息中间件——RabbitMQ,打算把这个学习过程记录下来。此章主要介绍环境搭建。此次主要是单机搭建(条件有限),包括在Windows、Linux环境下的搭建,以及RabbitMQ的监控平台搭建。 环境准备 在搭建RabbitMQ之前,请先确保如下环境已经搭建完毕 Java环境(我的JDK1.8) Maven环境(我的3.6.1目前最新版) Git环境 没有搭建的同学走传送门: JDK环境搭建: JAVA8环境搭建 Maven环境搭建: Windows环境下使用Nexus 3.X 搭建Maven私服及使用介绍 Git环境搭建: Git环境搭建及配置 1.Windows环境下搭建 需要分别下载erlang与RabbitMQ安装包,进行安装。如果有遇到官方网站打不开的情况,可以扫描下方二维码关注公众号: Coder编程 回复RabbitMQ可以获取安装文件。 1.1 下载并安装 erlang 原因:RabbitMQ服务端代码是使用并发式语言Erlang编写的,安装Rabbit MQ的前提是安装Erlang。 下载地址:http://www.erlang.org/downloads 目前最新版本是:22.0 根据电脑位数下载相应版本,现在大部分电脑都是64位

消息中间件(消息队列MQ)简介

╄→гoц情女王★ 提交于 2019-11-28 06:27:32
一、为什么要使用MQ 1. 异步:快速返回 2. 解耦:解除依赖 3. 削峰填谷 二、MQ的缺点 1. 系统可用性降低,因为MQ可能会挂 2. 系统复杂性提高,要考虑消息重复、丢失、顺序等问题 3. 数据一致性问题,生产者并不知道消费者是否真正消费了 三、怎么保证MQ消息不丢失 1. 生产者丢失数据,confirm机制 2. MQ丢失数据,持久化到磁盘 3. 消费者丢失数据,确认机制 四、怎么保证MQ高可用性 1. 单机模式 2. 普通集群模式,无法做到真正的高可用 3. 镜像集群模式,高可用但是性能低 来源: https://www.cnblogs.com/june0816/p/11343238.html

消息中间件

三世轮回 提交于 2019-11-28 06:05:36
1,什么是消息中间件 在网络通讯中,http 协议默认采用的是同步的方式,也就意为者一个客户端发送请求,必须要等到服务器端处理完成,并且返回结果给客户端,客户端才能继续执行。 在网络延迟情况下,因为服务器端的不可达,客户端也会收到影响。 所以,为避免这种情况,就出现了消息中间件。就出现了面向消息的消息中间件。发送者将消息发送给消息中间件服务器,中间件服务器将消息存储在队列中,在合适的时候再发给接收者。 在这种模式下,发送者和接收者的声明周期不一定一致。 2,消息中间件有什么好处 消息队列中间件是分布式系统中重要的组件,主要解决 应用解耦 异步消息 流量削锋 等问题,实现高性能,高可用,可伸缩和最终一致性架构。目前使用较多的消息队列有ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMQ,RocketMQ 3,JMS规范 Java消息服务(Java Message Service),是一个Java平台中面向消息中间件的API 角色划分 1.提供者: 实现JMS规范的消息中间件服务器 (存放消息容器) 2.客户端:发送或接收消息的应用程序 3.生产者/发布者: 创建并发送消息的客户端(向消息容器存放消息) 4.消费者/订阅者:接收并处理消息的客户端 5.消息:应用程序之间传递的数据内容 6.消息模式:在客户端之间传递消息的方式,JMS中定义了队列和主题两种模式

消息中间件_ActiveMQ_Linux下安装

和自甴很熟 提交于 2019-11-28 03:17:45
一、下载与上传 1.1、下载地址: http://activemq.apache.org/download.html 1.2、FTP上传至服务器 二、解压启动 root@localhost /data/software #tar -zxvf apache-activemq-5.15.9-bin.tar.gz root@localhost /data/software/apache-activemq-5.15.9/bin #./activemq start 查看端口情况: root@localhost /data/software/apache-activemq-5.15.9/bin #netstat -anp|grep 61616 三、开启防火墙端口 1、如果使用了云服务器需要先开启8161(web管理页面端口)、61616(activemq服务监控端口) 两个端口 2、打开linux防火墙端口 /sbin/iptables -I INPUT -p tcp --dport 8161 -j ACCEPT&&/etc/init.d/iptables save&&service iptables restart&&/etc/init.d/iptables status /sbin/iptables -I INPUT -p tcp --dport 61616 -j ACCEPT&&/etc

消息中间件_ActiveMQ消息类型

佐手、 提交于 2019-11-28 03:10:28
Activemq消息类型JMS规范中的消息类型包括TextMessage、MapMessage、ObjectMessage、BytesMessage、和StreamMessage等五种。ActiveMQ也有对应的实现,下面我们结合Spring JMS分别来看一下五种消息类型的收发代码。1、TextMessage /** * 向指定Destination发送text消息 * @param destination * @param message */ public void sendTxtMessage(Destination destination, final String message){ if(null == destination){ destination = jmsTemplate.getDefaultDestination(); } jmsTemplate.send(destination, new MessageCreator() { public Message createMessage(Session session) throws JMSException { return session.createTextMessage(message); } }); System.out.println("springJMS send text message...

python实现-kafka作为消息中间件 -实现数据生产和消费-实用的脚本

 ̄綄美尐妖づ 提交于 2019-11-28 00:59:27
转自:https://www.cnblogs.com/DJRemix/p/11383103.htmlimport socketimport jsonfrom kafka import KafkaProducerfrom kafka.errors import KafkaError#kafka的配置文件:(bootstrap_servers:kafka的集群地址,topic_name:主题,consumer_id:消费分组)KAFKA_SETTING = { 'bootstrap_servers': ["172.24.181.182:9092", "172.24.181.181:9092", "172.24.181.183:9092"], 'topic_name': 'user_data', 'consumer_id': 'consumer_ai'}conf= KAFKA_SETTING print("[setting] =", conf)producer = KafkaProducer(bootstrap_servers=conf['bootstrap_servers'], api_version = (0,10), retries=5)partitions = producer.partitions_for(conf['topic_name'])print('Topic下分区: