registry.php¶

文件位置¶

resource/config/$ENV/registry.php

配置作用¶

服务注册中心配置:服务注册,服务发现,服务订阅

配置内容(新配置,用于替代nova和haunt配置文件)¶

  1. <?php
  2.  
  3. return [
  4. "enable" => true,
  5.  
  6. // registry 类型
  7. "type" => "etcd", // haunt
  8.  
  9. // -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  10. // 服务发现与订阅
  11.  
  12. // 服务发现配置
  13. "discovery" => [
  14. "timeout"=> 3000,
  15. "loop_time" => 1000, //worker定时器任务执行时间(判断是否已拉取到服务)
  16. ],
  17.  
  18. //监听服务变更配置 worker#0
  19. "watch" => [
  20. "timeout" => 30000, // etcd watch 长轮询超时时间
  21. "loop_time" => 5000, //worker定时器任务执行时间(判断执行watch的worker是否live)
  22. ],
  23.  
  24. //监听apcu服务列表变更配置 worker#1...n
  25. "watch_store" => [
  26. "loop_time" => 1000, //worker定时器任务执行时间(判断本地的服务列表是否变化)
  27. ],
  28.  
  29. // -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  30. // 服务拉取
  31.  
  32. // 配置从注册中心拉取的服务名称
  33. "app_names" => [
  34. // "tcp-demo"
  35. ],
  36.  
  37. // 配置从注册中心拉取服务的协议(暂时只能是nova)与命名空间(域)
  38. "app_configs" => [
  39. "tcp-demo" => [
  40. "protocol" => "nova",
  41. 'namespace' => 'com.test.service',
  42. ],
  43. ],
  44.  
  45. // -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  46. // 服务发布
  47.  
  48. // 发布单组 nova 服务
  49. "novaApi" => [
  50. //nova-service的vendor目录,直到gen-php
  51. "path" => "vendor/nova-service/nova-demo/sdk/gen-php",
  52. //gen-php文件夹对应的namespace
  53. "namespace" => "Com\\Youzan\\Demo\\",
  54.  
  55. // 可选, 默认 com.youzan.service, 配置服务发布到 具体的域, 与app_configs.${$app_name}.namespace 对应
  56. "domain" => 'com.youzan.service',
  57. // 可选, 默认Application::getName(), 配置服务发布的 应用名
  58. "appName" => "tcp-demo",
  59. // 可选, 目前恒等于 nova
  60. "protocol" => "nova",
  61. ],
  62.  
  63. // 发布多组 nova 服务
  64. /*
  65. "novaApi" => [
  66. [
  67. "path" => "vendor/nova-service/xxx/gen-php",
  68. "namespace" => "Com\\Youzan\\Xxx\\",
  69. "domain" => "com.youzan.service", // 可选, 默认 com.youzan.service, 配置服务发布到 具体的域
  70. "appName" => "Xxx", // 可选, 默认Application::getName(), 配置服务发布的 应用名
  71. "protocol" => "nova", // 可选, 目前恒等于 nova
  72. ],
  73. [
  74. "path" => "vendor/nova-service/yyy/gen-php",
  75. "namespace" => "Com\\Youzan\\Yyy\\",
  76. "domain" => "com.youzan.service", // 可选, 默认 com.youzan.service, 配置服务发布到 具体的域
  77. "appName" => "Yyy", // 可选, 默认Application::getName(), 配置服务发布的 应用名
  78. "protocol" => "nova", // 可选, 目前恒等于 nova
  79. ],
  80. ],
  81. */
  82.  
  83. // -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  84. // etcd
  85.  
  86. // 配置etcd集群节点, 可配置多个
  87. "etcd" => [
  88. "nodes" => [
  89. [
  90. "host" => "127.0.0.1",
  91. "port" => 2379,
  92. ],
  93. ],
  94. ],
  95.  
  96. "haunt" => [
  97.  
  98. ],
  99. ];

注意¶

原本 nova.php haunt.php 配置全部合并到 registry.php, 兼容旧配置

注册的服务发现列表需要确保已经成功注册至etcd

原文: http://zanphpdoc.zanphp.io/config/registry.html