hyperf/docs/zh-tw/nacos.md
2023-02-18 06:40:54 +08:00

1.8 KiB
Raw Blame History

Nacos

一個 NacosPHP 協程客戶端,與 Hyperf 的配置中心、微服務治理完美結合。

安裝

composer require hyperf/nacos

釋出配置檔案

php bin/hyperf.php vendor:publish hyperf/nacos
<?php

declare(strict_types=1);

return [
    // 無法使用 IP 埠形式的開發者,直接配置 url 即可
    // 'url' => '',
    'host' => '127.0.0.1',
    'port' => 8848,
    'username' => null,
    'password' => null,
    'guzzle' => [
        'config' => null,
    ],
];

服務與例項

當前元件仍然保留了之前提供的服務註冊功能。

只需要安裝 hyperf/service-governance-nacos 元件,然後配置以下監聽器和自定義程序即可。

Hyperf\ServiceGovernanceNacos\Listener\MainWorkerStartListener Hyperf\ServiceGovernanceNacos\Listener\OnShutdownListener Hyperf\ServiceGovernanceNacos\Process\InstanceBeatProcess

然後增加如下配置,以監聽 Shutdown 事件

  • config/autoload/server.php
<?php
use Hyperf\Server\Event;
return [
    // ...other
    'callbacks' => [
        // ...other
        Event::ON_SHUTDOWN => [Hyperf\Framework\Bootstrap\ShutdownCallback::class, 'onShutdown']
    ]
];

阿里雲服務鑑權

當使用阿里雲的 Nacos 服務時,可能需要使用 AK 和 SK 鑑權Nacos 元件對其進行了原生支援,我們可以方便的增加對應配置,如下:

<?php

declare(strict_types=1);

return [
    // nacos server url like https://nacos.hyperf.io, Priority is higher than host:port
    // 'uri' => 'http://127.0.0.1:8848/',
    // The nacos host info
    'host' => '127.0.0.1',
    'port' => 8848,
    // The nacos account info
    'username' => null,
    'password' => null,
    'access_key' => 'xxxx',
    'access_secret' => 'yyyy',
    'guzzle' => [
        'config' => null,
    ],
];