silver / yii2-etcd
Yii2 etcd 组件
1.1.0
2023-05-25 11:24 UTC
Requires
- php: ^8.0
- ext-curl: *
- google/protobuf: ^v3.11.4
- grpc/grpc: ^1.42.0
- guzzlehttp/guzzle: ^7.4.5
Requires (Dev)
- roave/security-advisories: dev-latest
- yiisoft/yii2: ^2.0.45
Suggests
- ext-grpc: Needed for the grpc protocol to work
README
用于 Yii2 框架
的与 etcd
(一个用于分布式系统中最关键数据的分布式、可靠的键值存储)交互的组件。
要求
- PHP: >= 8.0
- grpc - 用于 RPC
- protobuf - 用于 RPC
安装
composer require s1lver/yii2-etcd "^1.0.0"
或添加
"s1lver/yii2-etcd": "^1.0.0"
到您 composer.json 文件的 require 部分。
支持的 etcd API 版本
- v3
支持的 etcd 方法
主要
版本
KV
range
put
Auth
authenticate
如何使用
配置
$config = [ 'components' => [ 'etcd' => [ 'class' => \S1lver\Etcd\Etcd::class, 'host' => 'etcd:2379', 'user' => 'username', 'password' => 'password', ], ], ];
获取键值
Yii::$app->etcd->getKey('hello')->firstKeyValue; // Hello
获取 etcd 版本
Yii::$app->etcd->version; // {"etcdserver":"3.5.8","etcdcluster":"3.5.0"}
在支持的协议间切换
etcd v3 使用 gRPC 作为其消息协议。对于没有 gRPC 支持的语言,etcd 提供了一个 JSON gRPC 网关。该网关提供了一个 RESTful 代理,将 HTTP/JSON 请求转换为 gRPC 消息。
$config = [ 'components' => [ 'etcd' => [ 'class' => \S1lver\Etcd\Etcd::class, ... 'protocol' => '\S1lver\Etcd\EtcdProtocol::GRPC', // Default value \S1lver\Etcd\EtcdProtocol::HTTP ], ], ];