(以下分享了搭建kafka需要使用到的命令,差不多齐了,这里没有提到kafka-manager ,同学可以在网上自行查找)

最近公司的项目比较紧,先说下使用kafka的用处:

    要替代原来 撮合引擎发数据到交易所中,原来使用api方式,弊端:若一方出现宕机,则会发生数据丢失情况,为避免,这里开始搭建kafka消息分布式系统。

顶着小压力~开始研究学习,在一周时间之后,终于我的第一个集群分布式kafka搭建完成。

在这其中走了不少坑,在这里我把自己从开始过程到搭建完成的使用命令分享给大家,(欢迎指出错误~)

我用的环境是

mac系统 (unix)

php 7.2.1 (虽然没多大关系~)

------------------------- kafka 安装 -------------------------
安装kafka前需先安装jdk
yum install java

wget http://ftp.cuhk.edu.hk/pub/packages/apache.org/kafka/1.1.0/kafka_2.11-1.1.0.tgz
tar -xzf kafka_2.11-1.1.0.tgz

使用说明具体详见http://kafka.apache.org/quickstart

-------------------------编译安装kafka-------------------------
***********注意!!***********
若你是mac系统,请同样使用编译安装,尽量不用brew安装,原因:1,版本旧 2,个别配置与官网配置不一致,导致不能很好进行负载均衡。
*********************************

