phpkafka
phpkafka copied to clipboard
PHP Kafka client is used in PHP-FPM and Swoole. PHP Kafka client supports 50 APIs, which might be one that supports the most message types ever.
* 你遇到了什么问题? 在swoole服务中, kafka生产者每过一段时间就报错 * Kafka 环境是自建还是云服务? 自建 * 请执行下面的命令获取环境信息。 > `php -v & php --ri swoole & composer info | grep longlang/phpkafka` ``` PHP 7.4.25 (cli) (built: Oct 19...
* 你遇到了什么问题? prod.ERROR: Invalid length 352518912 given, it should be lesser than or equals to 5242880 {"exception":"[object] (longlang\\phpkafka\\Exception\\SocketException(code: 0): Invalid length 352518912 given, it should be lesser than or equals...
如题
修复 swoole client starRecvCo 设置了exception callback 时会死循环 ✅ Closes: #64
* 问题代码&修复方案 // SwooleClient.php ```php private function startRecvCo(): void { $this->coRecvRunning = true; $this->recvCoId = true; $this->recvCoId = Coroutine::create(function () { while ($this->coRecvRunning) { try { $data = $this->socket->recv(4, -1);...
似乎默认是latest了,不知道在哪里修改
设置的minBytes为1024 * 1024 maxBytes为5 * 1024 * 1024,但每次fetch后响应的records里都只有1条记录。 详情看下边截图,kafka中的每条消息都只有十几字节  
* What problem did you encounter? PHP Fatal error: Uncaught longlang\phpkafka\Exception\KafkaErrorException: [35] The version of API is not supported. in /src/vendor/longlang/phpkafka/src/Protocol/ErrorCode.php:385 Stack trace: #0 /src/vendor/longlang/phpkafka/src/Util/KafkaUtil.php(69): longlang\phpkafka\Protocol\ErrorCode::check() #1 /src/vendor/longlang/phpkafka/src/Group/GroupManager.php(111): longlang\phpkafka\Util\KafkaUtil::retry() #2...
* 你遇到了什么问题? 在新起的消费者组如果在broker端没有对应的消费位移的话,默认从offset为0开始消费,但分区前面的数据可能过期被删除了 对应的offset可能不是从0开始的 fetchMessage时候会报out_of_range,这时候看代码里获取了一次分区提交的最新偏移量从最新的消息开始消费。这样不能自己配置在新起消费者后是从头消费还是从最新的消息开始消费。 后期是否可以加一个功能,java版的是auto.offset.reset 对应的配置是earliest/latest,如果在broker里找不到对应的消费位移的话 就会根据这个配置 去取分区最早的偏移量或者最新的偏移量,这样可以在新起了消费者组后配置是从头开始消费还是从最新的消息开始消费。 * Kafka 环境是自建还是云服务? 自建 * 请执行下面的命令获取环境信息。 > `php -v & php --ri swoole & composer info | grep longlang/phpkafka` ``` #...