IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> PHP知识库 -> php框架中配置Kafka -> 正文阅读

[PHP知识库]php框架中配置Kafka

由于Kafka是由Java编写的,所以我们需要先安装 java 的 jdk

大致运行原理

在这里插入图片描述

1. producer 先从 zookeeper 的 “/brokers/…/state” 节点找到该 partition 的 leader
2. producer 将消息发送给该 leader
3. leader 将消息写?本地 log
4. followers 从 leader pull 消息,写?本地 log 后 leader 发送 ACK(确认字符)
5. leader 收到所有 ISR 中的 replica 的 ACK 后,增加 HW(high watermark,最后 commit 的
offset) 并向 producer 发送 ACK

下载网址

然后下载到任意位置,进行配置环境变量

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

然后打开命令行进行测试看jdk是否安装成功

在这里插入图片描述

在框架中安装Kafka扩展的时候需要在框架中进行一个扩展的安装【注意下载的时候要和我们的PHP版本相对应】

下载扩展包

在这里插入图片描述

然后在我们的小皮里面进行配置

1.将上面的第一个文件放入配置文件中

在这里插入图片描述

2.然后再将第二个文件放入下面的配置中

在这里插入图片描述

3,最后在我们的小皮中进行一个添加,重启小皮

在这里插入图片描述

然后我们能够通过phpinfo()查到php中的rdKafka

在这里插入图片描述

然后我们进行启动【备注,代码里面&这里代表常连接】

1.zookeeper 启动命令:【单独开启一个服务】
bin/windows/zookeeper-server-start.bat config/zookeeper.properties &

2.kafka 启动命令:【单独开启一个服务】
bin/windows/kafka-server-start.bat config/server.properties &

3.创建topic:【345在一个窗口下执行】
bin/windows/kafka-topics.bat --create --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1 --topic test

4.查看创建的topic
bin/windows/kafka-topics.bat --list --bootstrap-server localhost:9092

5.启动生产者 producer
bin/windows/kafka-console-producer.bat --broker-list localhost:9092 --topic test

6.启动消费者 customer【消费者在一个窗口下执行】
bin/windows/kafka-console-consumer.bat --bootstrap-server localhost:9092 --topic test --from-beginning

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

然后在我们的tp6框架中进行composer安装

composer require noname007/kafka-php

在这里插入图片描述

然后我们就可以使用代码在框架中进行生产和消费了

use Kafka\lib\ProducerConfig;

//producer?产者
    public function producer()
    {
        $config = ProducerConfig::getInstance();
        /* Topic的元信息刷新的间隔 */
        $config->setMetadataRefreshIntervalMs(10000);
        /* 设置broker的地址 */
        $config->setMetadataBrokerList('127.0.0.1:9092');
        /* 设置broker的代理版本 */
        $config->setBrokerVersion('1.0.0');
        /* 只需要leader确认消息 */
        $config->setRequiredAck(1);
        /* 选择异步 */
        $config->setIsAsyn(false);
        /* 每500毫秒发送消息 */
        $config->setProduceInterval(500);
        /* 创建?个?产者实例 */
        $producer = new \Kafka\Producer();
        for($i = 0; $i < 100; $i++ ) {
            $producer->send([
                [
                    'topic' => 'wxq',
                    'value' => 'test'.$i,
                ],//consumer
            ]);
        }
    }
 //consumer消费者
    public function consumer()
    {
        //consumer
        $config = ProducerConfig::getInstance();
        $config->setMetadataRefreshIntervalMs(10000);
        $config->setMetadataBrokerList('127.0.0.1:9092');
        $config->setGroupId('wxq');
        $config->setBrokerVersion('1.0.0');
        $config->setTopics(['wxq']);
        $consumer = new \Kafka\Consumer();
        $consumer->start(function($topic, $part, $message) {
            var_dump($message);
        });
    }
//consumer消费者
    public function consumer()
    {
        //consumer
        $config = ProducerConfig::getInstance();
        $config->setMetadataRefreshIntervalMs(10000);
        $config->setMetadataBrokerList('127.0.0.1:9092');
        $config->setGroupId('wxq');
        $config->setBrokerVersion('1.0.0');
        $config->setTopics(['wxq']);
        $consumer = new \Kafka\Consumer();
        $consumer->start(function($topic, $part, $message) {
            var_dump($message);
        });
    }
  PHP知识库 最新文章
Laravel 下实现 Google 2fa 验证
UUCTF WP
DASCTF10月 web
XAMPP任意命令执行提升权限漏洞(CVE-2020-
[GYCTF2020]Easyphp
iwebsec靶场 代码执行关卡通关笔记
多个线程同步执行,多个线程依次执行,多个
php 没事记录下常用方法 (TP5.1)
php之jwt
2021-09-18
上一篇文章      下一篇文章      查看所有文章
加:2021-07-04 19:06:42  更:2021-07-04 19:06:59 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/14 14:48:45-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码