config_center.php 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. <?php
  2. declare(strict_types=1);
  3. /**
  4. * This file is part of Hyperf.
  5. *
  6. * @link https://www.hyperf.io
  7. * @document https://hyperf.wiki
  8. * @contact group@hyperf.io
  9. * @license https://github.com/hyperf/hyperf/blob/master/LICENSE
  10. */
  11. use Hyperf\Codec\Packer\JsonPacker;
  12. use Hyperf\ConfigAliyunAcm\AliyunAcmDriver;
  13. use Hyperf\ConfigApollo\ApolloDriver;
  14. use Hyperf\ConfigApollo\PullMode;
  15. use Hyperf\ConfigCenter\Mode;
  16. use Hyperf\ConfigEtcd\EtcdDriver;
  17. use Hyperf\ConfigNacos\Constants;
  18. use Hyperf\ConfigNacos\NacosDriver;
  19. use Hyperf\ConfigZookeeper\ZookeeperDriver;
  20. use Hyperf\Support\Network;
  21. use function Hyperf\Support\env;
  22. return [
  23. 'enable' => (bool) env('CONFIG_CENTER_ENABLE', true),
  24. 'driver' => env('CONFIG_CENTER_DRIVER', 'apollo'),
  25. 'mode' => env('CONFIG_CENTER_MODE', Mode::PROCESS),
  26. 'drivers' => [
  27. 'apollo' => [
  28. 'driver' => ApolloDriver::class,
  29. 'pull_mode' => PullMode::INTERVAL,
  30. 'server' => 'http://127.0.0.1:9080',
  31. 'appid' => 'test',
  32. 'cluster' => 'default',
  33. 'namespaces' => [
  34. 'application',
  35. ],
  36. 'interval' => 5,
  37. 'strict_mode' => false,
  38. 'client_ip' => Network::ip(),
  39. 'pullTimeout' => 10,
  40. 'interval_timeout' => 1,
  41. ],
  42. 'nacos' => [
  43. 'driver' => NacosDriver::class,
  44. 'merge_mode' => Constants::CONFIG_MERGE_OVERWRITE,
  45. 'interval' => 3,
  46. 'default_key' => 'nacos_config',
  47. 'listener_config' => [
  48. // dataId, group, tenant, type, content
  49. // 'nacos_config' => [
  50. // 'tenant' => 'tenant', // corresponding with service.namespaceId
  51. // 'data_id' => 'hyperf-service-config',
  52. // 'group' => 'DEFAULT_GROUP',
  53. // ],
  54. // 'nacos_config.data' => [
  55. // 'data_id' => 'hyperf-service-config-yml',
  56. // 'group' => 'DEFAULT_GROUP',
  57. // 'type' => 'yml',
  58. // ],
  59. ],
  60. 'client' => [
  61. // nacos server url like https://nacos.hyperf.io, Priority is higher than host:port
  62. // 'uri' => '',
  63. 'host' => '127.0.0.1',
  64. 'port' => 8848,
  65. 'username' => null,
  66. 'password' => null,
  67. 'guzzle' => [
  68. 'config' => null,
  69. ],
  70. // Only support for nacos v2.
  71. 'grpc' => [
  72. 'enable' => false,
  73. 'heartbeat' => 10,
  74. ],
  75. ],
  76. ],
  77. 'aliyun_acm' => [
  78. 'driver' => AliyunAcmDriver::class,
  79. 'interval' => 5,
  80. 'endpoint' => env('ALIYUN_ACM_ENDPOINT', 'acm.aliyun.com'),
  81. 'namespace' => env('ALIYUN_ACM_NAMESPACE', ''),
  82. 'data_id' => env('ALIYUN_ACM_DATA_ID', ''),
  83. 'group' => env('ALIYUN_ACM_GROUP', 'DEFAULT_GROUP'),
  84. 'access_key' => env('ALIYUN_ACM_AK', ''),
  85. 'secret_key' => env('ALIYUN_ACM_SK', ''),
  86. 'ecs_ram_role' => env('ALIYUN_ACM_RAM_ROLE', ''),
  87. ],
  88. 'etcd' => [
  89. 'driver' => EtcdDriver::class,
  90. 'packer' => JsonPacker::class,
  91. 'namespaces' => [
  92. '/application',
  93. ],
  94. 'mapping' => [
  95. // etcd key => config key
  96. '/application/test' => 'test',
  97. ],
  98. 'interval' => 5,
  99. 'client' => [
  100. # Etcd Client
  101. 'uri' => 'http://127.0.0.1:2379',
  102. 'version' => 'v3beta',
  103. 'options' => [
  104. 'timeout' => 10,
  105. ],
  106. ],
  107. ],
  108. 'zookeeper' => [
  109. 'driver' => ZookeeperDriver::class,
  110. 'server' => env('ZOOKEEPER_SERVER', '127.0.0.1:2181'),
  111. 'path' => env('ZOOKEEPER_CONFIG_PATH', '/conf'),
  112. 'interval' => 5,
  113. ],
  114. ],
  115. ];