消息中间件——kafka
1.1.1 什么是消息中间件
消息中间件利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排队模型,它可以在分布式环境下扩展进程间的通信。对于消息中间件,常见的角色大致也就有Producer(生产者)、Consumer(消费者)

常见的消息中间件产品:
(1)ActiveMQ
ActiveMQ是Apache出品的,最流行的能力,能力强劲的开源消息总线,并且他完全支持Java的JMs规范。丰富的API,多种集群构建模式使得它成为业界老牌的消息中间件,在中小型企业应用广泛。但是相比于kafka,rabbitmq等MQ来说,性能太弱,在如今的高并发,大数据处理的场景下显得力不从心,经常会出现一些小问题,消息延迟,堆积,堵塞等,不过其多种集群架构是优势。
(2)RabbitMQ
RabbitMQ是使用erlang语言开发的开源消息队列系统,基于AMQP协议来实现。AMQP的主要特征是面向消息/队列/路由(包括点对点的发布/订阅)可靠性,安全。AMQP协议更多用在企业系统内,对数据一致性/稳定性和可靠性要求很高的场景,对性能和吞吐量的要求还在其次。rabbitMQ的可靠性很高,性能比不上kafka,但是也很高了,集群模式也有多种。
(3)Kafka
kafka是linkedin开源的分布式发布-订阅消息系统,目前归属于Apache的顶级项目。主要特点是基于pull模式来处理消息消费,追求高吞吐量,在一台普通的服务器上既可以达到10W/s的吞吐速率;完全的分布式系统。一开始的目的是日志的收集和传输。0.8版本开始支持复制,不支持事务,对消息的丢失,重复,错误没有严格要求 适用于产生大量数据的互联网服务的数据收集业务。在廉价的服务器上都能有很高的性能,这个主要是基于操作系统底层的pagecache,不用内存胜似使用内存。
(4)RocketMQ
RocketMQ是阿里开源的,目前是也是Apache的顶级项目,纯Java开发,具有高吞吐量,高可用,适合大规模分布式系统应用的特点。其思路起源于kafka,它对消息的可靠传输以及事务性做了优化,目前在阿里被广泛应用于交易/充值/流计算/消息推送/日志流式处理/Binglog分发等场景。不过其维护是一个痛点。不过它能保证消息的顺序性,集群模式也丰富,在双十一等高并发场景承受上亿访问,三大指标都很好,但是它的商业版要收费!!!
(5)ZeroMQ
是支持fanout、topic这些功能的高级socket,不再是传统socket的点到点通信了
只是一个网络编程的Pattern库,将常见的网络请求形式模式化、组件化。ZeroMQ能实现RabbitMQ不擅长的高级复杂队列,但开发人员需要自己组合多种技术框架,技术复杂度是一个挑战。仅提供非持久性的队列,如果Down机,数据将丢失。
特点 速度快
Kafka 下载地址http://kafka.apache.org/downloads

注意:解压文件到没有空格,汉字和特殊字符的目录下

进入config 目录 修改server.properties配置

安装目录进入cmd 启动zookeeper(新版本kafka已经集成了zookeeper)

输入命令 bin\windows\zookeeper-server-start.bat config\zookeeper.properties


启动成功不要关闭
启动kafka
另开一个窗口输入 bin\windows\kafka-server-start.bat config\server.properties


Kafka启动成功
测试
1、 创建主题,进入Kafka安装目录D:\kafka_2.12-2.1.0,按下Shift+右键,选择“打开命令窗口”选项,打开命令行,输入:
.\bin\windows\kafka-topics.bat --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test

不要关了这个窗口
查看主题输入:
.\bin\windows\kafka-topics.bat --list --zookeeper localhost:2181

2、 创建生产者,进入Kafka安装目录D:\kafka_2.12-2.1.0,按下Shift+右键,选择“打开命令窗口”选项,打开命令行,输入:
.\bin\windows\kafka-console-producer.bat --broker-list localhost:9092 --topic test

3创建消费者 进入Kafka安装目录D:\kafka_2.12-2.1.0,按下Shift+右键,选择“打开命令窗口”选项,打开命令行,输入:
.\bin\windows\kafka-console-consumer.bat --bootstrap-server localhost:9092 --topic test --from-beginning

生产者发送消息

接受者收到消息

