实话说,如果用于队列的话,跟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扩展的使用相关推荐

  1. 查询linux kafka安装目录,Kafka 1.0.0安装和配置--Linux篇

    阅读目录: 1. 关闭防火墙和Selinux 2. 安装所需环境JDK,Zookeeper 3. 下载Kafka 1.0.0版本 4. 配置Kafka 5. 启动Kafka并验证 6. 报错及解决 7 ...

  2. kafka安装及入门

    kafka 1)kafka介绍 Kafka 是一个分布式流媒体平台,类似于消息队列或企业消息传递系统.kafka官网:http://kafka.apache.org/ 2)kafka概述 消息中间件对 ...

  3. 安装搭建kafka集群

    文章目录 一.简介 二.kafka架构 三.kafka安装部署 四.启动kafka集群 五.测试 一.简介 Kafka,分布式的消息队列系统(Message Queue)官网:https://kafk ...

  4. 学习笔记Kafka(三)—— Kafka安装配置(2)—— Kafka单代理及常用操作

    一.Linux环境准备 Centos7, 1 CPU , 2G Memory ,20G Disk , Virtual System JDK Zookeeper 二.Kafka 安装 下载Kafka安装 ...

  5. java kafka搭建,Apache Kafka 安装步骤

    概览 安装过程总共分为 3 大块,第一 Java 环境不必多说,第二 Zookeeper 安装,第三 Kafka 安装. 概念了解 Kafka 有几个重要的概念需要先了解一下 名词 解释 broker ...

  6. Linux kafka安装

    一  JDK安装: 1.jdk1.7.0_55.tar.gz 准备安装包 2.tar -zxvf 安装包进行当前位置解压(一般解压在根目录opt下) 3.vi /etc/profile 编辑文本最下面 ...

  7. kafka php 安装配置,kafka安装及Kafka-PHP扩展的使用,kafkakafka-php扩展_PHP教程

    kafka安装及Kafka-PHP扩展的使用,kafkakafka-php扩展 话说用了就要有点产出,要不然过段时间又忘了,所以在这里就记录一下试用Kafka的安装过程和php扩展的试用. 实话说,如 ...

  8. Kafka 安装及快速入门

    转载请注明原创地址为:http://www.54tianzhisheng.cn/2018/01/04/Kafka/ 介绍 官网:http://kafka.apache.org/ Apache Kafk ...

  9. Kafka 安装配置及快速入门

    2019独角兽企业重金招聘Python工程师标准>>> 一.简介 官网:http://kafka.apache.org/ Apache Kafka是分布式发布-订阅消息系统.它最初由 ...

最新文章

  1. 仅凭一部iPhone手机,打造现实版元宇宙
  2. 跨链Cosmos(5)ABCI 接口
  3. python中什么是数据驱动_Python数据驱动DDT的应用
  4. IOS模拟器调试ANE
  5. UVA - 455 Periodic Strings【字符串】
  6. android 如何 root权限获取,如何获取android手机root权限获取
  7. java 5 多线程_Java基础系列五、多线程
  8. Intel Edison学习笔记(一)—— 刷系统
  9. 1022 D进制的A+B (20 分)—PAT (Basic Level) Practice (中文)
  10. Android SharedPreferences
  11. 来面试,偷懒不答题,直接忽略
  12. 新萝卜家园 Ghost XP SP3 电脑城装机专用版 10.5
  13. Office之word如何删除页眉横线
  14. \t\t林荫苗圃 苗木和苗圃 好苗木种植技术是关键 它好我也好
  15. 新冠无情人间有情,欣隆农业保民生共抗疫——慰问抗疫一线及爱老助困送欣隆酵醒鸡蛋蔬菜进社区公益行动
  16. visual studio code下载慢解决办法
  17. 拼多多 标题 html,拼多多的创意图和创意标题怎么测试?为什么要测试?怎样测试呢?...
  18. 重置ubuntu密码
  19. Jquery图片轮播(连续滚动+突出显示)
  20. 十六进制数后跟L/U/UL解析

热门文章

  1. C++11之异步调用
  2. mysql数据库引擎博客_mysql 数据库引擎常识全集
  3. NumPy中的where()函数
  4. android模拟器EditText 不能用物理键盘输入,也不能用电脑键盘输入
  5. 表的插入、更新、删除、合并操作_18_清空表中记录
  6. oracle字符串清洗、拆分案例
  7. 如何使用VS2015开发Qt5程序
  8. 论文笔记 OHEM: Training Region-based Object Detectors with Online Hard Example Mining
  9. C++中auto的用法,说明的是变量的寿命
  10. python重命名文件源码