zoukankan      html  css  js  c++  java
  • 消息中间件——kafka

     

    1.1.1 什么是消息中间件

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

    常见的消息中间件产品:

    1ActiveMQ

    ActiveMQApache出品的,最流行的能力,能力强劲的开源消息总线,并且他完全支持JavaJMs规范。丰富的API,多种集群构建模式使得它成为业界老牌的消息中间件,在中小型企业应用广泛。但是相比于kafkarabbitmqMQ来说,性能太弱,在如今的高并发,大数据处理的场景下显得力不从心,经常会出现一些小问题,消息延迟,堆积,堵塞等,不过其多种集群架构是优势。

    2RabbitMQ

    RabbitMQ是使用erlang语言开发的开源消息队列系统,基于AMQP协议来实现。AMQP的主要特征是面向消息/队列/路由(包括点对点的发布/订阅)可靠性,安全。AMQP协议更多用在企业系统内,对数据一致性/稳定性和可靠性要求很高的场景,对性能和吞吐量的要求还在其次。rabbitMQ的可靠性很高,性能比不上kafka,但是也很高了,集群模式也有多种。

    3Kafka

    kafkalinkedin开源的分布式发布-订阅消息系统,目前归属于Apache的顶级项目。主要特点是基于pull模式来处理消息消费,追求高吞吐量,在一台普通的服务器上既可以达到10W/s的吞吐速率;完全的分布式系统。一开始的目的是日志的收集和传输。0.8版本开始支持复制,不支持事务,对消息的丢失,重复,错误没有严格要求 适用于产生大量数据的互联网服务的数据收集业务。在廉价的服务器上都能有很高的性能,这个主要是基于操作系统底层的pagecache,不用内存胜似使用内存。

    4RocketMQ

    RocketMQ是阿里开源的,目前是也是Apache的顶级项目,纯Java开发,具有高吞吐量,高可用,适合大规模分布式系统应用的特点。其思路起源于kafka,它对消息的可靠传输以及事务性做了优化,目前在阿里被广泛应用于交易/充值/流计算/消息推送/日志流式处理/Binglog分发等场景。不过其维护是一个痛点。不过它能保证消息的顺序性,集群模式也丰富,在双十一等高并发场景承受上亿访问,三大指标都很好,但是它的商业版要收费!!!

    5ZeroMQ

    是支持fanouttopic这些功能的高级socket,不再是传统socket的点到点通信了

    只是一个网络编程的Pattern库,将常见的网络请求形式模式化、组件化。ZeroMQ能实现RabbitMQ不擅长的高级复杂队列,但开发人员需要自己组合多种技术框架,技术复杂度是一个挑战。仅提供非持久性的队列,如果Down机,数据将丢失。

    特点 速度快

    Kafka 下载地址http://kafka.apache.org/downloads

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

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

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

    输入命令 binwindowszookeeper-server-start.bat configzookeeper.properties

    启动成功不要关闭

    启动kafka  

    另开一个窗口输入  binwindowskafka-server-start.bat configserver.properties

    Kafka启动成功

    测试

    1、 创建主题,进入Kafka安装目录D:kafka_2.12-2.1.0,按下Shift+右键,选择“打开命令窗口”选项,打开命令行,输入:

    .inwindowskafka-topics.bat --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test

    不要关了这个窗口

    查看主题输入:

    .inwindowskafka-topics.bat --list --zookeeper localhost:2181

    2、 创建生产者,进入Kafka安装目录D:kafka_2.12-2.1.0,按下Shift+右键,选择“打开命令窗口”选项,打开命令行,输入:

    .inwindowskafka-console-producer.bat --broker-list localhost:9092 --topic test

    3创建消费者 进入Kafka安装目录D:kafka_2.12-2.1.0,按下Shift+右键,选择“打开命令窗口”选项,打开命令行,输入:

    .inwindowskafka-console-consumer.bat --bootstrap-server localhost:9092 --topic test --from-beginning

    生产者发送消息

    接受者收到消息

  • 相关阅读:
    处理ios键盘弹出按钮点击click失效
    vue-eahars生产编译报错
    vue页面嵌套其他页面判断是否生产https
    阿里云linux安装nginx,亲测有效
    translate函数
    html表单from练习
    html 表格标签
    selenium模块简单使用
    python字符串普通操作
    浏览器的cookie的值改成字典格式
  • 原文地址:https://www.cnblogs.com/lldsgj/p/10763825.html
Copyright © 2011-2022 走看看