rstgroup / zf-consul-service-discovery-module
这是一个用于Zend Framework的模块,允许在Consul的服务发现中注册应用程序。
Requires
- php: ^5.6 || ^7.0
- rstgroup/service-discovery: ^1
- sensiolabs/consul-php-sdk: ^3
- webmozart/assert: ^1
- zendframework/zend-console: ^2.6
- zendframework/zend-modulemanager: ^2
- zendframework/zend-mvc-console: ^1.1
Requires (Dev)
- phpunit/phpunit: ^5.7
Suggests
- rstgroup/zf-local-config-module: To allow saving Consul URL in the configuration during postinstall stage.
This package is not auto-updated.
Last update: 2024-09-15 03:03:32 UTC
README
此模块提供了允许应用程序在Consul的服务发现中注册的逻辑。
需求
- PHP: 5.6 或 7.X
- 兼容ZF3的应用程序
- 可访问的Consul代理API
安装
使用Composer要求模块
composer require rstgroup/zf-consul-service-discovery-module
下一步是将模块添加到ZF系统配置(config/application.config.php
)中
return [ 'modules' => [ (...), 'RstGroup\ZfConsulServiceDiscoveryModule', ], (...) ]
.. 以及(可选,但我们强烈建议) - 安装 rstgroup/zf-local-config-module
。
配置
该模块需要以下内容
- Consul API URL
- 服务名称
- 服务ID (如果服务名称在同一Consul代理实例中不唯一)
示例配置
return [ 'rst_group' => [ 'service_discovery' => [ 'service_name' => 'my-service', 'service_id' => 'my-service-1', 'consul' => [ 'url' => 'http://consul-instance.loc:8500', 'check' => [ 'url' => 'http://my-service/check-endpoint', 'name' => 'check-endpoint', 'interval' => '30s', ], 'tags' => [ 'service', 'httpd', 'php' ], ], ], ], ];
最小配置
return [ 'rst_group' => [ 'service_discovery' => [ 'service_name' => 'my-service', 'consul' => [ 'url' => 'http://consul-instance.loc:8500', ], ], ], ];
我们建议使用
rstgroup/zf-external-config-module
在配置阶段传递rst_group.service_discovery.consul.url
键 - 因为基础设施配置不应存储在应用程序的仓库中。
如果您的服务将在多个实例中运行,那么在配置阶段也应传递其名称。
用法
该模块提供简单的命令来在Consul代理中注册/注销服务。这两个命令在运行不带参数的 php public/index.php
时都有描述。
在Consul代理中注册服务
在POST安装脚本中
-
(可选) 提供所需的Consul代理配置
php public/index.php local-config set rst_group.service_discovery.consul.url http://consul-instance.loc:8500
假设服务名称和ID已经在配置中。
请记住,此命令要求您安装
rstgroup/zf-external-config-module
。 -
注册服务
php public/index.php service-discovery consul register
注销服务
在POST卸载阶段
```bash
php public/index.php service-discovery consul deregister
```
运行带参数的命令
service-discovery consul register
命令定义了一系列可选属性,允许您覆盖存储在应用程序配置中的设置。您可以简单地通过输入来列出完整的用法信息
php public/index.php
以下是描述 zf-consul-service-discovery-module
命令的部分
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
RstGroup\ZfConsulServiceDiscoveryMod
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
ZF Service Discovery - Consul
index.php service-discovery consul register [--id=] [--name=] [--tags=] [--check] [--check-url=] [--check-name=] [--check-interval=] Register service in Consul Agent's Service Discovery.
--id= Override ID of service.
--name= Override name of service.
--tags= Override list of tags. Write tags as comma-separated list with no whitespaces.
--check If flag is set, the check is expected to be defined.
--check-url Override service's check URL
--check-name Override service's check name
--check-interval Override service's check interval
index.php service-discovery consul deregister [--id=] Deregister service in Consul Agent' Service Discovery.
--id= Override ID of service.