k8s部署Kafka集群

1.1、Kafka (消息队列)

是一个分布式消息中间件, 支持分区的、多副本的、多订阅者的、基于 zookeeper 协调的分布式消息系统。通俗来说: kafka 就是一个存储系统,存储的数据形式为 “消息";

1.2、常用的消息系统有哪些以及各自的特点

有 activemq ,rabbitmq, rocketmq, kafka

1.3、为什么使用消息队列

1)、提高扩展性:因为消息队列解耦了处理过程,有新增需求时只要另外增加处理过程即可。
2)、提高峰值处理能力:在访问量剧增的情况下,应用仍然需要继续发挥作用。使用消息队列能够使关键组件顶住突发的访问压力,而不会因为突发的超负荷请求而完全崩溃;
3)、提高系统的可恢复性:消息队列降低了进程间的耦合度,所以即使一个处理消息的进程挂掉,加入队列中的消息仍然可以在系统回复后被处理

1.4、kafka设计的目的

(1) 高吞吐率 在廉价的商用机器上单机可支持每秒100万条消息的读写
(2) 消息持久化 所有消息均被持久化到磁盘(kafka支持多个节点之间的消息复制),无消息丢失,支持消息重放
(3) 完全分布式 Producer,Broker,Consumer均支持水平扩展
(4) 同时适应在线流处理(storm、spark streaming)和离线批处理(hadoop、hive、hdfs)
将kafka的数据导入hadoop的方式:使用flume的kafka-source取出kafka的数据,再使用flume的hdfs-sink或者hive-sink将数据导入hdfs,或者导入hive做离线批处理

1.5、kafka 的使用场景

1)、主要用于数据处理系统中的缓冲!(尤其是实时流式数据处理)
2)、日志收集:可以用 kafka 可以收集各种服务的 log,通过 kafka 以统一接口服务的方式开放给各种 consumer,例如 hadoop、HBase、Solr 等。
3)、消息系统:解耦和生产者和消费者、缓存消息等。
4)、用户活动跟踪:kafka 经常被用来记录 web 用户或者 app 用户的各种活动
5)、来做实时的监控分析,或者装载到 hadoop、数据仓库中做离线分析和挖掘。
6)、运营指标:kafka经常用来记录运维监控数据。包括收集各种分布式应用的数据,各种操作的集中反馈,比如报警和报告。
7)、流式数据处理:比如 spark streaming 和 Flink

2.1、install Helm 部署 Zookeeper 集群

# 添加bitnami仓库
helm repo add bitnami https://charts.bitnami.com/bitnami
# 查询chart
helm search repo bitnami
# 拉取zookeeper
helm pull bitnami/zookeeper
# 解压
tar zxvf  zookeeper-13.4.3.tgz 
#进入Zookeeper
cd zookeeper
2.2、修改参数,对 zookeeper 进行时区、持久化存储、副本数等配置
extraEnvVars: 
  - name: TZ
    value: "Asia/Shanghai"
# 允许任意用户连接(默认开启)
allowAnonymousLogin: true
---
# 关闭认证(默认关闭)
auth:
  enable: false 
---
# 修改副本数
replicaCount: 3 
---
# 4. 配置持久化,按需使用
persistence:
  enabled: true
  storageClass: "xxxx"  # storageClass 如果有默认存储可以不写
  accessModes:
    - ReadWriteOnce
2.3、创建 Kafka namespace
kubectl create ns kafka
helm 创建 Zookeeper 集群
helm install zookeeper -n kafka .
NAME: zookeeper
LAST DEPLOYED: Wed Jun 12 17:33:35
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值