您的位置:首页 > 新闻 > 热点要闻 > 网站建设方案是什么意思_免费自制二维码软件_百度百度推广_东莞疫情最新消息通知

网站建设方案是什么意思_免费自制二维码软件_百度百度推广_东莞疫情最新消息通知

2025/1/9 4:49:58 来源:https://blog.csdn.net/weixin_47201257/article/details/142377632  浏览:    关键词:网站建设方案是什么意思_免费自制二维码软件_百度百度推广_东莞疫情最新消息通知
网站建设方案是什么意思_免费自制二维码软件_百度百度推广_东莞疫情最新消息通知

一、消息中间件

1、为什么使用消息中间件?

异步
解耦
削峰填谷

2、异步

3、解耦

异步处理使整个数据操作流程解耦,如果短信服务或者积分服务异常,不影响前面重要的功能。

面试问题点:

所以尽量将不重要的服务放到下游,且不要产生依赖关系,如果下游服务产生耦合,那么这里的异步操作将失去意义。

4、削峰填谷

双十一秒杀、春节12306场景有流量洪峰,但是后端服务器短时间内无法处理大量请求,使用消息中间件可以缓存涌入进来的大量请求,后端服务慢慢消费这些请求,尽最大努力处理请求。

也不用为了这些“偶然”场景去搭建更高性能的服务集群,节约成本。

5、开发解耦

使用MQ可以避免直接调用接口。
如果B还未提供接口,A也不必等着

二、Kafka安装与配置

1、下载

Apache Kafka

2、解压

上传到Linux虚拟机,我这里使用的是阿里云服务器。

3、使用zookeeper启动

进入kafka的bin目录,编写两个启动脚本,一个启动zookeeper,一个启动kafka。

# 启动zookeeper脚本
#!/bin/bash
source /root/kafka/kafka_2.13-3.8.0/bin/zookeeper-server-start.sh /root/kafka/kafka_2.13-3.8.0/config/zookeeper.properties &# 启动kafka脚本
#!/bin/bash
source /root/kafka/kafka_2.13-3.8.0/bin/kafka-server-start.sh /root/kafka/kafka_2.13-3.8.0/config/server.properties &

4、直接启动

1)获取kafka唯一标识

# 获取kafka唯一标识
sh kafka-storage.sh random-uuid

使用uuid方式启动kafka后,可以看到返回一个uuid,这个uuid是kafka集群中节点的唯一标识。

2)格式化存储目录

 sh kafka-storage.sh format -t 25Z4D7QnRBKhQlw-VcDd8A -c ../config/kraft/server.properties

把相关的存储目录格式化,保存数据文件。

 3)启动kafka

sh kafka-server-start.sh ../config/kraft/server.properties

三、kafka的命令

1、topic - 主题

kafka-topics.sh

# 创建主题
sh kafka-topics.sh --bootstrap-server localhost:9092 --create --topic allwe-topic --replication-factor 1 --partitions 8# 查询主题
sh kafka-topics.sh --bootstrap-server localhost:9092 --list# 查询主题明细
sh kafka-topics.sh --bootstrap-server localhost:9092 --describe

2、生产者

kafka-console-producer.sh

# 启动生产者 - 指定一个主题
sh kafka-console-producer.sh --broker-list localhost:9092 --topic allwe-topic

3、消费者

kafka-console-consumer.sh

# 启动消费者 - 指定一个主题
sh kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic allwe-topic --from-beginning --consumer.config ../config/consumer.properties

四、kafka中的基本概念

1、主题和分区

主题:表示一类消息。

分区:认为是一个文件。可以理解为一个分区就是一个队列。

分区的意义:提高消费的并发程度。由于消费消息相对于生产消息很慢,可以增加分区去提高消费的并发度,从而平衡生产和消费的速度。

2、消息和批次

kafka内部只存储byte数组,消费者取消息时也只是取byte数组。

对于很大的数据,kafka会将这个大的数据分为多段小的数据,分批次发送。

3、生产者和消费者

生产者生产消息

消费者消费消息

4、偏移量、消费者群组

消费者根据偏移量确定上次消费到哪了,拿着偏移量继续消费。

当启动多个消费者时,可以组成一个消费者群组。

在群组消费者群组场景下,每个分区的消息只能由一个消费者消费,但是一个消费者可以消费多个分区的消息。这样做的目的是确保消息的顺序。

5、kafka中生产和消费流程

6、kafka硬件配置的选择

磁盘:非常依赖磁盘

        吞吐量:存储消息的速度。

        容量:堆积消息的能力,只有达到一定条件才会删除过时文件。

网络:比较依赖网络,网络的吞吐量对kafka集群的影响很大。

内存:影响消费速度,需要将数据从磁盘拿到内存中进行消费。建议单独部署。

CPU:依赖性不强

7、配置文件

server.properties

# 配置为正数。在集群场景下,如果出现网络ip变化,有了这个参数就不用担心
broker.id=0   # 配置kafka的端口号
listeners=PLAINTEXT://localhost:9092# 网络请求线程数
num.network.threads=3# 数据存储目录
log.dirs=/tmp/kafka-logs# 创建主题时,默认分区数
num.partitions=1# 在重启或启动时,加载数据的线程数,建议和cpu核数对应
num.recovery.threads.per.data.dir=1# 配置日志保存时间,默认是168小时,过期自动清理
log.retention.hours=168# 如果以zookeeper启动,指定zookeeper的ip+port
zookeeper.connect=localhost:2181

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com