kafka

(1)*** 所以,在写入时,还是需要动态指定下partition的分区号,有可能出现直接使用缓存里的分区号,造成消息分布不均匀,I think-2016-12-19

详见点击打开链接

可以看出,Kafka几乎就是随机找一个分区发送无key的消息,然后把这个分区号加入到缓存中以备后面直接使用——当然了,Kafka本身也会清空该缓存(默认每10分钟或每次请求topic元数据时)

if(key == null) {  // 如果没有指定key
        val id = sendPartitionPerTopicCache.get(topic)  // 先看看Kafka有没有缓存的现成的分区Id
        id match {
          case Some(partitionId) =>  
            partitionId  // 如果有的话直接使用这个分区Id就好了
          case None => // 如果没有的话,
            val availablePartitions = topicPartitionList.filter(_.leaderBrokerIdOpt.isDefined)  //找出所有可用分区的leader所在的broker
            if (availablePartitions.isEmpty)
              throw new LeaderNotAvailableException("No leader for any partition in topic " + topic)
            val index = Utils.abs(Random.nextInt) % availablePartitions.size  // 从中随机挑一个
            val partitionId = availablePartitions(index).partitionId
            sendPartitionPerTopicCache.put(topic, partitionId) // 更新缓存以备下一次直接使用
            partitionId
        }
      }

---Windows 上安装kafka遇到的问题:

1-安装好zookeeper,启动kafka的时候,报错如下:

D:\Program Files\kafka-0.10.1.1-src>.\bin\windows\kafka-server-start.bat .\config\server.properties
'wmic' 不是内部或外部命令,也不是可运行的程序或批处理文件。


(每次更改环境变量,一定重新打开cmd窗口,重新编译)

解决:

1-环境变量中加入(wmic的路径):C:\Windows\System32\wbem

2-修改kafka的解压路径,不要上级目录中带空格啊!!!(敲黑板,这是重点)


然后,以上解决后,或许又会报错:

此时不应有 \Java\jdk1.8.0_101\lib\dt.jar


excuse me??参考各种,解决如下:

环境变量中的CLASSPATH,删除%JAVA_HOME%\lib\dt.jar;(暂未知这是个啥)


然后,又出现

此时不应有 \Java\jdk1.8.0_101\lib\tools.jar.。

解决:

环境变量中的CLASSPATH,删除%JAVA_HOME%\lib\tools.jar.;


因为我还装过scala,所以又报错如下:

此时不应有 \scala\bin

解决:

环境变量中的CLASSPATH,删除%SCALA_HOME%\bin;%SCALA_HOME%\lib\dt.jar;%SCALA_HOME%\lib\tools.jar.;


然鹅并没有完:

问题:

命令语法不正确。
错误: 找不到或无法加载主类 kafka.Kafka


我要骂人了。。。


原因最终竟然是,应该下载二进制包啊!

kafka包下载地址:http://kafka.apache.org/downloads.html

注意,应该下载的是Binary downloads!!!(还未知道两者的具体区分20170111)


反正一切就酱紫解决了,上面遇到的问题可能还是会有,

补充:

拷贝%JAVA_HOME%\jdk路径\jre\bin\server
%JAVA_HOME%\jre路径\bin
java_home的路径配置的是jre的路径;path中则相应改成%jave_home%\bin
原来配置的是jdk的路径

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值