服务注册

RPC 启动的时候,可以配置是否启动的时候注册到第三方比如 consul/etcd ,使用服务也可通过第三方获取。

初始化配置

.env 中配置是否启动注册 RPC服务,默认false,如果配置true,必须配置服务提供方

  1. AUTO_REGISTER=false

服务提供方

通常情况可以不用配置,系统已经配置了默认值

配置文件:./config/beans/base.php

  1. return [
  2. // ......
  3. 'providerSelector' => [
  4. 'class' => \Swoft\Sg\ProviderSelector::class,
  5. 'provider' => 'consul',
  6. 'providers' => [
  7. 'consul' => \Swoft\Sg\Provider\ConsulProvider::class
  8. ]
  9. ],
  10. // ......
  11. ];
  12. - provider 配置服务提供方,默认consul
  13. - providers 配置自定义服务,通过KEY名称使用

Consul服务方配置

Consul 服务提供方,在.env./config/properties/provider.php都可以配置,但是env会覆盖properties

env

  1. # Consul
  2. CONSUL_ADDRESS=http://127.0.0.1
  3. CONSUL_PORT=8500
  4. CONSUL_REGISTER_NAME=user
  5. CONSUL_REGISTER_ETO=false
  6. CONSUL_REGISTER_SERVICE_ADDRESS=127.0.0.1
  7. CONSUL_REGISTER_SERVICE_PORT=8099
  8. CONSUL_REGISTER_CHECK_NAME=user
  9. CONSUL_REGISTER_CHECK_TCP=127.0.0.1:8099
  10. CONSUL_REGISTER_CHECK_INTERVAL=10
  11. CONSUL_REGISTER_CHECK_TIMEOUT=1

properties

  1. return [
  2. 'consul' => [
  3. 'address' => '',
  4. 'port' => 8500,
  5. 'register' => [
  6. 'id' => '',
  7. 'name' => '',
  8. 'tags' => [],
  9. 'enableTagOverride' => false,
  10. 'service' => [
  11. 'address' => 'localhost',
  12. 'port' => '8099',
  13. ],
  14. 'check' => [
  15. 'id' => '',
  16. 'name' => '',
  17. 'tcp' => 'localhost:8099',
  18. 'interval' => 10,
  19. 'timeout' => 1,
  20. ],
  21. ],
  22. 'discovery' => [
  23. 'name' => 'user',
  24. 'dc' => 'dc',
  25. 'near' => '',
  26. 'tag' =>'',
  27. 'passing' => true
  28. ]
  29. ],
  30. ];
  • 参数具体含义,参考 Consul 相关文档