Kafka简介及使用PHP处理Kafka消息

PHP 消息队列 Kafka 使用 安装 Kafka 服务 直接到 kafka 官网 , 下载最新的 wget https://mirror.bit.edu.cn/apache/kafka/2.5.0/kafka_2.13-2.5.0.tgz 解压,进入目录 tar -zxvf kafka_2.13-2.5.0.tgz cd kafka_2.13-2.5.0 启动 Kafka 服务 使用安装包中的脚本启动单节点 Zookeeper 实例 bin/zookeeper-server-start.sh -daemon confi 阅读详情

Kafka简介及使用PHP处理Kafka消息

Kafka 是一种高吞吐的分布式消息系统,能够替代传统的消息队列用于解耦合数据处理,缓存未处理消息等,同时具有更高的吞吐率,支持分区、多副本、冗余,因此被广泛用于大规模消息数据处理应用。

Kafka的特点:

  • 以时间复杂度为O(1)的方式提供消息持久化能力,即使对TB级以上数据也能保证常数时间复杂度的访问性能。
  • 高吞吐率。即使在非常廉价的商用机器上也能做到单机支持每秒100K条以上消息的传输。【据了解,Kafka每秒可以生产约25万消息(50 MB),每秒处理55万消息(110 MB)】
  • 支持Kafka Server间的消息分区,同时保证每个Partition内的消息顺序传输。
  • 分布式系统,易于向外扩展。所有的producer、broker和consumer都会有多个,均为分布式的。无需停机即可扩展机器。
  • 消息被处理的状态是在consumer端维护,而不是由server端维护。当失败时能自动平衡。
  • 同时支持离线数据处理和实时数据处理。

Kafka的架构:

kafkakafka架构图

 

Kafka的整体架构非常简单,producer、broker(kafka)和consumer都可以有多个。Producer,consumer实现Kafka注册的接口,数据从producer发送到broker,broker承担一个中间缓存和分发的作用。broker分发注册到系统中的consumer。broker的作用类似于缓存,即活跃的数据和离线处理系统之间的缓存。客户端和服务器端的通信,是基于简单,高性能,且与编程语言无关的TCP协议。

 

Kafka基本概念:

  • Topic:特指Kafka处理的消息源(feeds of messages)的不同分类。
  • Partition:Topic物理上的分组,一个topic可以分为多个partition,每个partition是一个有序的队列。partition中的每条消息都会被分配一个有序的id(offset)。
  • Message:消息,是通信的基本单位,每个producer可以向一个topic(主题)发布一些消息。
  • Producers:消息和数据生产者,向Kafka的一个topic发布消息的过程叫做producers。
  • Consumers:消息和数据消费者,订阅topics并处理其发布的消息的过程叫做consumers。
  • Broker:缓存代理,Kafa集群中的一台或多台服务器统称为broker。

 

Kafka消息发送的流程:

Kafka-MessageKafka消息发送

 

下面是PHP生产、消费Kafka消息的例子(假设已经配置好Kafka):

1.从zookeeper源码src/c/src安装zookeeper c client

2.编译php libzookper扩展

3.编译php zookeeper扩展

4.修改php.ini配置,添加libzookeeper和php-zookeeper扩展

 

PHP处理Kafka消息:

1.启动zookeeper和kafka

2.创建由2个partition组成的、名为testtopic的topic

3.composer安装nmred/kafka-php

4.producer.php代码

5.consumer.php代码

6.运行php代码

在3个终端界面分别运行

7.结果

两个consumer脚本依次收到producer发送的消息

php-kafka-consumer-outputphp-kafka-consumer-output

Related Posts

thinkphp 使用php-rdkafka 【代码】thinkphp 使用php-rdkafka。 阅读详情

相关推荐

kafka-3-kafka应用的核心要点和内外网访问

kafka应用的核心要点和内外网访问

qq_20466211的博客 2171

PHP操作Kafka

本文对php操作kafka的方法做一个记录,备忘。 一、搭建kafka集群 下载kafka并解压: tar -xzf kafka_2.13-2.7.0.tgz 搭建单机集群: cd kafka_2.13-2.7.0 #创建两个broker配置并修改端口 cp config/server.properties config/server-1.properties cp config/server.properties config/server-2.properties 编辑拷贝.

右手诗的博客 5665

使用Docker搭建SearXNG搜索引擎

【代码】使用Docker搭建SearXNG搜索引擎。

janthinasnail的博客 1160

PHP处理kafka消息队列

