coldsmog运维笔记
Linux 中间件部署
升级MySQL至最新版本
Zabbix与Zabbix-agent2部署
Galera-Cluster-MySQL 部署
JDK8 部署
FastDFS 部署
MySQL 主从备搭建
RabbitMQ 部署
Redis 部署
Nginx 部署
Gitlab + Jenkins + Sonarqube 部署
Docker 部署
keepalive的安装
Gitlab-ce 部署
Graalvm 部署
Nacos 部署
Kafka 部署
PostgreSQL 部署
MongoDB 部署
Fizz网关搭建
Vue项目部署(Nginx)
CentOS 运维笔记
centos 添加自定义服务
Linux 系统挂载
MySQL命令行
故障排查
Docker 运维笔记
keepalived 配置笔记
win 编辑EFI
本文档使用 MrDoc 发布
-
+
首页
Kafka 部署
## 1. 什么是Kafka 一个高性能MQ,支持点对点和订阅发布形式进行的分布式消息传递。 - 发送过程 produce生产者发送消息。可以指定topic话题(必填),value序列化值(必填),partition分区和 key。 生产者利用ZK的watch功能,监听partition的leader并建立连接,发送时将消息序列化,根据key和partition异步发送消息,将小消息用buffer缓存拼成大消息再发送partition,partition再分发给broker存储。 - 分发过程 通过hash操作,多个topic落到partition分区里。一个分区对应一个文件,分区收到文件就将消息追加到log文件末尾,同时维护消息的offset偏移量。 同时,kafka支持配置replicated副本,将partition分区文件备份到多个broker存储。一般一个broker对应一个server服务器。那么在副本机制时,partition分区也只和选举出的broker leader连接,再由该broker完成消息分发同步。 - 接收过程 consumer消费者这里采用了pull模型,不再像rabbit一样监听,而是主动地去拉取消息。每一个消费者属于一个consumer group 消费组,一个组包含多个消费者。消费完后原本是要向ZK汇报自己消费的offset消息偏移量,后面优化性能就改完通知 consumeroffsets topic的分区即可。 特别需要注意的是:Topic是按组来订阅的,发送到 Topic 的消息,只会被订阅此Topic的每个group中的一个消费者消费,除非消费失败否则不会争抢。 如果所有的消费者属于同一个组,那么就是一个生产者一个消费者的单点模型;如果每个消费者都具有不同的组,那么就是一个生产者多个消费者的订阅广播模型。 - 队列模型 - At most once:最多一次,消息可能会丢失,但不会重复。 - At least once:最少一次,消息不会丢失,可能会重复(推荐)。 - Exactly once:只且一次,消息不丢失不重复,只且消费一次 ## 2. Docker安装 ``` version: '3.1' services: zookeeper: image: 'zookeeper:3.7.0' restart: unless-stopped hostname: zoo1 container_name: zookeeper environment: - ZOO_STANDALONE_ENABLED=true # - JVMFLAGS='-Xmx1024m' # - ZOO_MY_ID=1 # - ZOO_SERVERS= server.1=zoo1:2888:3888;2181 server.2=zoo2:2888:3888;2181 server.3=zoo3:2888:3888;2181 ports: - 2181:2181 # client # - 2888:2888 # follower 跟从 # - 3888:3888 # election 选举 # - 8080:8080 # adminServer 通过url进行API操作 volumes: - ./conf/zoo.cfg:/conf/zoo.cfg - ./logs:/logs ```
寒烟濡雨
2021年9月22日 18:31
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
关于 MrDoc
觅思文档MrDoc
是
州的先生
开发并开源的在线文档系统,其适合作为个人和小型团队的云笔记、文档和知识库管理工具。
如果觅思文档给你或你的团队带来了帮助,欢迎对作者进行一些打赏捐助,这将有力支持作者持续投入精力更新和维护觅思文档,感谢你的捐助!
>>>捐助鸣谢列表
微信
支付宝
QQ
PayPal
Markdown文件
分享
链接
类型
密码
更新密码