消息中间件——kafka的更多相关文章
- Spring Boot 2.0 教程 | 快速集成整合消息中间件 Kafka
欢迎关注个人微信公众号: 小哈学Java, 每日推送 Java 领域干货文章,关注即免费无套路附送 100G 海量学习.面试资源哟!! 个人网站: https://www.exception.site ...
- Spring Boot 2.0 快速集成整合消息中间件 Kafka
欢迎关注个人微信公众号: 小哈学Java, 每日推送 Java 领域干货文章,关注即免费无套路附送 100G 海量学习.面试资源哟!! 个人网站: https://www.exception.site ...
- 消息中间件kafka+zookeeper集群部署、测试与应用
业务系统中,通常会遇到这些场景:A系统向B系统主动推送一个处理请求:A系统向B系统发送一个业务处理请求,因为某些原因(断电.宕机..),B业务系统挂机了,A系统发起的请求处理失败:前端应用并发量过大, ...
- SpringBoot中使用消息中间件Kafka实现Websocket的集群
1.在实际项目中,由于数据量的增大及并发数的增多,我们不可能只用一台Websocket服务,这个时候就需要用到Webscoket的集群.但是Websocket集群会遇到一些问题.首先我们肯定会想到直接 ...
- 为什么你要使用这么强大的分布式消息中间件——kafka
为什么是kafka? 在我们大量使用分布式数据库.分布式计算集群的时候,是否会遇到这样的一些问题: 我们想分析下用户行为(pageviews),以便我们设计出更好的广告位 我想对用户的搜索关键词进行统 ...
- 消息中间件kafka学习记录
目录 1. 概述 2. 环境准备 3. 命令行常用命令 4. java api实现 1. 概述 Apache Kafka是一个分布式消息系统,凭借其优异的特性而被广泛使用. 高性能:O(1)复杂度消息 ...
- 高并发系列之——MQ消息中间件Kafka
1.前言 1.1 包路径和源码 下载链接 基于发布订阅的分布式消息系统,使用scala语言编写. 特点:采用分区机制,每个分区可以放到不同的服务器上,提高了吞吐率,同时基于磁盘存储,以及副本机制可以确 ...
- 消息中间件 kafka rabbitmq 选型差异
https://www.zhihu.com/question/43557507 https://baijiahao.baidu.com/s?id=1610644333184173190&wfr ...
- 消息中间件--kafka(1)安装部署
一.概念 1.什么是kafka Kafka是由Apache软件基金会开发的一个开源的分布式流处理平台,由LinkedIn公司开发,使用 Scala和Java编写.Kafka是一个分布式.分区的.多副本 ...
随机推荐
- @method_decorator() 源码解析
# coding:utf-8 """ 作用: 原理:闭包 >> 1. 函数内部定义函数 2.内部函数使用外部函数的变量 3.外部函数返回内部函数的引用 带参数 ...
- 26.python常用端口号
MySQL默认端口 3306 Redis默认端口 6379 MongoDB默认端口 27017 django端口 8000 flask端口 5000 pyspider服务端口 5000(由flask开 ...
- python3 发送邮件
import smtplibfrom email.mime.text import MIMETextdef SendEmail(fromAdd,toAdd,subject,text): _pwd = ...
- flex兼容性之Webpack3+postcss+sass+css
1:⚠️⚠️ 首先安装依赖 npm install --save-dev webpack style-loader css-loader postcss-loader sass-loader auto ...
- pytho学习笔记---编码
编解码 ASCII:1字节,0-255 GBK2313:常用的汉字,2万多个 GBK:对GBK2313的补充,支持藏文,2个字节表示一个汉字 big5:台湾,繁体字 unicode:万国码,2-4字节 ...
- 下载安装 STS(Spring Tool Suite),推荐对应 Eclipse 版本号,适用于Windows32位(xp、2003)
sts下载地址:https://spring.io/tools/sts/legacy 虽然sts内置了版本对应的eclipse,仍推荐使用当前环境下稳定使用的eclipse版本. Start 找到ec ...
- [C语言]进阶|链表
--------------------------------------------------------------------------------------- 可变数组: array. ...
- pycharm的断点调试【转自https://blog.csdn.net/weixin_39198406/article/details/78873120】
1. show execution point (F10)显示目前项目所有断点2. step over (F8)下一步但仅限于设置断点的文件3. step into (F7)执行下一行4. step ...
- netstat 常用参数总结
netstat 是一个机器网络查看工具 . 网络连接有哪些参数?
- 图像的几何变换——OpenCV-Python Tutorials
原文地址http://opencv-python-tutroals.readthedocs.io/en/latest/py_tutorials/py_imgproc/py_geometric_tran ...