在安装php-kafka 扩展后,就可以开始编写 php 消费消息的脚本了,php-rdkafka 扩展提供了几种消息处理的方式 低级方式(Low level) 这种方式没有消费组的概念 <?php $rk = new RdKafka\Consumer(); $rk->setLogLevel(LOG_DEBUG); // 指定 broker 地址,多个地址用"," ...

weixin_33968104的博客 712

状态转移矩阵在离散控制系统中的应用与实现步骤详解

本文深入解析了状态转移矩阵在离散控制系统中的核心作用与实现步骤。通过一个具体实例,详细演示了如何将连续状态空间模型精确离散化,计算出离散系统矩阵A_d和B_d,并分享了采样周期选择、数值计算技巧及嵌入式C语言实现等关键工程经验,为开发高性能数字控制器提供实用指南。

weixin_28454475的博客 379

Hyper-V集群部署指南

工欲善其事,必先利其器。搭建一个方便管理的服务集群,是分布式学习很重要的环境。 目前流行的虚拟机产品主要为Vmware 和 win10自带的Hyper-V(win10家庭版无此功能),网上关于Vmware的教程更多,显然它更容易上手,但Hyper-V也算是一个很不错的产品,这里记录一下我的学习过程: 目录 Hyper-V的安装 服务集群的搭建 虚拟机的网络通信 NAT网络的搭建 端口映射 Linux的静态IP 虚拟机的自启动问题 Hyper-V的安装 也不能算说是安装,如果你的win1

Swing 6918

php使用kafka实现消息队列处理

将下载的拓展包中的 librdkafka.dll移到php安装根目录下,php_rdkafka.dll移到php/ext目录下。将Makefile.config里面的WITH_LDS=y这一行注释掉即可。如果安装librdkafka过程中出现如下错误解决。再php.ini文件中增加。安装过程中提示如下错误解决。安装librdkafka。

huaweichenai的博客 1072

Wiley:International Journal for Numerical Methods in Biomedical Engineering投稿流程

中间过程省略,这个出版社很人性化,投稿的web UI也很好看。上传word之后,一步步跟着走就行,不用填太多东西。不要最后在最后检查阶段,重新上传word文件,这样会导致,之前针对word的操作全部改变。

Everyday try to become better -Kobe Bryant 2545

php 消息队列_PHP处理kafka消息队列

安装PHP—kafka扩展后,就可以开始编写 php 消费消息的脚本了,php-rdkafka 扩展提供了几种消息处理的方式低级方式(Low level)这种方式没有消费组的概念<?php $rk = new RdKafkaConsumer(); $rk->setLogLevel(LOG_DEBUG); // 指定 broker 地址,多个地址用"," 分割 $rk->addB...

weixin_39928686的博客 351

Linux内核配置选项详解及编译过程

在内核编译完成后,可以通过重启系统并选择新编译的内核来使用它。可以在该菜单下选择需要编译进内核的设备驱动,也可以选择将设备驱动编译为模块。可以在该菜单下选择需要编译进内核的设备驱动,也可以选择将设备驱动编译为模块。可以选择需要的调试选项,并根据需要启用或禁用相应的功能。可以选择需要的文件系统类型,并根据需要启用或禁用相应的选项。可以选择需要的网络协议和功能,并根据需要启用或禁用相应的选项。可以选择需要的调试选项,并根据需要启用或禁用相应的功能。可以选择需要的文件系统类型,并根据需要启用或禁用相应的选项。

TechGlide的博客 746

逆向工具:一文讲述 Ghidra 的详细使用

Ghidra是由NSA开源的一款功能强大的逆向工程框架,支持多平台、多架构和多种文件格式分析。本文详细介绍了Ghidra的核心优势、安装配置方法、主界面功能模块,并通过一个CrackMe示例演示了完整的逆向分析流程。文章还讲解了高级功能如交叉引用、控制流图分析、数据类型重建和脚本自动化等,最后提供了常见文件格式的分析技巧。作为IDA Pro的免费替代方案,Ghidra适合个人学习、教学和中小项目使用。(149字)

数据知道的博客 4342

kafka的php使用场景,使用 PHP 处理 Kafka 消息

Kafka 是一种分布式的,基于发布 / 订阅的消息系统。在使用 PHP 处理 Kafka 消息的时候需要使用一个 PHP 的扩展 php-rdkafka 下面将介绍一下如何在 Linux / Mac OS 下安装 php-rdkafka在使用 php-rdkafka 之前需要先安装好librdkafkais a C library implementation of theApache K...

