kafka安装配置

Kafka是一个分布式数据流平台,可以运行在单台服务器上,也可以在多台服务器上部署形成集群。它提供了发布和订阅功能,使用者可以发送数据到Kafka中,也可以从Kafka中读取数据(以便进行后续的处理)。Kafka具有高吞吐、低延迟、高容错等特点。下面介绍一下Kafka中常用的基本概念:

默认端口: zk:2181 kafka:9092

kafka安装配置

下载与解压

wget https://dlcdn.apache.org/kafka/2.8.0/kafka_2.13-2.8.0.tgz
tar zxvf kafka_2.13-2.8.0.tgz

设置环境变量 vim /etc/profiles

# --- --- --- --- --- --- ---
# 让环境变量生效 source /etc/profile
KAFKA_HOME=/opt/kafka_2.13-2.8.0
PATH=$PATH:$KAFKA_HOME/BIN

修改config/zookeeper.properties配置

#12181
clientPort=12181

修改配置 server.properties

broker.id=0  
#默认9092
port=19093
#log.dir: meta.properties中有ClusterId与logs/server.log提示不一致,会报错
log.dirs=/tmp/kafka-logs
advertised.listeners=PLAINTEXT://localhost:9092
zookeeper.connect=localhost:12181

启动

cd kafka_2.13-2.8.0
# 启动zk,如端口冲突,请修改
bin/zookeeper-server-start.sh config/zookeeper.properties  1>/dev/null 2>&1 & 
# 启动kafka
bin/kafka-server-start.sh config/server.properties   1>/dev/null 2>&1 & 

Kafka Web端管理界面Cmak安装配置

# 下载
wget https://github.com/yahoo/CMAK/releases/download/3.0.0.5/cmak-3.0.0.5.zip

# conf/application.conf
kafka-manager.zkhosts="localhost:12181"
kafka-manager.zkhosts=${?ZK_HOSTS}
cmak.zkhosts="localhost:2181"
cmak.zkhosts=${?ZK_HOSTS}
basicAuthentication.enabled=true #默认为false,改为true
bin/cmak -Dconfig.file=conf/application.conf -Dhttp.port=18080

# 启动,需要jdk11
bin/cmak -Dconfig.file=conf/application.conf -Dhttp.port=18080 -java-home /opt/jdk-11.0.11

浏览访问:
http://...18080/  
- 需要手工添加ip与端口

命令操作

创建Topic:kafka-topics.sh --create --zookeeper localhost:12181 --replication-factor 1 --partitions 1 --topic pk1

# 模拟生产者发消息
kafka-console-producer.sh --broker-list localhost:9092 --topic pk1
#模拟消费者收消息
kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic pk1

术语

  • Broker
    消息队列中常用的概念,在Kafka中指部署了Kafka实例的服务器节点。
    broker.id申明当前kafka服务器在集群中的唯一ID
  • Topic
    用来区分不同类型信息的主题。比如应用程序A订阅了主题t1,应用程序B订阅了主题t2而没有订阅t1,那么发送到主题t1中的数据将只能被应用程序A读到,而不会被应用程序B读到。
  • Partition
    每个topic可以有一个或多个partition(分区)。分区是在物理层面上的,不同的分区对应着不同的数据文件。Kafka使用分区支持物理上的并发写入和读取,从而大大提高了吞吐量。
  • Record
    实际写入Kafka中并可以被读取的消息记录。每个record包含了key、value和timestamp。
  • Producer
    生产者,用来向Kafka中发送数据(record)。
  • Consumer
    消费者,用来读取Kafka中的数据(record)。
  • Consumer Group
    一个消费者组可以包含一个或多个消费者。使用多分区+多消费者方式可以极大提高数据下游的处理速度。
  • Partition Leader
    每个 partition 有多个副本,其中有且仅有一个作为 Leader,Leader 是当前负责消息读写的partition。即所有读写操作只能发生于 Leader 分区上。
  • Partition Follower
    所有 Follower 都需要从 Leader 同步消息,Follower 与 Leader 始终保持消息同步。partition leader 与 follower 是主备关系,而非主从。
  • offset
    偏移量。每条消息都有一个当前 Partition 下唯一的 64 字节的 offset,它是相对于当前分区第一条消息的偏移量。
  • Broker Controller
    Kafka 集群的多个 broker 中,有一个会被选举为 controller,负责管理整个集群中 partition和副本 replicas 的状态。当 partition leader 宕机后,broker controller 会从 ISR 中选举出一个 Follower 做为新的leader。所谓选举就是从 ISR 中找到第一个 Follower,直接让其当选新的 leader。Broker Controller 是由 zk 选举出来的。
  • Zookeeper (略)
  • Coordinator (略)

你可能感兴趣的:(工具,kafka,分布式)