保定网站建设平台分析,app主题WordPress,怎样做好网络推广工作,局域网的网站建设目录
Kafka介绍
消息队列的作用
消息队列的优势
应用解耦
异步提速
削峰填谷 为什么要用Kafka
Kafka下载安装
Kafka快速上手#xff08;单机体验#xff09;
1. 启动zookeeper服务
2. 启动kafka服务
3. 简单收发消息
Kakfa的消息传递机制 Kafka介绍 Apache Kafka…目录
Kafka介绍
消息队列的作用
消息队列的优势
应用解耦
异步提速
削峰填谷 为什么要用Kafka
Kafka下载安装
Kafka快速上手单机体验
1. 启动zookeeper服务
2. 启动kafka服务
3. 简单收发消息
Kakfa的消息传递机制 Kafka介绍 Apache Kafka是一个分布式流处理平台最初由LinkedIn开发并于2011年开源。它主要用于解决大规模数据的实时流式处理和数据管道问题。 Kafka是一个分布式的发布-订阅消息系统可以快速地处理高吞吐量的数据流并将数据实时地分发到多个消费者中。Kafka消息系统由多个broker服务器组成这些broker可以在多个数据中心之间分布式部署以提供高可用性和容错性。 Kafka的基本架构由生产者、消费者和主题topic组成。生产者可以将数据发布到指定的主题而消费者可以订阅这些主题并消费其中的数据。同时Kafka还支持数据流的处理和转换可以在管道中通过Kafka Streams API进行流式计算例如过滤、转换、聚合等。 Kafka使用高效的数据存储和管理技术能够轻松地处理TB级别的数据量。其优点包括高吞吐量、低延迟、可扩展性、持久性和容错性等。 Kafka在企业级应用中被广泛应用包括实时流处理、日志聚合、监控和数据分析等方面。同时Kafka还可以与其他大数据工具集成如Hadoop、Spark和Storm等构建一个完整的数据处理生态系统。
消息队列的作用 队列是一种FIFO先进先出的数据结构。消息则是跨进程传递的数据。一个典型的MQ系统会将消息消息由生产者发送到MQ进行排队然后根据一定的顺序交由消息的消费者进行处理。
消息队列的优势
应用解耦 假如用户访问订单系统而订单系统跟其他系统是强耦合的如图如果库存系统挂了那么整个订单系统也都不能用了。 如果这种情况还想要增加新的XX系统进来那么就只能修改源代码来完成。系统的耦合性越高容错性就越低可维护性就越低。 通过引入MQ做到应用解耦库存系统出现异常可以等库存系统恢复后去MQ中拿消息此时不影响别的系统调用如果还要加入新的系统比如XX系统那么只需XX系统去MQ中拿取消息进行处理即可。使用MQ可以提升容错性和可维护性。
异步提速 原先用户请求订单系统需要等到订单系顺序调用其他系统无误后返回比较耗时。 现在通过引入MQ订单系统只需要把信息发送到MQ中即可相当于完成了之前顺序请求其他系统的步骤时间成本大大减低。
削峰填谷 以上场景中激增请求会打垮系统造成服务不可用。 通过将激增请求先放到MQ当前然后系统再根据自身情况拉取请求来消费 为什么要用Kafka
Kafka产品的特点
1、数据吞吐量很大 需要能够快速收集各个渠道的海量数据一般收集海量日志。
2、集群容错性高允许集群中少量节点崩溃。
3、功能不需要太复杂Kafka的设计目标是高吞吐、低延迟和可扩展主要关注消息传递而不是消息处理。所以Kafka并没有支持死信队列、顺序消息等高级功能。
4、允许少量数据丢失Kafka本身也在不断优化数据安全问题目前基本上可以认为Kafka可以做到不会丢数据。 Kafka下载安装
下载地址Apache Kafka 下载完成后解压注意目录位置先启动zookeeper 在启动kafka服务 一般都可以正常启动使用默认的配置即可如果执行命令发现报错“命令语法不正确。”请将下载的文件移到最外层目录如上图位置。本人遇到此问题找寻了多种解决方案发现这种方式才能解决我的问题。 Kafka快速上手单机体验
1. 启动zookeeper服务 2. 启动kafka服务 3. 简单收发消息 Kafka的基础工作机制是消息发送者可以将消息发送到kafka上指定的topic而消息消费者可以从指定的topic上消费消息。 创建主题
bin\windows\kafka-topics.bat --create --topic test --bootstrap-server localhost:9092 查看主题
bin\windows\kafka-topics.bat --describe --topic test --bootstrap-server localhost:9092 生产者往test的Topic发消息
bin\windows\kafka-console-producer.bat --broker-list localhost:9092 --topic test消费者消费test的Topic消息
bin\windows\kafka-console-consumer.bat --bootstrap-server localhost:9092 --topic test --from-beginning 这样就完成了一个基础的交互。这其中生产者和消费者并不需要同时启动。他们之间可以进行数据交互但是又并不依赖于对方。没有生产者消费者依然可以正常工作反过来没有消费者生产者也依然可以正常工作。这也体现出了生产者和消费者之间的解耦。
指定消费进度
如果需要精确的消费消息可以指定从哪一条消息开始消费。
bin\windows\kafka-console-consumer.bat --bootstrap-server localhost:9092 --partition 0 --offset 2 --topic test 这表示从第0号Partition上的第二个消息开始读起。 Kakfa的消息传递机制 Kafka的消息发送者和消息消费者通过Topic这样一个逻辑概念来进行业务沟通。但是实际上所有的消息是存在服务端的Partition这样一个数据结构当中的。 Kafka的基本概念客户端Client 包括消息生产者 和 消息消费者。之前简单接触过。消费者组 每个消费者可以指定一个所属的消费者组相同消费者组的消费者共同构成一个逻辑消费者组。每一个消息会被多个感兴趣的消费者组消费但是在每一个消费者组内部一个消息只会被消费一次。服务端Broker 一个Kafka服务器就是一个Broker。话题Topic 这是一个逻辑概念一个Topic被认为是业务含义相同的一组消息。客户端都通过绑定Topic来生产或者消费自己感兴趣的话题。分区Partition Topic只是一个逻辑概念而Partition就是实际存储消息的组件。每个Partiton就是一个queue队列结构。所有消息以FIFO先进先出的顺序保存在这些Partition分区中。