silver/yii2-etcd

Yii2 etcd 组件

安装次数: 25

依赖者: 0

建议者: 0

安全: 0

星标: 0

关注者: 2

分支: 1

开放问题: 1

类型:yii2-extension

1.1.0 2023-05-25 11:24 UTC

This package is auto-updated.

Last update: 2024-09-10 23:03:48 UTC


README

Latest Stable Version Total Downloads Reliability Rating Security Rating Maintainability Rating Coverage

用于 Yii2 框架 的与 etcd(一个用于分布式系统中最关键数据的分布式、可靠的键值存储)交互的组件。

https://etcd.io

要求

  • 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
        ],
    ],
];