kafka安装及Kafka-PHP扩展的使用
实话说,如果用于队列的话,跟PHP比较配的,还是Redis。用的顺手,呵呵,只是Redis不能有多个consumer。但Kafka官方对PHP不支持,PHP扩展是爱好者或使用者写的。下面就开始讲Kafka的安装吧。我以CentOS6.4为例,64位。
一. 首先确认下jdk有没有安装
使用命令
[root@localhost ~]# java -version java version "1.8.0_73" Java(TM) SE Runtime Environment (build 1.8.0_73-b02) Java HotSpot(TM) 64-Bit Server VM (build 25.73-b02, mixed mode)
如果有以上信息的话,就往下安装吧,有些可能是jdk对不上,那就装到对的上的。如果没有安装,就看一下下面的jdk安装方法:
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
到这个地址下载jdk8版本,我下载的是jdk-8u73-linux-x64.tar.gz,然后解压到/usr/local/jdk/下。
然后打开/etc/profile文件
[root@localhost ~]# vim /etc/profile
把下面这段代码写到文件里
export JAVA_HOME=/usr/local/jdk/jdk1.8.0_73 export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar export PATH=$JAVA_HOME/bin:$PATH
最后
[root@localhost ~]# source /etc/profile
这时jdk就生效了,可以使用 java -version验证下。
二. 接下来安装Kafka
1. 下载Kafka
到http://kafka.apache.org/downloads.html下载相应的版本,我使用的是kafka_2.9.1-0.8.2.2.tgz
wget http://apache.fayea.com/kafka/0.11.0.0/kafka_2.11-0.11.0.0.tgz
2. 下载完解压到你喜欢的目录
我是解压到 /usr/local/kafka/kafka_2.9.1-0.8.2.2
3. 运行默认的Kafka
启动Zookeeper server
[root@localhost kafka_2.9.1-0.8.2.2]# sh bin/zookeeper-server-start.sh config/zookeeper.properties &
启动Kafka server
[root@localhost kafka_2.9.1-0.8.2.2]# sh bin/kafka-server-start.sh config/server.properties &
运行生产者producer
[root@localhost kafka_2.9.1-0.8.2.2]# sh bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test
运行消费者consumer
[root@localhost kafka_2.9.1-0.8.2.2]# sh bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic test --from-beginning
这样,在producer那边输入内容,consumer马上就能接收到。
4. 当有跨机的producer或consumer连接时
需要配置config/server.properties的host.name,要不然跨机的连不上。
三. Kafka-PHP扩展
使用了一圈,就https://github.com/nmred/kafka-php可以用。
我是使用composer安装的,以下是示例:
producer.php
<?php require 'vendor/autoload.php';while (1) {$part = mt_rand(0, 1);$produce = \Kafka\Produce::getInstance('kafka0:2181', 3000);// get available partitions$partitions = $produce->getAvailablePartitions('topic_name');var_dump($partitions);// send message$produce->setRequireAck(-1);$produce->setMessages('topic_name', 0, array(date('Y-m-d H:i:s'));sleep(3); }
consumer.php
require 'vendor/autoload.php';$consumer = \Kafka\Consumer::getInstance('kafka0:2181'); $group = 'topic_name'; $consumer->setGroup($group); $consumer->setFromOffset(true); $consumer->setTopic('topic_name', 0); $consumer->setMaxBytes(102400); $result = $consumer->fetch(); print_r($result); foreach ($result as $topicName => $partition) {foreach ($partition as $partId => $messageSet) {var_dump($partition->getHighOffset());foreach ($messageSet as $message) {var_dump((string)$message);}var_dump($partition->getMessageOffset());} }
来源:https://blog.csdn.net/weiwenjuan0923/article/details/76152744
kafka安装及Kafka-PHP扩展的使用相关推荐
- 查询linux kafka安装目录,Kafka 1.0.0安装和配置--Linux篇
阅读目录: 1. 关闭防火墙和Selinux 2. 安装所需环境JDK,Zookeeper 3. 下载Kafka 1.0.0版本 4. 配置Kafka 5. 启动Kafka并验证 6. 报错及解决 7 ...
- kafka安装及入门
kafka 1)kafka介绍 Kafka 是一个分布式流媒体平台,类似于消息队列或企业消息传递系统.kafka官网:http://kafka.apache.org/ 2)kafka概述 消息中间件对 ...
- 安装搭建kafka集群
文章目录 一.简介 二.kafka架构 三.kafka安装部署 四.启动kafka集群 五.测试 一.简介 Kafka,分布式的消息队列系统(Message Queue)官网:https://kafk ...
- 学习笔记Kafka(三)—— Kafka安装配置(2)—— Kafka单代理及常用操作
一.Linux环境准备 Centos7, 1 CPU , 2G Memory ,20G Disk , Virtual System JDK Zookeeper 二.Kafka 安装 下载Kafka安装 ...
- java kafka搭建,Apache Kafka 安装步骤
概览 安装过程总共分为 3 大块,第一 Java 环境不必多说,第二 Zookeeper 安装,第三 Kafka 安装. 概念了解 Kafka 有几个重要的概念需要先了解一下 名词 解释 broker ...
- Linux kafka安装
一 JDK安装: 1.jdk1.7.0_55.tar.gz 准备安装包 2.tar -zxvf 安装包进行当前位置解压(一般解压在根目录opt下) 3.vi /etc/profile 编辑文本最下面 ...
- kafka php 安装配置,kafka安装及Kafka-PHP扩展的使用,kafkakafka-php扩展_PHP教程
kafka安装及Kafka-PHP扩展的使用,kafkakafka-php扩展 话说用了就要有点产出,要不然过段时间又忘了,所以在这里就记录一下试用Kafka的安装过程和php扩展的试用. 实话说,如 ...
- Kafka 安装及快速入门
转载请注明原创地址为:http://www.54tianzhisheng.cn/2018/01/04/Kafka/ 介绍 官网:http://kafka.apache.org/ Apache Kafk ...
- Kafka 安装配置及快速入门
2019独角兽企业重金招聘Python工程师标准>>> 一.简介 官网:http://kafka.apache.org/ Apache Kafka是分布式发布-订阅消息系统.它最初由 ...
最新文章
- 仅凭一部iPhone手机,打造现实版元宇宙
- 跨链Cosmos(5)ABCI 接口
- python中什么是数据驱动_Python数据驱动DDT的应用
- IOS模拟器调试ANE
- UVA - 455 Periodic Strings【字符串】
- android 如何 root权限获取,如何获取android手机root权限获取
- java 5 多线程_Java基础系列五、多线程
- Intel Edison学习笔记(一)—— 刷系统
- 1022 D进制的A+B (20 分)—PAT (Basic Level) Practice (中文)
- Android SharedPreferences
- 来面试,偷懒不答题,直接忽略
- 新萝卜家园 Ghost XP SP3 电脑城装机专用版 10.5
- Office之word如何删除页眉横线
- \t\t林荫苗圃 苗木和苗圃 好苗木种植技术是关键 它好我也好
- 新冠无情人间有情,欣隆农业保民生共抗疫——慰问抗疫一线及爱老助困送欣隆酵醒鸡蛋蔬菜进社区公益行动
- visual studio code下载慢解决办法
- 拼多多 标题 html,拼多多的创意图和创意标题怎么测试?为什么要测试?怎样测试呢?...
- 重置ubuntu密码
- Jquery图片轮播(连续滚动+突出显示)
- 十六进制数后跟L/U/UL解析
热门文章
- C++11之异步调用
- mysql数据库引擎博客_mysql 数据库引擎常识全集
- NumPy中的where()函数
- android模拟器EditText 不能用物理键盘输入,也不能用电脑键盘输入
- 表的插入、更新、删除、合并操作_18_清空表中记录
- oracle字符串清洗、拆分案例
- 如何使用VS2015开发Qt5程序
- 论文笔记 OHEM: Training Region-based Object Detectors with Online Hard Example Mining
- C++中auto的用法,说明的是变量的寿命
- python重命名文件源码