1 安装kafka
首先从官网获取安装包 (网址 http://kafka.apache.org/downloads)
这里目前选用kafka_2.11-1.1.1.tgz 版本

2 在src目录中解压,打开进入kafka_2.11-1.1.1文件

3 开始启动kafka,首先需要启动zookeeper(安装说明在下面)

tips:为方便快捷,需要将kafka中bin目录加载到环境变量中 打开~/.bash_profile
添加一条 export PATH=/Users/apple/src/kafka-2.11-1.1.1/bin:$PATH
保存退出,source ~/.bash_profile

开始命令:(每次开机都要启动)

(以下kafka中conf里面的配置文件都已copy到/usr/local/etc/kafka/目录下,方便管理 )
启动zookeeper系统
zookeeper-server-start.sh /usr/local/etc/kafka/zookeeper.properties
启动kafka系统
kafka-server-start.sh /usr/local/etc/kafka/server.properties

新建topic
kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic zzyk
#--zookeeper是集群列表,可以指定所有节点,也可以指定为部分列表
#--replication-factor 为复制数目,数据会自动同步到其他broker上,防止某个broker宕机数据丢失
#--partitions 一个topic可以切分成多个partition,一个消费者可以消费多个partition,但一个partition只能被一个消费者消费

生产消息
kafka-console-producer.sh --broker-list localhost:9092 --topic new_topic

消费消息
kafka-console-consumer.sh --zookeeper localhost:2181 --from-beginning --topic new_topic

查看当前全部topic
kafka-topics.sh --list --zookeeper localhost:2181

查看当前主题详细信息
kafka-topics.sh --zookeeper 127.0.0.1:2181 --describe --topic new_topic

查看全部主题信息
kafka-topics.sh --describe --zookeeper localhost:2181

查看consumer group列表(新版命令)
kafka-consumer-groups.sh --new-consumer --bootstrap-server 127.0.0.1:9092 --list
查看consumer group列表(老命令)
kafka-consumer-groups.sh --zookeeper 127.0.0.1:2181 --list

删除主题:
kafka-topics.sh --delete --zookeeper localhost:2181 --topic new_topic

若需要真正删除,去除mark

可以参考该同学博文(https://blog.csdn.net/fengzheku/article/details/50585972)

这里也分享下:

此时你若想真正删除它,可以如下操作:

(1)登录zookeeper客户端:命令:./bin/zookeeper-client

(2)找到topic所在的目录:ls /brokers/topics

(3)找到要删除的topic,执行命令:rmr /brokers/topics/【topic name】即可,此时topic被彻底删除。

另外被标记为marked for deletion的topic你可以在zookeeper客户端中通过命令获得:ls /admin/delete_topics/【topic name】,

如果你删除了此处的topic,那么marked for deletion 标记消失

删除 消费者组
kafka-consumer-groups.sh --zookeeper 127.0.0.1:2181 --delete --group <group-name>

查看某个组中的topic信息
kafka-consumer-groups.sh --zookeeper 127.0.0.1:2181 --group 1 --describe

-------------------------搭建Kafka broker集群-------------------------

修改config/server.properties文件 复制此配置文件分别为server-1.properties,server-2.properties,server-3.properties

//准备三份用于启动kafka服务的配置
cp server.properties server-0.properties
cp server.properties server-1.properties
cp server.properties server-2.properties
三份配置中都要修改以下
broker.id=0(三个配置中分别修改为0,1,2)
port=9092(三个配置中分别修改为9092,9093,9094)
log.dirs=/tmp/kafka-logs-0(三个配置中分别修改为/tmp/kafka-logs-0,/tmp/kafka-logs-1,/tmp/kafka-logs-2)
num.partitions=3 (都设置为3,即每个topic默认三个partition)

配置完毕后,令开启三个终端 开启kafka
kafka-server-start.sh /usr/local/etc/kafka/server-1.properties
kafka-server-start.sh /usr/local/etc/kafka/server-2.properties
kafka-server-start.sh /usr/local/etc/kafka/server-3.properties

最后就可以在php中使用kafka了~~

安装zookeeper (若已经安装kafka,则其包内带有zookeeper在 src/kafka2.11-1.1.1/libs目录中 )
wget http://mirrors.cnnic.cn/apache/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz
tar zxvf zookeeper-3.4.6.tar.gz
cd zookeeper-3.4.6
cp -rf conf/zoo_sample.cfg conf/zoo.cfg
cd conf
vim zoo.cfg
修改zook.cfg里头的dataDir (数据路径这里配置路径为dataDir=/usr/local/var/lib/zookeeper)

重要kafka配置参数中文说明
http://debugo.com/kafka-params/
https://www.cnblogs.com/weixiuli/p/6413109.html
Kafka集群生产/消费的负载均衡(Rebalance)测试
https://blog.csdn.net/cjf_wei/article/details/57121845

--------------- kafka php客户端安装(php-rdkafka) --------------
1.安装 librdkafka
git clone https://github.com/edenhill/librdkafka
cd librdkafka
./configure
make
sudo make install

2.安装php-rdkafka
git clone https://github.com/arnaud-lb/php-rdkafka.git
cd php-rdkafka
phpize
./configure
make all -j 5
sudo make install

vi /usr/local/lib/php.ini
加入 extension=rdkafka.so

-------------------------为完成此文档,提交到公司手册中,花了不少时间,也希望大家多多指出其中不正确地方,不胜感激~-------------------------

      人的一切痛苦,本质上都是对自己的无能的愤怒。

kafka搭建到配置borker集群(项目开发-区块链)的更多相关文章

  1. 在 Linux 服务器上搭建和配置 Hadoop 集群

    实验条件:3台centos服务器,jdk版本1.8.0,Hadoop 版本2.8.0 注:hadoop安装和搭建过程中都是在用户lb的home目录下,master的主机名为host98,slave的主 ...

  2. Kafka server.properties配置,集群部署

    server.properties中所有配置参数说明(解释) broker.id =0每一个broker在集群中的唯一表示,要求是正数.当该服务器的IP地址发生改变时,broker.id没有变化,则不 ...

  3. [转帖]kafka入门:简介、使用场景、设计原理、主要配置及集群搭建

    kafka入门:简介.使用场景.设计原理.主要配置及集群搭建 http://www.aboutyun.com/thread-9341-1-1.html 还没看完 感觉挺好的. 问题导读: 1.zook ...

  4. hadoop+yarn+hbase+storm+kafka+spark+zookeeper)高可用集群详细配置

    配置 hadoop+yarn+hbase+storm+kafka+spark+zookeeper 高可用集群,同时安装相关组建:JDK,MySQL,Hive,Flume 文章目录 环境介绍 节点介绍 ...

  5. 搭建高可用mongodb集群(一)——配置mongodb

    在大数据的时代,传统的关系型数据库要能更高的服务必须要解决高并发读写.海量数据高效存储.高可扩展性和高可用性这些难题.不过就是因为这些问题Nosql诞生了. NOSQL有这些优势: 大数据量,可以通过 ...

  6. 基于CentOS与VmwareStation10搭建Oracle11G RAC 64集群环境:2.搭建环境-2.7. 配置资源与参数

    2.7.配置资源与参数 2.7.1. 修改主机名称 [root@linuxrac1 ~]# cd /etc/sysconfig [root@linuxrac1 sysconfig]# vi netwo ...

  7. 基于CentOS与VmwareStation10搭建Oracle11G RAC 64集群环境:2.搭建环境-2.5. 配置网络

    2.5. 配置网络 2.5.1. 配置网络 Oracle Rac数据库涉及到公用网络和私有网络,因此要做网络划分和IP地址规划,下表列出了要安装的RAC数据库对应的IP地址.主机名以及网络连接类型: ...

  8. 基于CentOS与VmwareStation10搭建Oracle11G RAC 64集群环境:2.搭建环境-2.3配置共享磁盘

    2.3.配置共享磁盘 2.3.1.创建共享磁盘 在cmd中进入WMware Workstation 10.0 安装目录: 1.创建存储Oracle Clusterware文件  (Oracle Clu ...

  9. 基于CentOS与VmwareStation10搭建Oracle11G RAC 64集群环境:4.安装Oracle RAC FAQ-4.6.重新配置与缷载11R2 Grid Infrastructure

    1.[root@linuxrac1 ~]# /u01/app/oraInventory/orainstRoot.sh 2.[root@linuxrac2 ~]# /u01/app/oraInvento ...

随机推荐

  1. Java web相关内容

    我们即将学习Java web 这是通过查阅资料找到的和Java web 相关的内容. 一:Java web的含义 JavaWeb,是用Java技术来解决相关web互联网领域的技术总和.web包括:we ...

  2. SQL Server 表的管理_关于事务操作的详解(案例代码)

    SQL Server 表的管理_关于事务操作的详解(案例代码) 1.概念 事务(transaction): 是将多个修改语句组合在一起的方法,这个方法中的所有语句只有全部执行才能正确完成功能.即要么全 ...

  3. 使用 Nginx 对 ASP.NETCore网站 或 Docker 等进行反向代理,宝塔面板对 ASP.NET Core 反向代理

    1,Nginx 的 配置文件 Nginx 可以配置反向代理.负载均匀等, 其默认配置文件名为 nginx.conf . 一般存放于 /你的安装目录/nginx/conf  下 Nginx 加载配置信息 ...

  4. 乘风破浪:LeetCode真题_002_Add Two Numbers

    乘风破浪:LeetCode真题_002_Add Two Numbers 一.前言     这次的题目是关于链表方面的题目,把两个链表对应节点相加,还要保证进位,每个节点都必须是十进制的0~9.因此主要 ...

  5. Http协议入门:

    HTTP 协议是互联网的基础协议,也是网页开发的必备知识,最新版本 HTTP/2 更是让它成为技术热点. 转自:http://www.ruanyifeng.com/blog/2016/08/http. ...

  6. 微软Charting图表控件 System.Web.UI.DataVisuliztion.Charting

    一.概述 基于.NET Framework 3.5 SP1的图表控件--Chart,可在WinForm和WebForm下使用!需要引入System.Web.DataVisualization.dll ...

  7. 美团2018年CodeM大赛-初赛B轮 B 配送(最短路)

    美团2018年CodeM大赛-初赛B轮 B 配送 题意 题解 对于每个任务,只要从上个任务的终点出发即可. 时间.地点很少,可以算出每个地点-时间的最小花费. 以题目描述的起点终点起始结束时间建图,很 ...

  8. 用 Visual Studio 2012 调试你的ASP程序

    最近搞到一段很值得参考的ASP项目,无奈技术有限,打开看完代码后感觉自己就像从来没学过ASP一样.唉...大神的世界 不过在网上看到一个有趣的方法,可以用Visual Studio 2005来调试AS ...

  9. IOS 登录信息类(使用单例)

    WCUserInfo.h #import <Foundation/Foundation.h> #import "Singleton.h" @interface WCUs ...

  10. jq判断鼠标滚轴向上滚动还是向下滚动

    $(document).on("mousewheel DOMMouseScroll", function (e) { var delta = (e.originalEvent.wh ...