sellerlabs / consul-php-sdk
此包已被废弃,不再维护。未建议替代包。
与 consul.io API 通信的 SDK。从 life360/consul-php-sdk 分支而来
v1.2.3
2016-01-28 17:50 UTC
Requires
- guzzlehttp/guzzle: ~6.0
- psr/log: ~1.0
This package is not auto-updated.
Last update: 2020-01-24 16:13:46 UTC
README
安装
此库可以使用 composer 安装
composer require sellerlabs/consul-php-sdk
用法
使用此 SDK 的简单方法是实例化服务工厂
$sf = new SellerLabs\Consul\ServiceFactory();
然后,可以从这个工厂检索服务
$kv = $sf->get('kv');
然后,服务暴露了一些来自 consul API 的方法
$kv->put('test/foo/bar', 'bazinga'); $kv->get('test/foo/bar', ['raw' => true]); $kv->delete('test/foo/bar');
所有服务方法遵循相同的约定
$response = $service->method($mandatoryArgument, $someOptions);
- 所有 API 必要参数都放在第一位;
- 所有 API 可选参数直接映射自
$someOptions
; - 所有方法返回原始 guzzle 响应。
因此,如果您想获取一个独占锁
// Start a session $sessionId = $session->create()->json()['ID']; // Lock a key / value with the current session $lockAcquired = $kv ->put( 'tests/session/a-lock', 'a value', ['acquire' => $sessionId] ) ->json(); if (false === $lockAcquired) { $session->destroy($sessionId); echo "The lock is already acquire by another node.\n"; exit(1); } echo "Do you jobs here...."; sleep(5); echo "End\n"; $kv->delete('tests/session/a-lock'); $session->destroy($sessionId);
可用服务
- agent
- catalog
- health
- kv
- session
一些实用工具
- 锁处理程序:实现分布式锁的简单类