PHPackages                             leoxml/hyperf-rocketmq - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. leoxml/hyperf-rocketmq

ActiveLibrary

leoxml/hyperf-rocketmq
======================

hyperf rocketmq sdk

v1.0.1(1y ago)010MITPHPPHP &gt;=8.0

Since Nov 29Pushed 1y agoCompare

[ Source](https://github.com/leoxml/hyperf-rocketmq)[ Packagist](https://packagist.org/packages/leoxml/hyperf-rocketmq)[ Docs](https://github.com/leoxml/hyperf-rocketmq.git)[ RSS](/packages/leoxml-hyperf-rocketmq/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependencies (11)Versions (3)Used By (0)

hyperf\_rocketmq
================

[](#hyperf_rocketmq)

基于阿里云 rocketmq SDK 封装，实现了协程、连接池、消息可靠投递 等功能

> 该库来源于： [https://gitee.com/easy\_code/hyperf-rocketmq](https://gitee.com/easy_code/hyperf-rocketmq)

### 1、安装

[](#1安装)

```
composer require leoxml/hyperf-rocketmq
```

### 2、配置

[](#2配置)

#### 发布配置

[](#发布配置)

```
php bin/hyperf.php vendor:publish leoxml/hyperf-rocketmq
```

#### 配置说明

[](#配置说明)

配置类型默认值备注hoststringHTTP协议客户端接入点access\_keystringAccessKey IDsecret\_keystringAccessKey Secretinstance\_idstring实例idpoolarray连接池配置```
return [
    'default' => [ // 分组名，基于 host、port、scheme 进行区分
        'host' => env('ROCKETMQ_HTTP_HOST'),
        'access_key' => env('ROCKETMQ_HTTP_ACCESS_KEY_ID'),
        'secret_key' => env('ROCKET_MQ_HTTP_ACCESS_KEY_SECRET'),
        'instance_id' => env('ROCKET_MQ_HTTP_INSTANCE_ID'),
        'pool' => [
            'min_connections' => 50,
            'max_connections' => 300,
            'connect_timeout' => 3.0,
            'wait_timeout' => 30.0,
            'heartbeat' => -1,
            'max_idle_time' => 60.0,
        ],
    ],
];
```

### 3、创建相关数据表

[](#3创建相关数据表)

> 如果不需要记录日志 或 消息不需要可靠投递，可以忽略这步

```
php bin/hyperf.php migrate --path=migrations/rocketmq
```

表说明：

rocketmq\_status\_log：消息生产状态表

rocketmq\_produce\_status\_log：生成消息状态

rocketmq\_consume\_log：消费日志

### 4、投递消息

[](#4投递消息)

Producer注解参数

字段名类型描述默认值poolNamestring连接池名称。对应配置文件 rocketmq.php 中的keydefaultdbConnectionstring数据库连接名称（用于记录生产日志）defaulttopicstringtopic无messageKeystring消息key随机生成messageTagstring消息标签无#### 4.1 定义生产者相关信息

[](#41-定义生产者相关信息)

在 DemoProducer 文件中，我们可以修改 `@Producer` 注解对应的字段来替换对应的 `poolName`、`topic`、`messageTag`。就是最终投递到消息队列中的数据，所以我们可以随意改写 `__construct` 方法，只要最后赋值 `payload` 即可。

> 使用 `@Producer` 注解时需 `use Leoxml\RocketMQ\Annotation\Producer;` 命名空间；

```
setPayload($data);
        // 自定义messageKey（不定义，会自动生成）
        $this->setMessageKey('xxxxx');
    }
}
```

#### 4.2 普通投递方式

[](#42-普通投递方式)

通过`Leoxml\RocketMQ\Producer`实例，即可投递消息。

```
