kafka基础认识

简单介绍
Apache Kafka是一个开源消息系统项目,由Scala写成。该项目的目标是为处理实数据提供一个统一、高通量、低等待的平台。
特点:分布式、高吞吐量 的 订阅、发布 消息系统。
作用:一个流数据平台,能够组织管理来自不同数据源的数据,拥有稳定高效的系统。(可以简单理解为消息中间件,即接受大量的数据,然后再转换给需要的数据库中)。

有两个主流的Kafka版本比较出名 :Apache Kafka和confluent Kafka,其中confluent对Kafka的功能扩展,做的比较好。比较全面。
Zookeeper主要是分布式协调,负载均衡的作用。
基本上的工作流程就是:生产者发送将数据发送到Kafka的主题中去,主题可以配置分区来储存数据,每个分区又可以有副本保证数据的高可用。在一个分区的副本中会有一个副本是担任leader的角色,负责与外界交流,而其他的副本就是同步这个leader中的数据保持跟它一致。主题是需要Kafka的集群环境下。而这些集群的作用就是当其中一个服务断了,会有其他的服务,顶替它的工作继续运行。所以保证数据不会丢失。

命下使用查看监控
Confluent官网:https://www.confluent.io
建议下载最新版本。解压,启动相应的服务。

启动Zookeeper

bin/zookeeper-server-start.sh config/zookeeper.properties &

停止Zookeeper server:

bin/zookeeper-server-stop.sh

然后启动kafka服务(broker)

bin/kafka-server-start.sh config/server.properties &

停止Kafka server:

bin/kafka-server-stop.sh

端口监控服务是否启动成功:2181/9092(jps)

netstat -tunlp|egrep “(2181|9092)”

schema-registry的端口,后面会用到
./bin/schema-registry-start etc/schema-registry/schema-registry.properties启动注册节点
启动rest服务器
./bin/kafka-rest-start etc/kafka-rest/kafka-rest.properties

创建Topic:可以理解为kafka用来存储数据载体(新建一个主题叫test ,有一个分区两个副本的主题,你需要有三个服务分开存储一个分区,两个副本)

bin/kafka-topics.sh –create –zookeeper localhost:2181 –replication-factor 2 –partitions 1 –topic test

查看Topic详细信息

bin/kafka-topics.sh –describe –zookeeper localhost:2181

bin/kafka-topics –zookeeper localhost:2181 –list

删除(需要在server.properties中设置delete.topic.enable=true,才可以删除)

bin/kafka-topics.sh –delete –topic test –zookeeper localhost:2181

使用alter configs命令修改或设置。 此示例修改更新my-topic的最大的消息大小

bin/kafka-configs.sh –zookeeper localhost:2181 –entity-type topics –entity-name my-topic –alter –add-config max.message.bytes=128000

bin/kafka-topics.sh –zookeeper zk_host:port/chroot –alter –topic my_topic_name –config x=y

查看配置的topics详细信息

bin/kafka-configs.sh –zookeeper localhost:2181 –entity-type topics –entity-name my-topic –describe

移除修改或设置

bin/kafka-configs.sh –zookeeper localhost:2181 –entity-type topics –entity-name my-topic –alter –delete-config max.message.bytes

启动生产者(Producer):

bin/kafka-console-producer.sh –broker-list localhost:9092 –topic test

解释

–broker-list #启动的Kafka的服务,有多个的话可以用逗号分隔,
–topic #将生产的消息放到主题为test中

启动消费者(Consumer):

bin/kafka-console-consumer.sh –zookeeper localhost:2181 –topic test –from-beginning

新版消费者
/bin/kafka-avro-console-consumer –new-consumer –bootstrap-server 192.168.99.100:9092 –topic test –from-beginning

解释

–topic #将获取主题为test的数据。

这时候,只要生产者发出信息,那么消费者就会接受到,具有实时性。
上面的只是在一个服务中,那么当这个服务挂机了,那么数据就丢失了。所以我们要搭建多个服务成为集群,这里面会有一个服务是leader负责接受数据,同时将数据复制到别的服务中的副本中。如果这时候leader的服务挂了,那么会有其他的服务成为leader,继续处理数据。容错性强。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值