首页 > 编程语言 >php操作kafka

php操作kafka

时间:2023-04-23 16:35:37浏览次数:54  
标签:rdkafka 扩展 kafka topic 7.1 操作 php 安装


目录

一:安装libkafka扩展

二:安装rdkafka扩展

三:PHP代码操作链接

四:rdkafka官方文档


需要安装:libkafka,rdkafka扩展

一:安装libkafka扩展

  1. 下载 去GitHub上: git clone https://github.com/edenhill/librdkafka.git
  2. 安装(执行命令)
    cd librdkafka/./configure && make && make install

二:安装rdkafka扩展

  1. 下载 git clone https://github.com/arnaud-lb/php-rdkafkacd php-rdkafka/
     
  2. 为php安装扩展 在php-rdkafka这个目录下
    执行:phpize
    然后会生成源代码安装的脚本 把php-config的位置改成自己php-config的位置
    执行:./configure --with-php-config=/usr/local/Cellar/php\@7.1/7.1.28_1/bin/php-config(这是我的文件地址)
    编译安装(执行该命令)
    make && make install
    成功后会出现一个文件夹地址:
    Installing shared extensions: /usr/local/Cellar/[email protected]/7.1.28_1/pecl/20160303/rdkafka.so 

    --->这个地址是需要配置到你的php.ini文件中的
     
  3. cd /usr/local/Cellar/[email protected]/7.1.28_1/pecl/20160303/   会有个扩展文件:rdkafka.so
  4. 修改php.ini文件(添加扩展配置文件)




  5. 重启PHP
    sudo /usr/local/Cellar/php\@7.1/7.1.28_1/sbin/php-fpm -D 

     
  6. 执行php -m 查看安装已有的扩展

执行echo phpinfo(); 也可以查看

三:PHP代码操作链接

try {
    //实例化对象
    $rcf = new \RdKafka\Conf(); //需要用绝对路径
    $rcf->set('group.id', 'leyangjun_test_g');
    $cf = new \RdKafka\TopicConf();
    /*
        $cf->set('offset.store.method', 'file');
    */
    $cf->set('auto.offset.reset', 'smallest');
    $cf->set('auto.commit.enable', true);

    $rk = new \RdKafka\Consumer($rcf);

    //设置错误级别
    $rk->setLogLevel(LOG_DEBUG);

    //设置Broker地址(可以多个,用逗号分隔即可)
    $rk->addBrokers("leyangjun.com:9092");


    //创建一个主题实例,并且从分区0开始消费
    $topic = $rk->newTopic("leyangjun_topic", $cf);
    //$topic->consumeStart(0, RD_KAFKA_OFFSET_BEGINNING);
    while (true) {
        $topic->consumeStart(0, RD_KAFKA_OFFSET_STORED);
        $info = $topic->consume(0, 1000);
        var_dump($info);

        if ($msg->err) {
            echo $msg->errstr(), "\n";
            break;
        } else {
            echo $msg->payload, "\n";
        }
        $topic->consumeStop(0);
        sleep(1);
    }
} catch (Exception $e) {
    echo $e->getMessage();
}

四:rdkafka官方文档

https://libraries.io/github/mentionapp/php-rdkafka

标签:rdkafka,扩展,kafka,topic,7.1,操作,php,安装
From: https://blog.51cto.com/u_16085147/6218175

相关文章

  • php 文件读取和写入详细介绍例子
    *************介绍PHP文件的写入和读取**************/***文件写入*///覆盖写入$filename='leyangjun.txt';$word="北京欢迎你!";$fh=fopen($filename,"w");echofwrite($fh,$word);fclose($fh);//追加写入$filename='leyangjun.txt&......
  • php 无限极分类 封装
    <?phpnamespaceApp\Services;useIlluminate\Http\Request;/***ClassPendingService*@packageApp\Service*无限分类公共类*/classLimitlessService{protected$_request;//publicfunction__construct(Request$request)//{//......
  • mysql 主从,django操作读写分离
    目录mysql主从搭建步骤1.准备两台机器2.创建文件夹,文件(目录映射)3编写mysql配置文件(主,从)重要启动mysql容器,并做端口和目录映射连接主库修改新建用户连接从库修改配置django操作多数据库方法1.配置文件2.手动读写分离3.自动读写分离4.配置文件添加新点mysql主从目的: 主要做读......
  • 王道408操作系统-4.3文件系统 习题总结
    文件系统第一题用户使用文件系统实现对文件的按名存取,选B第二题选B,超级块是用来描述文件系统的第三题文件的存储空间实际上是对(外存空间区)的组织和管理。第四题第五题索引节点用来存放文件的描述信息,所以选B虚拟文件系统虚拟文件系统,简称VFS(Virtual......
  • 一篇文章教会你进行Mysql数据库和数据表的基本操作
    前言NaicatforMysql使用通常情况下,我们都是通过mysql.exe(客户端),连接mysql服务的。但是有个问题。第一个问题就是太丑了。第二个问题是因为这不会自动提示啊...,早都习惯了各种自动提示工具,在用这么Low的安装下一步下一步就可以了!!!管理员运行PatchNavicat打开之后,游览到安装N......
  • 1 python操作哨兵 、2 python操作集群、3 缓存优化、4 mysql 主从 、5 django使用多数
    目录1python操作哨兵2python操作集群3缓存优化3.1redis缓存更新策略3.2缓存击穿,雪崩,穿透4mysql主从5django使用多数据库做读写分离1python操作哨兵#高可用架构后---》不能直接连某一个主库了---》主库可能会挂掉,后来它就不是主库了#之前学的连接redis的操作,就用不......
  • Django静态文件,链接数据库,DRM操作
    目录配置文件的介绍静态文件的配置request对象form表单Django链接数据库(MySQL)(掌握)Django的ORM操作ORM基本语句数据的增查模板变量的分配配置文件的介绍SECRET_KEY='0yge9t5m9&%=of**qk2m9z^7-gp2db)g!*5dzb136ys0#)*%*a'#盐DEBUG=True#调试模式,等项目上线的时候......
  • redis高级-day6——python操作哨兵、python操作集群、缓存优化
    目录一、python操作哨兵二、python操作集群三、缓存优化3.1redis缓存更新策略3.2缓存击穿,雪崩,穿透一、python操作哨兵#高可用架构后---》不能直接连某一个主库了---》主库可能会挂掉,后来它就不是主库了#之前学的连接redis的操作,就用不了了importredisconn=redis.Red......
  • 关于【安全狗】在【phpstudy】中【无法找到apache服务名】的问题
      网上很多说就是在安装安全狗apache版的时候,安装程序找不到apache的服务名。   然后看了网上很多教程说就是把phpstudy的允许模式改为【系统服务】模式就行  但是我改了之后在服务里面还是没有找到apache的服务。   这里我记录下,给那些有需要的小伙伴   我......
  • 处理U8 结转损益凭证存在银行两清标志/分录 不能作废凭证SQL操作
    --处理U8结转损益凭证存在银行两清标志/分录不能作废凭证SQL操作:---查询凭证号及会计期间select*fromGL_accvouchwhereino_id=98andiyperiod='202101'---更新凭证两清标记为空updateGL_accvouchsetiflagPerson=nullwhereino_id=98andiyperiod='202101......