weixin_39634438的博客 386

RK3568平台(USB篇)USB HUB集线器

hub,集线器,连接在host与device之间的一种用于usb接口扩展的usb设备。可以将一个usb上行接口扩展为多个下行接口,使得一个host可以同时与多个device连接。一般来说,一块hub桥接芯片可扩展4个usb接口,而市面上的一拖七hub,其实使用了两块hub桥接芯片,其中一块hub桥接芯片的上行端口连接到另一块hub桥接芯片的下行端口。hub的上行端口面向host,下行端口面向device。在下行端口上,hub提供了设备接入检测和设备移除检测的能力,并给下行端口供电。

weixin_49303682的博客 964

php多进程消费kafka消息业务逻辑处理demo

这里提供的demo只是简单的打印了msg信息,大家可以按需调整。 class EchoKafkaConsumerLow extends KafkaConsumerLowService { function handleLogic($msg) { print_r($msg); } } class EchoKafkaConsumerHigh extends...

lc的大脑备份 1804

英伟达 Jetson AGX Thor 官方入门教程(一)系统U盘安装

NVIDIA Jetson AGX Thor开发套件快速安装指南 本指南详细介绍了NVIDIA Jetson AGX Thor开发套件的安装流程。该套件搭载T5000 SoM,为物理AI和机器人应用提供强大支持。安装过程采用全新的JetPack 7.0方案,通过USB闪存盘即可完成BSP(Jetson Linux)安装,无需依赖Ubuntu主机。指南包含硬件开箱说明、两种配置模式(带显示器/无显示器)、详细的ISO镜像下载和USB制作步骤(推荐使用Balena Etcher工具),以及首次启动后的初始设置流

机器人控制与仿真应用 2867

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

linux 安装Kafka,kafka简介及使用PHP Kafka扩展 处理消息

Kafka 是一种高吞吐的分布式消息系统,能够替代传统的消息队列用于解耦合数据处理,缓存未处理消息等,同时具有更高的吞吐率,支持分区、多副本、冗余,因此被广泛用于大规模消息数据处理应用。 Kafka基本概念: Topic:特指Kafka处理的消息源(feeds of messages)的不同分类。 Partition:Topic物理上的分组,一个topic可以分为多个partition,每个...

lchmyhua88的博客 716

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

kafka-php-消费者处理消息

PHP处理kafka消息队列低级方式(Low level)高级方式 (High level) 低级方式(Low level) <?php $rk = new RdKafka\Consumer(); $rk->setLogLevel(LOG_DEBUG); // 指定 broker 地址,多个地址用"," 分割 $rk->addBrokers("192.168.33.1:9092"); $topic = $rk->newTopic("test"); $topic->cons

galaxy_zh的博客 1153

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

kafka 回调超时_PHP处理kafka消息队列

安装PHP—kafka扩展后,就可以开始编写 php 消费消息的脚本了,php-rdkafka 扩展提供了几种消息处理的方式低级方式(Low level)这种方式没有消费组的概念<?php $rk = new RdKafkaConsumer(); $rk->setLogLevel(LOG_DEBUG); // 指定 broker 地址,多个地址用"," 分割 $rk->addB...

weixin_39860732的博客 431

php处理kafka消息

如果安装kafka,看上一篇文章CentOS7安装kafka php如果要使用kafka的话,需要安装一下kafka-php: # composer require nmred/kafka-php kafka-php的GitHub地址 先写一个kafka_producer.php,用来做为生产者: &amp;lt;?php require '/var/www/extend/vendor/au...

梁吉林的博客 3451

使用PHP处理Kafka消息

Kafka 是一种高吞吐的分布式消息系统,能够替代传统的消息队列用于解耦合数据处理,缓存未处理消息等,同时具有更高的吞吐率,支持分区、多副本、冗余,因此被广泛用于大规模消息数据处理应用。 Kafka的特点: 以时间复杂度为O(1)的方式提供消息持久化能力,即使对TB级以上数据也能保证常数时间复杂度的访问性能。 高吞吐率。即使在非常廉价的商用机器上也能做到单机支持每秒100K条以上消息的传...

gb4215287的博客 3275

php+kafka 消息幂等处理重复消费

布隆过滤器+redis+数据库唯一索引处理。

肥茹的博客 438
上一篇: GridView仿微信添加多图效果
下一篇: PHP实现执行定时任务的几种思路详解
dwf_学海无涯
博客等级 码龄10年 42粉丝 14原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值