zoukankan      html  css  js  c++  java
  • Kafka 入门之集群部署遇到问题

      最近,因为上级主管部门需要通过使用Kafka向其传输文件,又因为此前没有接触过kafka,所以在部署测试kafka程序期间遇到很多问题,在这里总结4个问题与1个建议,方便入门者参考也便于遇到类似问题进行查阅完善。

     1.Kafka java代码与Kafka 软件的关系

    Kafka java代码与Kafka 软件之间究竟有什么关系呢?Kafka java代码中已经使了kafka-clients-0.8.2.1.jar,kafka_2.11-0.8.2.1.jar,那么还需要安装kafka_2.11-0.10.2.1么?并可Kafkaproducer.properties已经包含了Kafka软件中 server.propertiy zookeeper.connect,等等属性,那么是不是可以取代Kafka 软件了呢?

    Kafka 软件:目前使用版本为kafka_2.11-0.10.2.1,kafka_2.11-0.10.2.1inwindows,可启动Kafka,可创建Topic,可启动一个生产者进程来发送消息,也可以启动一个消费者进程来消费消息,见下:

    #创建topic
    binwindowskafka-topics.bat --create --zookeeper 101.201.177.100:2181 --replication-factor 1 --partitions 1 --topic mytest-topic
    #启动一个生产者进程来发送消息
    binwindowskafka-console-producer.bat --broker-list 101.201.177.100:9092 --topic mytest-topic
    #启动一个消费者进程来消费消息
    binwindowskafka-console-consumer.bat --zookeeper localhost:2181 --topic my-topic --from-beginning

    Kafka java代码:用于编写Kafka的Producer端与Consumer端,完成消息的发送与接收;

    区别:也就是Kafka java代码运行,离不开Kafka 软件,因为是调用Kafka 软件中的kafka-console-consumer.bat、kafka-console-producer.bat;

     2.ZooKeeper与Kafka 软件的关系

    zooKeeper集群与Kafka集群之间有什么关系,之前一位对Kafka有所研究的朋友说,作为Kafka的客户端,只需要在此机安装Zookeeper就可以了?然而,在参考各种Kafka集群配置的时候有每台机器都部署zookeeper与kafka的,也有只有1台部署zookeeper的(同时部署Kafka),3台部署kafka的;那究竟是怎样的呢?

    在读此篇博文,顿觉一语中的 “”Kafka集群是把状态保存在Zookeeper中的,首先要搭建Zookeeper集群。” 图文参考 http://www.cnblogs.com/luotianshuai/p/5206662.html;

     3.Kafka 单机测试通过,集群部署发送文件失败

    单机通过kafka发送文件、接收文件均无问题,根据配置文件修改为远程服务端,却发送失败???期间原因很多,但总结如下:

    1.在修改配置文件后,因为运行后会产生新文件,修改配置文件,容易产生新的错误;

    2.学会看log,根据log提示的错误,查找问题原因,或百度找到解决方法;也需要学会判断判断程序是否正确启动。

    3.Kafka配置时host主机名字不能设置为127.0.0.1 !!!困扰了我18个小时的原因

     4.Kafka 测试

    为了避免重复的额部署、测试,程序能够使用,测试环境是必不可少的啦,建议测试方法如下:

    配置本地环境测试与生产环境测试的程序、与配置文件、启动命令;

    更建议本地使用编程工具(比如 Idea)进行调试,因为编程工具运行起来不需要部署,贼方便哦;

    本地测试OK,进行生产环境测试,只要您的测试与生产环境相似度很高,也就基本OK啦。

  • 相关阅读:
    cocos2dx 2.0 学习笔记简单动画
    几种插入数据的方法
    c#中如何获取本机用户名、MAC地址、IP地址、硬盘ID、CPU序列号、系统名称、物理内存
    C#高效编程改进C#代码的50个行之有效的办法摘抄笔记
    获取两个日期之间的每一天
    取SQL中某个字段的后两位
    该行已经属于另一个表 的解决办法
    一个实体对象不能由多个 IEntityChangeTracker 实例引用
    MVC返回JSON,IE下无法接收JSON,IE下JSON提示另存为
    entity framework DbContext Attach判断
  • 原文地址:https://www.cnblogs.com/bide/p/7081230.html
Copyright © 2011-2022 走看看