• Kafka 单机和伪分布式集群搭建


    感觉自己越来越像个运维了,真的是所有的分布式的中间件基本都搭建了一遍   不得了了。

    好 废话少说 , 还是来走Kafka 吧 , 经历了Rocket MQ , Kafka 的搭建真的是简单的不知道多少倍 , RocketMQ  实在 是太麻烦了。

    还是老方案 , 先登录官网。

    https://archive.apache.org/dist/kafka

    可以根据官网的指示文档  进行下载。

    单机搭建

    Step 1: 下载代码

    > wget https://archive.apache.org/dist/kafka/1.1.0/kafka_2.11-1.1.0.tgz

    > tar -xzf kafka_2.11-2.1.0.tgz
    > cd kafka_2.11-2.1.0

    Step 2: 启动服务

    1) 启动Zookeeper

    因为kafa 是强依赖于ZooKeeper 的, 所以首先得启动Zookeeper

    2)启动kafka

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

    同时进入 Zookeeper  可以看到创建的节点

    可以看到在启动kafka  之后 , 就被建立了如下很多的节点。

    Step 3: 创建Topic

    创建一个主题是Test 的Topic , zookeeper 是本地的 备份因子是1 ,partation  设置为1 的Topic   (因为现在是单机版本的,不是集群)

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

    主题Test  创建成功。

    同时可以看Zookeeper 的下面, 也有topic的成功的创建。

    Step 4: 发送消息

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

    发送了两条消息到topic 是Test 的消息中。

     

    Step 5: 开启客户端,接收消息。

    > bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning

     

    得到两条消息

    Step 6: 查看节点信息

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

    同样的  也可以通过Zookeeper  来进行查看

     集群搭建

    Step 1 : 修改配置文件

    首先 我们先拷贝一份配置文件 

    > cp config/server.properties config/server-1.properties
    > cp config/server.properties config/server-2.properties
    更改如下内容  因为我的是伪集群  所以 都用 本地的地址来做host 那么
    config/server-1.properties:
        broker.id=1
        listeners=PLAINTEXT://127.0.0.1:9093
        log.dirs=/tmp/kafka-logs-1
     
    config/server-2.properties:
        broker.id=2
        listeners=PLAINTEXT://127.0.0.1:9094
        log.dirs=/tmp/kafka-logs-2

     broker.id 是唯一标识符,而且是每一个集群的唯一值。然后我们重写Port 对每一个节点 , 以及给每一个节点创建log 目录

    Step 2 : 启动 另外两个服务

    > bin/kafka-server-start.sh config/server-1.properties &
    ...
    > bin/kafka-server-start.sh config/server-2.properties &
    ...

    可以看到现在有3个Kafka。

    Step 3 :Create Topic

    > bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 3 --partitions 1 --topic my-replicated-topic

    现在在Zookeeper 中可以看到 Topic my-replicated-topic

    观察状态:

    bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic my-replicated-topic

    可以看到此时有三个节点  1 , 2  , 0

    Leader  是1 ,因为分区只有一个 所以在0上面, Replicas:主从备份是 1,2,0,ISR(in-sync):现在存活的信息也是 1,2,0

     Step 4: 启动消费端

    > bin/kafka-console-producer.sh --broker-list localhost:9092 --topic my-replicated-topic

     Step 5: 启动客户端

    > bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --from-beginning --topic my-replicated-topic

     

    可以看见消息已经被消费了。

    Step 7 : 现在我们试试下kafka 的容灾 。

    现在我们知道leader 是  1   那么我们现在kill 掉broker 1 节点  就知道下一个master 是哪个 了

    > ps aux | grep server-1.properties
    root      18735  1.5 14.5 1452824 292820 pts/0  Sl   Dec25   0:21...
    > kill  18735

    再来观察现在的状态。ISR  只剩下 2,0 了。  现在的Leader 是  2 。

     在消费端 可以看到如下信息

  • 相关阅读:
    第三周学习进度表
    思维导图
    第二周学习进度表
    调查问卷
    微感想
    C/C++数组取值的真实实现——一个初学者的常见疑惑
    保存所有标签页,以便下次打开继续工作
    内存越界调到心态爆炸
    C语言VC6的一个asprintf实现,或:VC6上C语言使用asprintf, snprintf的坑
    Learning and Inference for Hierarchically Split PC中文字幕
  • 原文地址:https://www.cnblogs.com/mythdoraemon/p/10171883.html
Copyright © 2020-2023  润新知