中文在线一区二区_欧美在线综合_久久久久久综合_欧美一区二区三区视频_国产免费看_国产福利精品一区

Consul 協程客戶端

EasySwoole 提供了一個協程安全的 Consul 協程版本客戶端,方便用戶做分布式的微服務開發。

組件要求

  • easyswoole/spl: ^1.1
  • easyswoole/http-client: ^1.2.5

安裝方法

composer require easyswoole/consul

倉庫地址

easy-swoole/consul

使用方式

  • 使用下面的接口方式,都需要先給 Consul 注入 Config 配置。
  • 接口只展示用法,具體的命名空間需要開發者自己引入
use EasySwoole\Consul\Config;
use EasySwoole\Consul\Consul;

// config默認  127.0.0.1:8500/v1
$config = new Config([
    'IP'       => '127.0.0.1',
    'port'     => '8500',
    'version'  => 'v1',
]);
$consul = new Consul($config);

// 兩種寫法,結果相同
$config = new Config();
$config->setIP('127.0.0.1');
$config->setPort('8500');
$config->setVersion('v1');    

$consul = new Consul($config);

ACLs

// Bootstrap ACLs
$bootstrap = new Bootstrap();
$this->consul->acl()->bootstrap($bootstrap);

// Check ACL Replication
$replication = new Replication();
$this->consul->acl()->replication($replication);

// Translate Rules
// Translate a Legacy Token's Rules
$translate = new Translate([
    'accessor_id' => $accessor_id
]);
$this->consul->acl()->translate($translate);

// Login to Auth Method
$login = new Login([
    "authMethod" => $authMethod,
    "bearerToken" => $bearerToken
]);
$this->consul->acl()->login($login);

// Logout from Auth Method
$logout = new Logout([
    'token' => $header['token']
]);
$this->consul->acl()->logout($logout);

Tokens

// Create a Token
$token = new Token([
    "description" => "Agent token for 'node1'",
    "Policies" => [
        ["ID" => "165d4317-e379-f732-ce70-86278c4558f7"],
        ["Name" => "node-read"],
    ],
    "Local" => false,
]);
$this->consul->acl()->token($token);

// Read a Token
$token = new Token([
    "AccessorID" => "6a1253d2-1785-24fd-91c2-f8e78c745511"
]);
$this->consul->acl()->readToken($token);

// Read Self Token
$self = new Token\GetSelf([
    'token' => "6a1253d2-1785-24fd-91c2-f8e78c745511"
]);
$this->consul->acl()->self($self);

// Update a Token
$update = new Token([
    'accessorID' => '6a1253d2-1785-24fd-91c2-f8e78c745511',
    "Description" => "Agent token for 'node1'",
    "Policies" => [],
    "local" => false
]);
$this->consul->acl()->updateToken($update);

// Clone a Token
$clone = new Token\CloneToken([
    'accessorID' => '8f246b77-f3e1-ff88-5b48-8ec93abf3e05',
    "description" => "Clone of Agent token for 'node1'",
]);
$this->consul->acl()->cloneToken($clone);

// Delete a Token
$delete = new Token([
    'AccessorID' => '8f246b77-f3e1-ff88-5b48-8ec93abf3e05'
]);
$this->consul->acl()->delete($delete);

// List Tokens
$token = new Tokens();
$this->consul->acl()->tokens($token);

Legacy Tokens

// Create ACL Token
$create = new Create([
    "Name" => "my-app-token",
    "Type" => "client",
    "rules" => "a"
]);
$this->consul->acl()->create($create);

// Update ACL Token
$update = new Update([
    "id" => "adf4238a-882b-9ddc-4a9d-5b6758e4159e",
    "Name" => "my-app-token-updated",
    "Type" => "client",
    "Rules" => "# New Rules",
]);
$this->consul->acl()->update($update);

// Delete ACL Token
$delete = new Destroy([
    'uuid' => '8f246b77-f3e1-ff88-5b48-8ec93abf3e05'
]);
$this->consul->acl()->destroy($delete);

// Read ACL Token
$info = new Info([
    'uuid' => '8f246b77-f3e1-ff88-5b48-8ec93abf3e05'
]);
$this->consul->acl()->info($info);

// Clone ACL Token
$cloneAclToken = new CloneACLToken([
    'uuid' => '8f246b77-f3e1-ff88-5b48-8ec93abf3e05'
]);
$this->consul->acl()->cloneAclToken($cloneAclToken);

// List ACLs
$getList = new Lists();
$this->consul->acl()->getList($getList);
$this->assertEquals('x','x');

Policies

// Create a Policy
$policy = new Policy([
    "Name" => "node-read",
    "Description" => "Grants read access to all node information",
    "Rules" => "node_prefix \"\" { policy = \"read\"}",
    "datacenters" => ["dc1"]
]);
$this->consul->acl()->policy($policy);

// Read a Policy
$policy = new Policy([
    'id' => 'c01a1f82-44be-41b0-a686-685fb6e0f485',
]);
$this->consul->acl()->readPolicy($policy);

// Update a Policy
$policy = new Policy([
    "ID" => "c01a1f82-44be-41b0-a686-685fb6e0f485",
    "Name" => "register-app-service",
    "Description" => "Grants write permissions necessary to register the 'app' service",
    "Rules" => "service \"app\" { policy = \"write\"}",
]);
$this->consul->acl()->updatePolicy($policy);

// Delete a Policy
$policy = new Policy([
    'id' => 'c01a1f82-44be-41b0-a686-685fb6e0f485'
]);
$this->consul->acl()->deletePolicy($policy);

// List Policies
$policies = new Policies();
$this->consul->acl()->policies($policies);

Roles

// Create a Role
$role = new Role([
    "name" => "example-role",
    "description" => "Showcases all input parameters",
]);
$this->consul->acl()->role($role);

// Read a Role
$role = new Role([
    'id' => 'aa770e5b-8b0b-7fcf-e5a1-8535fcc388b4'
]);
$this->consul->acl()->readRole($role);

// Read a Role by Name
$name = new Role([
    'name' => 'example-role'
]);
$this->consul->acl()->readRoleByName($name);

// Update a Role
$role = new Role([
    'id' => 'aa770e5b-8b0b-7fcf-e5a1-8535fcc388b4',
    "name" => "example-two",
]);
$this->consul->acl()->updateRole($role);

// Delete a Role
$role = new Role([
    'id' => 'aa770e5b-8b0b-7fcf-e5a1-8535fcc388b4'
]);
$this->consul->acl()->deleteRole($role);

// List Roles
$roles = new Roles();
$this->consul->acl()->roles($roles);

Auth Method

// Create an Auth Method
$method = new AuthMethod([
    "Name" => "minikube",
    "Type" => "kubernetes",
    "Description" => "dev minikube cluster",
    "Config" => [
        "Host" => "https://192.0.2.42:8443",
        "CACert" => "-----BEGIN CERTIFICATE-----\n...-----END CERTIFICATE-----\n",
        "ServiceAccountJWT" => "eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9..."
    ]
]);
$this->consul->acl()->authMethod($method);

// Read an Auth Method
$method = new AuthMethod([
    'name' => 'minikube',
]);
$this->consul->acl()->readAuthMethod($method);

// Update an Auth Method
$method = new AuthMethod([
    "Name" => "minikube",
    "Type" => "kubernetes",
    "Description" => "dev minikube cluster",
    "Config" => [
        "Host" => "https://192.0.2.42:8443",
        "CACert" => "-----BEGIN CERTIFICATE-----\n...-----END CERTIFICATE-----\n",
        "ServiceAccountJWT" => "eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9..."
    ]
]);
$this->consul->acl()->updateAuthMethod($method);

// Delete an Auth Method
$method = new AuthMethod([
    "Name" => "minikube",
]);
$this->consul->acl()->deleteAuthMethod($method);

// List Auth Methods
$method = new AuthMethods();
$this->consul->acl()->authMethods($method);

Binding Rules

// Create a Binding Rule
$bindingRule = new BindingRule([
    "description" => "example rule",
    "authMethod" => "minikube",
    "Selector" => "serviceaccount.namespace==default",
    "BindType" => "service",
    "BindName" => "{{ serviceaccount.name }}"
]);
$this->consul->acl()->bindingRule($bindingRule);

// Read a Binding Rule
$bindingRule = new BindingRule([
    'id' => '000ed53c-e2d3-e7e6-31a5-c19bc3518a3d',
]);
$this->consul->acl()->readBindingRule($bindingRule);

// Update a Binding Rule
$bindingRule = new BindingRule([
    'id' => '000ed53c-e2d3-e7e6-31a5-c19bc3518a3d',
    "Description" => "updated rule",
    "authMethod" => "minikube",
    "Selector" => "serviceaccount.namespace=dev",
    "BindType" => "role",
    "BindName" => "{{ serviceaccount.name }}",
]);
$this->consul->acl()->updateBindingRule($bindingRule);

// Delete a Binding Rule
$bindingRule = new BindingRule([
    'id' => '000ed53c-e2d3-e7e6-31a5-c19bc3518a3d',
]);
$this->consul->acl()->deleteBindingRule($bindingRule);

// List Binding Rules
$bindingRules = new BindingRules();
$this->consul->acl()->bindingRules($bindingRules);

Agent

// List Members
$this->consul->agent()->members(new Members([
    'wan' => 'a',
    'segment' => 'b',
]));

// Read Configuration
$self = new SelfParams();
$this->consul->agent()->self($self);

// Reload Agent
$reload = new Reload();
$this->consul->agent()->reload($reload);

// Enable Maintenance Mode
$maintenance = new Maintenance([
    'enable' => true,
    'reason' => 'whatever',
]);
$this->consul->agent()->maintenance($maintenance);

// View Metrics
$metrics = new Metrics([
    'format' => 'prometheus',
]);
$this->consul->agent()->metrics($metrics);

// Stream Logs
$monitor = new Monitor([
    'loglevel' => 'info',
]);
$this->consul->agent()->monitor($monitor);

// Join Agent
$join = new Join([
    'address' => '1.2.3.4',
    'wan' => false
]);
$this->consul->agent()->join($join);

// Graceful Leave and Shutdown
$leave = new Leave();
$this->consul->agent()->leave($leave);

// Force Leave and Shutdown
$forceLeave = new ForceLeave([
    'node' => 'consul'
]);
$this->consul->agent()->forceLeave($forceLeave);

// Update ACL Tokens
$token = new Token([
    'action' => 'acl_agent_token',
    'token' => 'token'
]);
$this->consul->agent()->token($token);

Checks

// List Checks
$checks = new Checks([
    'filter' => '',
]);
$this->consul->agent()->checks($checks);

// Register Check
$register = new Register([
    'name' => 'Memory_utilization', // 不可以出現空格或者其他url中不允許出現的特殊字符,否則取消注冊的check_id會報400 error
    "notes" => "Ensure we don't oversubscribe memory",
    "DeregisterCriticalServiceAfter" => "90m",
    "Args" => ["/usr/local/bin/check_mem.py"],
    "DockerContainerID" => "f972c95ebf0e",
    "Shell" => "/bin/bash",
    "HTTP" => "https://example.com",
    "Method" => "POST",
    "Header" => ["x-foo" => ["bar", "baz"]],
    "TCP" => "example.com:22",
    "Interval" => "10s",
    "TTL" => "15s",
    "TLSSkipVerify" => true,
]);
$this->consul->agent()->register($register);

// Deregister Check
$deRegister = new DeRegister([
    'check_id' => 'Memory_utilization'
]);
$this->consul->agent()->deRegister($deRegister);

// TTL Check Pass
$pass = new Pass([
    'check_id' => 'Memory_utilization',
    'note' => 'consul',
]);
$this->consul->agent()->pass($pass);

// TTL Check Warn
$warn = new Warn([
    'check_id' => 'Memory_utilization',
    'note' => 'consul',
]);
$this->consul->agent()->warn($warn);

// TTL Check Fail
$fail = new Fail([
    'check_id' => 'Memory_utilization',
    'note' => 'consul',
]);
$this->consul->agent()->fail($fail);

// TTL Check Update
$update = new Update([
    'check_id' => 'Memory_utilization',
    'Status' => 'passing',
    'Output' => 'update success'
]);
$this->consul->agent()->update($update);

Services

// List Services
$services = new Services([
    'filter' => '',
]);
$this->consul->agent()->services($services);

// Get Service Configuration
 $service = new Service([
    'service_id' => "consul"
]);
$this->consul->agent()->service($service);

// Get local service health
$name = new Name([
    'service_name' => 'consul',
    'format' => 'text',
]);
$this->consul->agent()->name($name);

// Get local service health by its ID
$id = new ID([
    'service_id' => 'consul',
    'format' => 'text',
]);
$this->consul->agent()->id($id);

// Register Service
 $register = new Service\Register([
    "ID" => "redis1",
    "name" => "redis",
    "Tags" => [
        "primary",
        "v1"
    ],
    "Address" => "127.0.0.1",
    "Port" => 8000,
    "meta" => [
        "redis_version" => "4.0",
    ],
    "EnableTagOverride" => false,
    "Check" => [
        "DeregisterCriticalServiceAfter" => "90m",
    "Args" => ["/usr/local/bin/check_redis.py"],
    "HTTP" => "http://localhost:5000/health",
    "Interval" => "10s",
    "TTL" => "15s"
    ],
    "weights" => [
        "Passing" => 10,
    "Warning" => 1
    ]
]);
$this->consul->agent()->serviceRegister($register);

// Deregister Service
$deregister = new Service\DeRegister([
    'service_id' => 'consul',
]);
$this->consul->agent()->serviceDeregister($deregister);

// Enable Maintenance Mode
$maintenance= new Service\Maintenance([
    'service_id' => 'consul',
    'enable' => true,
    'reason' => ''
]);
$this->consul->agent()->serviceMaintenance($maintenance);

Connect

// Authorize
$authorize = new Authorize([
    "target" => "db",
    "clientCertURI" => "spiffe://dc1-7e567ac2-551d-463f-8497-f78972856fc1.consul/ns/default/dc/dc1/svc/web",
    "clientCertSerial" => "04:00:00:00:00:01:15:4b:5a:c3:94"
]);
$this->consul->agent()->authorize($authorize);

// Certificate Authority (CA) Roots
$roots = new Roots();
$this->consul->agent()->roots($roots);

// Service Leaf Certificate
$leaf = new Leaf([
    'service' => 'consul'
]);
$this->consul->agent()->leaf($leaf);

Catalog

// Register Entity
$register = new Register([
    "datacenter" => "dc1",
    "id" => "40e4a748-2192-161a-0510-9bf59fe950b5",
    "node" => "foobar",
    "Address" => "192.168.10.10",
    "TaggedAddresses" => [
        "lan" => "192.168.10.10",
    "wan" => "10.0.10.10"
    ],
    "NodeMeta" => [
        "somekey" => "somevalue"
    ],
    "Service" => [
        "ID" => "redis1",
    "Service" => "redis",
    "Tags" => [
            "primary",
            "v1"
        ],
    "Address" => "127.0.0.1",
    "TaggedAddresses" => [
            "lan" => [
                "address" => "127.0.0.1",
        "port" => 8000,
      ],
      "wan" => [
                "address" => "198.18.0.1",
        "port" => 80
      ]
    ],
    "Meta" => [
            "redis_version" => "4.0"
    ],
    "Port" => 8000
    ],
    "Check" => [
        "Node" => "foobar",
    "CheckID" => "service:redis1",
    "Name" => "Redis health check",
    "Notes" => "Script based health check",
    "Status" => "passing",
    "ServiceID" => "redis1",
    "Definition" => [
            "TCP" => "localhost:8888",
      "Interval" => "5s",
      "Timeout" => "1s",
      "DeregisterCriticalServiceAfter" => "30s"
    ]
    ],
    "SkipNodeUpdate" => false
]);
$this->consul->catalog()->register($register);

// Deregister Entity
$deregister = new Deregister([
    "datacenter" => "dc1",
    "node" => "foobar",
    "CheckID" => "service:redis1",
]);
$this->consul->catalog()->deRegister($deregister);

// List Datacenters
$datacenters = new Datacenters();
$this->consul->catalog()->dataCenters($datacenters);

// List Nodes
$nodes = new Nodes([
    'dc' => 'dc1',
    'node-meta' => '',
    'near' => '',
    'filter' => '',
]);
$this->consul->catalog()->nodes($nodes);

// List Services
$nodes = new Nodes([
$services = new Services([
    'dc' => 'dc1',
    'node-meta' => '',
]);
$this->consul->catalog()->services($services);
]);
$this->consul->catalog()->nodes($nodes);

// List Nodes for Service
$services = new Services([
    'dc' => 'a',
    'node-meta' => 'b',
]);
$this->consul->catalog()->services($services);

// List Nodes for Connect-capable Service
$service = new Service([
    'service' => 'consul',
    'dc' => 'dc1',
    'tag' => '',
    'near' => '',
    'node-meta' => '',
    'filter' => '',
]);
$this->consul->catalog()->service($service);

// List Services for Node
$connect = new Connect([
    'service' => 'consul',
    'dc' => 'dc1',
    'tag' => '',
    'near' => '',
    'node-meta' => '',
    'filter' => '',
]);
$this->consul->catalog()->connect($connect);

// List Services for Node
$node = new Node([
    'node' => '2eb87046a6fe',
    'dc' => 'dc1',
    'filter' => '',
]);
$this->consul->catalog()->node($node);

Config

// Apply Configuration
$config = new \EasySwoole\Consul\Request\Config([
    'Kind' => 'service-defaults',
    'Name' => 'web',
    'Protocol' => 'Http'
]);
$this->consul->config()->config($config);

// Get Configuration
$config = new \EasySwoole\Consul\Request\Config([
    'Kind' => 'service-defaults',
    'name' => 'web',
]);
$this->consul->config()->getConfig($config);

// List Configurations
$config = new \EasySwoole\Consul\Request\Config([
    'Kind' => 'service-defaults'
]);
$this->consul->config()->listConfig($config);

// Delete Configuration
$config = new \EasySwoole\Consul\Request\Config([
    'Kind' => 'service-defaults',
    'name' => 'web',
]);
$this->consul->config()->deleteConfig($config);

Connect

Certificate Authority (CA)

// List CA Root Certificates
$roots = new Roots();
$this->consul->connect()->roots($roots);

// Get CA Configuration
$configuration = new Configuration();
$this->consul->connect()->configuration($configuration);

// Update CA Configuration
$configuration = new Configuration([
    'Provider' => 'consul',
    'Config' => [
        'LeafCertTTL' => '72h'
    ]
]);
$this->consul->connect()->updateConfiguration($configuration);

Intentions

// Create Intention
$intentions = new Intentions([
    'SourceName' => 'web',
    'DestinationName' => 'db',
    'SourceType' => 'consul',
    'action' => 'allow'
]);
$this->consul->connect()->intentions($intentions);

// Read Specific Intention
$intentions = new Intentions([
    'uuid' => 'e9ebc19f-d481-42b1-4871-4d298d3acd5c',
]);
$this->consul->connect()->readIntention($intentions);

// List Intentions
$intentions = new Intentions();
$this->consul->connect()->listIntention($intentions);

// Update Intention
$intentions = new Intentions([
    'uuid' => 'b40faaf3-34aa-349f-3cf2-f5d720240662',
    'description' => 'just a test description',
    'SourceName' => '',
    'DestinationName' => '',
    'Action' => 'allow'
]);
$this->consul->connect()->updateIntention($intentions);

// Delete Intention
$intentions = new Intentions([
    'uuid' => 'b40faaf3-34aa-349f-3cf2-f5d720240662',
]);
$this->consul->connect()->deleteIntention($intentions);

// Check Intention Result
$intentions = new Intentions\Check([
    'source' => 'web',
    'destination' => 'db',
]);
$this->consul->connect()->check($intentions);

// List Matching Intentions
$intentions = new Intentions\Match([
    'by' => 'source',
    'name' => 'web',
]);
$this->consul->connect()->match($intentions);

Coordinate

// Read WAN Coordinates
$datacenters = new Datacenters();
$this->consul->coordinates()->datacenters($datacenters);

// Read LAN Coordinates for all nodes
$nodes = new Nodes([]);
$this->consul->coordinates()->nodes($nodes);

// Read LAN Coordinates for a node
$node = new Node([
    'node' => '2456c2850382',
]);
$this->consul->coordinates()->node($node);

// Update LAN Coordinates for a node
$update = new Update([
    'dc' => 'dc1',
    'node' => '2456c2850382',
    'Segment' => 'update',
    "Coord" => [
        "Adjustment" => 0,
        "Error" => 1.5,
        "Height" => 0,
        "Vec" => [0, 0, 0, 0, 0, 0, 0, 0]
    ]
]);
$this->consul->coordinates()->update($update);

Events

// Fire Event
$fire = new Fire([
    'name' => 'consul',
    'dc' => 'dc1',
]);
$this->consul->event()->fire($fire);

// List Events
$listEvent = new ListEvent([
    'name' => 'consul',
]);
$this->consul->event()->listEvent($listEvent);

Health

// List Checks for Node
$node = new Node([
    'node' => '2456c2850382',
    'dc' => 'dc1',
]);
$this->consul->health()->node($node);

// List Checks for Service
$checks = new Checks([
   'service' => 'consul',
   'node_meta' => 'node-meta',
]);
$this->consul->health()->checks($checks);

// List Nodes for Service
$service = new Service([
    'service' => 'consul',
    'dc' => 'dc1',
]);
$this->consul->health()->service($service);

// List Nodes for Connect-capable Service
$connect = new Connect([
    'service' => 'consul'
]);
$this->consul->health()->connect($connect);

// List Checks in State
$state = new State([
    'state' => 'passing'
]);
$this->consul->health()->state($state);

KV Store

// Read Key
$kv = new Kv([
    'key' => 'my-key',
    'dc' => 'dc1',
]);
$this->consul->kvStore()->kv($kv);

// Create Key
$create = new kv([
    'key' => 'my-key',
    'dc' => 'dc1',
]);
$this->consul->kvStore()->create($create);

// Update Key
$update = new kv([
    'key' => 'my-key',
    'dc' => 'dc1',
]);
$this->consul->kvStore()->update($update);

// Delete Key
$delete = new Kv([
    'key' => 'my-key',
    'recurse' => false,
]);
$this->consul->kvStore()->delete($delete);

Operator

Area

// Create Network Area
$area = new Area([
    'PeerDatacenter' => 'dc1',
    "RetryJoin" => [ "10.1.2.3", "10.1.2.4", "10.1.2.5" ],
    "UseTLS" => false
]);
$this->consul->operator()->area($area);

// List Network Areas
$area = new Area([
    'dc' => 'dc1',
    'uuid' => '10275a2e-aa8f-2cf3-0adf-ff03d8950902',
]);
$this->consul->operator()->areaList($area);

// List Specific Network Area
$area = new Area([
    'dc' => 'dc1',
    'uuid' => '10275a2e-aa8f-2cf3-0adf-ff03d8950902',
]);
$this->consul->operator()->areaList($area);

// Update Network Area
$area = new Area([
    'uuid' => '10275a2e-aa8f-2cf3-0adf-ff03d8950902',
    'UseTLS' => true,
    'dc' => 'dc1',
]);
$this->consul->operator()->updateArea($area);

// Delete Network Area
$area = new Area([
    'uuid' => '10275a2e-aa8f-2cf3-0adf-ff03d8950902',
]);
$this->consul->operator()->deleteArea($area);

// Join Network Area
$area = new Area([
    'uuid' => '10275a2e-aa8f-2cf3-0adf-ff03d8950902',
]);
$this->consul->operator()->joinArea($area);

// List Network Area Members
$area = new Area([
    'uuid' => '10275a2e-aa8f-2cf3-0adf-ff03d8950902'
]);
$this->consul->operator()->membersArea($area);

Autopilot

// Read Configuration
$configuration = new Configuration([
    'dc' => 'dc1',
    'stale' => true,
]);
$this->consul->operator()->getConfiguration($configuration);

// Update Configuration
$configuration = new Configuration([
    'dc' => 'dc1',
    'stale' => true,
    "cleanupDeadServers" => true,
    "lastContactThreshold" => "200ms",
    "MaxTrailingLogs" => 250,
    "ServerStabilizationTime" => "10s",
    "RedundancyZoneTag" => "",
    "DisableUpgradeMigration" => false,
    "UpgradeVersionTag" => "",

]);
$this->consul->operator()->updateConfiguration($configuration);

// Read Health
$health = new Health([
    'dc' => 'dc1',
]);
$this->consul->operator()->health($health);

Keyring

// List Gossip Encryption Keys
$keyring = new Keyring();
$keyring->setRelayFactor(0);
$keyring->setLocalOnly(false);
$this->consul->operator()->getKeyring($keyring);

// Add New Gossip Encryption Key
$keyring = new Keyring([
    "Key" => "3lg9DxVfKNzI8O+IQ5Ek+Q==",
    'relayFactor' => 1,
]);
$this->consul->operator()->addKeyring($keyring);

// Change Primary Gossip Encryption Key
$keyring = new Keyring([
    "Key" => "3lg9DxVfKNzI8O+IQ5Ek+Q==",
]);
$this->consul->operator()->changeKeyring($keyring);

// Delete Gossip Encryption Key
$keyring = new Keyring([
    "Key" => "3lg9DxVfKNzI8O+IQ5Ek+Q==",
    "relayFactor" => 1
]);
$this->consul->operator()->deleteKeyring($keyring);

License

// Getting the Consul License
$license = new License([
    'dc' => 'dc1',
]);
$this->consul->operator()->getLicense($license);

// Updating the Consul License
$license = new License([
    'dc' => 'dc1'
]);
$this->consul->operator()->updateLicense($license);

// Resetting the Consul License
$license = new License([
    'dc' => 'dc1'
]);
$this->consul->operator()->resetLicense($license);

Raft

// Read Configuration
$raft = new \EasySwoole\Consul\Request\Operator\Raft\Configuration();
$this->consul->operator()->getRaftConfiguration($raft);

// Delete Raft Peer
$peer = new Peer([
    'address' => '172.17.0.18:8301',
    'dc' => 'dc1',
]);
$this->consul->operator()->peer($peer);

Segment

// List Network Segments
$segment = new Segment();
$this->consul->operator()->segment($segment);

Prepared Query

// Create Prepared Query
$query = new Query([
    "name" => "my-query",
    "Session" => "adf4238a-882b-9ddc-4a9d-5b6758e4159e",
    "Token" => "11",
    "Service" => [
        "Service" => "redis",
        "Failover" => [
            "NearestN" => 3,
            "Datacenters" => ["dc1", "dc2"]
         ],
        "Near" => "node1",
        "OnlyPassing" => false,
        "Tags" => ["primary", "!experimental"],
        "NodeMeta" => ["instance_type" => "m3.large"],
        "ServiceMeta" => ["environment" => "production"]
    ],
    "DNS" => [
        "TTL" => "10s"
    ],
]);
$this->consul->query()->query($query);

// Read Prepared Query
$query = new Query([
    'dc' => 'dc1'
]);
$this->consul->query()->readQuery($query);

// Update Prepared Query
$query = new Query([
    'uuid' => '90dce5ca-5697-ae2f-09ae-51e9542ea58c',
    'dc' => 'dc1',
]);
$this->consul->query()->updateQuery($query);;

// Read Prepared Query
$query = new Query([
    'dc' => 'dc1'
]);
$this->consul->query()->readQuery($query);

// Delete Prepared Query
$query = new Query([
    'uuid' => '90dce5ca-5697-ae2f-09ae-51e9542ea58c'
]);
$this->consul->query()->deleteQuery($query);;

// Execute Prepared Query
$execute = new Query\Execute([
    'uuid' => '90dce5ca-5697-ae2f-09ae-51e9542ea58c',
    'dc' => 'dc1',
]);
$this->consul->query()->execute($execute);

// Explain Prepared Query
$execute = new Query\Explain([
    'uuid' => '90dce5ca-5697-ae2f-09ae-51e9542ea58c',
    'dc' => 'dc1',
]);
$this->consul->query()->explain($execute);

Sessions

// Create Session
$create = new Create([
    'dc' => 'dc1',
    "LockDelay" => "15s",
    "Name" => "my-service-lock",
    "Node" => "foobar",
    "Checks" => ["a", "b", "c"],
    "Behavior" => "release",
    "TTL" => "30s",
]);
$this->consul->session()->create($create);

// Delete Session
$destroy = new Destroy([
    'uuid' => 'f32a15b3-1baa-c047-bde9-bec3015ea013',
    'dc' => 'dc1',
]);
$this->consul->session()->destroy($destroy);

// Read Session
$info = new Info([
    'uuid' => 'f32a15b3-1baa-c047-bde9-bec3015ea013',
    'dc' => 'dc1',
]);
$this->consul->session()->info($info);

// List Sessions for Node
$node = new Node([
    'node' => '2456c2850382',
    'dc' => 'dc1',
]);
$this->consul->session()->node($node);

// List Sessions
$sessionList = new SessionList([
    'dc' => 'dc1'
]);
$this->consul->session()->sessionList($sessionList);

// Renew Session
$renew = new Renew([
    'uuid' => '4f6d1cf6-b60a-c929-eeb8-12f4d7eaff62',
    'dc' => 'dc1'
]);
$this->consul->session()->renew($renew);

Snapshots

// Generate Snapshot
$generate = new Snapshot([
    'dc' => 'dc1',
    'stale' => 'true',
]);
$this->consul->snapshot()->generate($generate);

// Restore Snapshot
$restore = new Snapshot();
$this->consul->snapshot()->restore($restore);

Status

// Get Raft Leader
$leader = new Leader();
$this->consul->status()->leader($leader);

// List Raft Peers
$peers = new Peers([
    'dc' => 'dc1',
]);
$this->consul->status()->peers($peers);

Transactions

// Create Transaction
$transaction = new Txn([]);
$this->consul->transaction()->create($transaction);
$node = new Node([
    'node' => '44e4656a94cd',
    'dc' => 'dc1',
    'filter' => '',
]);
$consul->catalog()->node($node);
主站蜘蛛池模板: 亚洲一区有码 | 在线91 | 人人射| 一区二区三区在线看 | 99精品网站 | 日韩av福利| 国产精品视频播放 | 午夜精品一区二区三区在线观看 | 免费三片在线观看网站 | 一区二区三区四区日韩 | 国产高清在线不卡 | 亚洲天堂中文字幕 | 色综合天天综合网国产成人网 | 欧美精品一区二区三区在线 | 成人欧美亚洲 | 九九九久久久 | 最近2018年手机中文字幕版 | 亚洲精品二区三区 | 91精品国产91久久久久 | 操网| 亚洲精品在线观看网站 | 无码日韩精品一区二区免费 | 久久综合一区二区 | 久久久艹 | av免费观看网页 | 午夜精品久久久久久久久 | 久久青| 国产精品一区二区三区免费 | 精久久 | 876av国产精品电影 | 国产欧美一二三区在线粉嫩 | 精品视频二区 | 久久久久久综合 | 中文字幕三区 | 久久精品日产第一区二区三区 | 亚洲精品久久久一区二区三区 | 国产日韩欧美 | 精品久久一二三区 | 求av网站 | 亚洲精品久久久 | 中文久久 | 精品久久久久久久久久久 | 国产日韩欧美在线 | 国产美女久久 | 在线免费观看黄色 | 99中文字幕 | 久久久久久久久国产 | 日韩美女av在线 | 桃色视频在线播放 | 国产在线精品一区二区 | 日韩中文字幕无码一区二区三区 | 黄色小视频国产 | 精品国产91亚洲一区二区三区www | 久久精品成人免费视频 | 少妇精品久久久久久久久久 | 午夜视频免费在线观看 | 亚洲一区av | 99这里只有精品 | 亚洲国产婷婷香蕉久久久久久99 | 国产精品亚洲第一区 | 欧美午夜一区 | 国产激情在线观看 | 一区二区三区高清 | 免费一级片在线 | 精品在线播放 | 欧美第一视频 | 免费在线成人网 | 三级成人在线 | 亚洲蜜桃妇女 | 欧美国产精品一区二区三区 | 羞羞的视频在线 | 激情五月婷婷av | 黑人精品 | 日韩福利| 亚洲精品一区二区网址 | 亚洲精品永久视频 | 黄色美女网站免费 | 午夜精品久久久久久 | 国产综合亚洲精品一区二 | 中文字幕日本一区二区 | 亚洲国产精品一区二区三区 | 精品国产乱码久久久久久丨区2区 | 欧美一级二级三级视频 | a成人| 精品久久99 | 色综合天天综合网国产成人综合天 | 国产欧美精品区一区二区三区 | 黄色一级毛片免费看 | 精品日韩在线观看 | 久久综合久色欧美综合狠狠 | 国产精品99久久免费观看 | 久久精品视频免费观看 | 午夜精品视频 | 国产a视频 | 日韩色区 | 亚洲视频精品在线观看 | 高清久久| 欧美一区二区在线视频 | 免费一级毛片在线观看 | 日韩综合一区 | 国产精品久久久久久久久久妞妞 | 国产精品久久国产精品 | 国产视频1区2区 | 91国产精品 | 日韩欧美一二三 | 激情久久婷婷 | 亚洲精选久久 | 日韩精品视频在线播放 | 国产日韩欧美高清 | 成人免费视频网站在线观看 | 久久久久高清 | 欧美一区永久视频免费观看 | 久久香蕉国产视频 | 欧美,日韩,国产精品免费观看 | 五月婷婷在线观看视频 | 97伦理在线 | 国产一区二区三区久久 | 国产精品久久久久久亚洲调教 | 国产成人一级毛片 | 天天干天天干天天干天天射 | 99久久精品一区二区成人 | 天天操天天干视频 | 色噜噜狠狠狠综合曰曰曰88av | 成人精品久久久 | 福利片在线 | 久久亚洲国产 | 欧美综合影院 | 黄色一级网站视频 | 久久精品成人 | 成人精品在线观看 | 久久精品99久久 | 中文字幕av一区二区三区 | 精品一区二区三区免费视频 | 99久久视频 | 国产毛片久久久久 | 免费看国产片在线观看 | 国产一区二区三区在线免费观看 | 中文字幕在线观看一区二区三区 | 欧美视频在线播放 | 一本大道综合伊人精品热热 | 色玖玖综合 | 99久久婷婷| 一级看片 | 色爱区成人综合网 | 久久久国产精品一区 | 欧美国产日韩一区 | 美国理论 | 在线视频 亚洲 | 日韩欧美视频在线 | 中文字幕亚洲一区二区三区 | 91 在线免费观看 | 日韩欧美在线视频 | 婷婷综合久久 | 亚洲综合自拍 | 日本一区二区不卡 | 国产黄色a级 | 亚洲二区视频 | 综合网视频 | 91精品秘密在线观看 | 久久一级淫片 | 精品国产91乱码一区二区三区 | 久久久久久综合 | 精品成人一区二区 | 最近日本韩国高清免费观看 | 成年人综合网 | 国产最新视频 | 日韩精品一区二区在线观看 | 精品日韩一区 | 91网站在线看 | 亚洲成人一区二区 | 欧美一级免费看 | 欧美在线高清 | 日韩在线精品视频 | 亚洲a网 | 一区亚洲| 一级黄免费看 | 国产96在线视频 | 在线精品亚洲欧美日韩国产 | 一区二区三区精品视频免费看 | 国内精品久久久久久久影视红豆 | 亚洲美女久久 | 欧美大片免费在线观看 | 美女在线视频一区二区 | 久久精品电影 | 狼人综干网 | 欧美 日韩 中文 | 国产亚洲一区二区三区在线观看 | 欧美视频在线播放 | 中文字幕在线一区 | 久久精品99视频 | 国产成人精品免高潮在线观看 | 成人在线视频网站 | 色综合久久天天综合网 | av网站免费 | 久草视频免费看 | 国产日韩欧美精品 | 成人免费一区二区三区视频网站 | 国产精品一二区 | 亚洲人成网站在e线播放 | 亚洲视频免费观看 | 国产精品欧美一区二区 | 三级在线观看 | 亚洲人成网站b2k3cm | 精品亚洲一区二区 | 中文字幕黄色 | 亚洲午夜免费视频 | 国产精品国产三级国产aⅴ原创 | 国产伦精品一区二区三区四区视频 | 亚洲精品乱码久久久久膏 | 国产黄色免费网站 | 欧美黄色一区二区三区 | a久久| 亚洲欧美日韩国产 | 国产999精品久久久久 | 国产精品久久久久久久一区探花 | 亚洲不卡| 欧美一区永久视频免费观看 | 韩日一区二区 | 亚洲区视频在线观看 | 一a级毛片| 国产毛片久久久 | 亚洲怡红院在线观看 | 亚洲第一se情网站 | 国产不卡一区 | 寡妇激情毛片免费视频 | 中文在线一区二区 | 日本精品在线观看 | 国产精品久久久久久久久久大牛 | 欧美成人一区二区三区 | 亚洲在线观看免费视频 | 一级黄色国产视频 | 成人国产精品156免费观看 | 伊人www22综合色 | 中文字幕日韩在线视频 | 免费一级毛片在线播放放视频 | 欧美福利视频 | 久久久久久久国产精品 | 超碰在线免费福利 | 国产综合在线播放 | 一级黄色免费片 | 久久大陆| 制服诱惑一区二区 | 亚洲国产精 | 欧美日本韩国一区二区 | 99精品一区二区三区 | 一级毛片免费播放 | 一级毛片在线播放 | 欧美精产国品一二三区 | 久久免费一区 | 中国黄色视屏 | 中文字幕久久精品 | 开心久久婷婷综合中文字幕 | 蜜臀久久精品99国产精品日本 | 黄色av免费在线观看 | 97精品国产97久久久久久免费 | 精品一区二区电影 | 国产成人精品免费视频大全最热 | 日韩国产欧美视频 | 精品二区 | 岛国av免费 | 久久精品成人 | 国产精品美女久久久久久久久久久 | 国产精品乱码久久 | av网站在线播放 | www.亚色网.com | 久久久亚洲精 | 一区二区久久久 | 亚洲福利一区 | 久久精品一区二区国产 | 久久精品免费一区二区三区 | 夜夜视频 | 神马电影午夜 | 久久草在线视频 | 久久精品综合 | 色婷婷综合久色 | 色综合色综合 | 日韩欧美一级精品久久 | 国产色 | 欧美电影一区 | 91精品国产综合久久福利 | 日韩精品一区二区在线观看视频 | 欧美大片高清在线观看平台 | 中文精品一区二区 | 国产成人精品一区二区三区视频 | 精品久久精品久久 | 毛片aaa| 福利久久久 | 午夜精品福利一区二区三区蜜桃 | 国产有码 | 成人av片在线观看 | 久久久久久亚洲精品 | 91精品国产综合久久久久 | 午夜精品福利一区二区三区蜜桃 | 久久精品日产第一区二区三区 | 亚洲视频精品在线 | 亚洲免费成人av | 亚洲精品一区二区三区在线观看 | 日韩午夜一级片 | 亚洲欧美日韩国产综合精品二区 | 成人在线一区二区三区 | 黄色短视频在线观看 | 69久久 | 综合自拍 | 日本黄色一级 | 看毛片网| 国产又色又爽又黄又免费 | 久久精品国产一区二区三区不卡 | 91国内外精品自在线播放 | 亚洲视频三区 | 91午夜理伦私人影院 | 成人精品视频免费在线观看 | 日韩精品视频在线 | 黑人精品欧美一区二区蜜桃 | 日韩精品网站 | 国产高清视频一区 | 日本一区二区高清视频 | 午夜视频在线观看网站 | 国产精品久久久久久亚洲调教 | 午夜视频免费在线观看 | 亚洲在线电影 | 一本一本久久a久久精品综合妖精 | 亚洲精品久久久久中文字幕欢迎你 | 成人av播放| 成人福利| 国产97在线播放 | 一区二区免费在线视频 | 国产精品视频在线播放 | 国内自拍网站 | 在线成人免费电影 | 在线小视频国产 | 欧美精品不卡 | 99久久精品免费看国产一区二区三区 | 欧美精品一区三区 | 亚洲精品电影在线观看 | 日本黄色美女视频 | 一区二区电影 | 亚洲国产精品一区二区久久,亚洲午夜 | 久久综合久久久 | 久久免费一区 | 四季久久免费一区二区三区四区 | 久久综合一区 | 免费午夜视频 | 夜夜操av| 亚洲精品系列 | 中文字幕国产一区 | 亚洲高清视频在线观看 | 国产精品自产拍在线观看 | 91精品国产高清久久久久久久久 | 日韩日韩日韩日韩日韩日韩 | 狠狠干美女 | 久久久久久国产 | www.一区 | av不卡在线播放 | 欧美一区二区三区免费视频 | 亚洲国产一级 | 日韩中文字幕一区二区 | 国产精品美女久久久久久久久久久 | 动漫泳衣美女 | 精品护士一区二区三区 | 欧美一区二 | 国产视频1区 | 欧美在线影院 | 国产精品视频在线播放 | 国产精品美女久久久久久久网站 | 一级毛片免费播放 | 欧美一区二区三区久久精品 | 国产一区二区三区在线视频 | 亚洲精品电影在线观看 | 国内精品一区二区 | 中文字幕最新在线 | 天天影视网色香欲综合网无拦截 | 成人精品一区二区 | 在线国产一区二区 | 亚洲一区中文字幕 | 欧美天天| 久久久免费视频观看 | 一区二区不卡视频 | 久在线 | 中文字幕在线一区二区三区 | 亚洲a在线播放 | 国产精品免费av | 亚洲欧美在线播放 | 日韩免费视频 | 在线视频自拍 | 精品久久久久久久人人人人传媒 | 红杏首页 | 久久九九国产 | 成人免费视频网址 | 日本在线观看一区 | 久草福利在线视频 | 午夜视频在线 | 一区二区中文 | 午夜激情视频在线观看 | 寡妇少妇高潮免费看蜜臀a 午夜免费电影 | 久久黄视频 | 欧美日韩精品一区二区三区 | 99精品视频一区二区三区 | 亚洲成av人影片在线观看 | 在线欧美日韩 | 黄视频免费观看网站 | 青青操av在线 | 免费91视频 | 日韩中文一区二区三区 | 日韩欧美一区二区三区久久婷婷 | 欧美日韩在线观看一区二区 | 亚洲成人高清 | 毛片综合| 国产精品久久久久久吹潮 | 亚洲一区中文字幕在线观看 | 亚洲成人精品一区 | 成人国产精品 | 欧美午夜精品久久久久久浪潮 | 亚洲视频在线播放 | 婷婷久久综合 | 久久精品久久久久久 | 欧美日韩中文在线 | 国产在线网站 | 91免费在线视频 | 成人在线视频免费观看 | 日韩欧美一级 | 国产成人一区 | 日韩一区二区在线免费 | 国产精品视频播放 | 在线观看午夜 | 色a视频 | 亚州av| 日韩有码一区 | 亚洲精品日日夜夜 | 精品黄色 | 国产精品国产精品国产专区不卡 | 国产成人综合一区二区三区 | 日韩在线播放一区二区三区 | 激情五月婷婷综合 | 欧洲一区二区三区 | 色综合天天综合网国产成人网 | 在线观看亚洲精品 | 国产资源在线播放 | 秋霞av亚洲一区二区三 | 日韩欧美手机在线 | 国产一区二区视频在线 | 午夜视频网站 | 亚洲综合色成在线播放 | 久久99精品国产麻豆婷婷洗澡 | 国产永久免费在线观看 | 亚洲福利网站 | 亚洲一区在线日韩在线深爱 | 久久综合久久88 | 久久久国产一区二区 | 精品欧美乱码久久久久久 | 免费成人在线网站 | 国内精品久久久久 | 欧美一区二区在线刺激视频 | 91网在线观看 | 欧美日韩国产精品一区 | 精品国产91| 成人午夜精品一区二区三区 | 日韩国产中文字幕 | 久久精品美女 | 日本一区二区三区中文字幕 | 超碰人人操 | 在线一区 | 国产黄色av网站 | 一级片在线播放 | 中文字幕一区二区三区四区不卡 | 日韩av一区二区在线观看 | 韩日一区二区三区 | 精品视频在线观看 | 国产a视频| 欧美操穴 | 欧美精三区欧美精三区 | 国产成人自拍视频在线观看 | 尤物视频在线观看 | 亚洲一区二区三区免费看 | 不卡视频在线 | 久久久国产精品久久久 | 亚洲男人网 | 草草影院ccyycom| 91精品久久久久久久久 | 福利网在线 | 精品国产乱码久久久久久丨区2区 | 日韩中文字幕在线播放 | 精品成人在线视频 | 国产偷窥老熟盗摄视频 | 一二三区字幕免费观看av | 免费国产网站 | 五月天婷婷色综合 | 香蕉成人| 视频一区二区三区在线观看 | 亚洲在线精品视频 | 亚洲成人精品一区 | 国产精品视频久久 | 国产精品久久久久久久久免费桃花 | 日韩在线免费 | 久久久久久久一区 | 一级视频网站 | 亚洲综合自拍 | 中文字幕亚洲欧美日韩在线不卡 | jizz国产| 欧美激情一区二区三级高清视频 | 91视频.com | 欧美成人精品一区二区三区 | 久久av资源| 久久伊人亚洲 | 免费看黄色电影 | 欧美久久久久久 | 亚洲一区二区在线播放 | 成人h免费观看视频 | 天天干在线影院 | 日韩成人一区 | 欧洲亚洲精品久久久久 | 北条麻妃99 | 色狠狠一区二区三区香蕉 | 日韩av在线免费 | 91精品久久 | 一级黄片毛片 | a级片在线观看 | 亚洲免费片 | 国产精品久久久久久久久免费桃花 | 国产激情一区二区三区 | 中文字幕久久久 | 91高清视频| a级国产黄色片 | 亚洲精品99 | 久久国产精品一区 | 一区二区三区高清 | 在线激情视频 | 午夜精品久久久久久久久久久久 | 91麻豆精品国产91久久久更新资源速度超快 | 日本一区二区高清不卡 | 999久久久国产999久久久 | 在线观看国产精品一区 | 成人h免费观看视频 | 日韩视频精品在线 | 视频一区二区三区在线观看 | 久久免费精品视频 | 久久久久av | 精品国产三级 | 日日操天天操 | 日本特黄特色aaa大片免费 | 国产九九九 | av一级久久 | 黄视频免费 | 欧美精品第一页 | 一本一道久久精品综合 | 懂色一区二区三区av片 | 亚洲高清在线视频 | 伊人电影综合网 | 久久久亚洲国产天美传媒修理工 | 成人高清视频在线观看 | 国产精品久久久久久久免费大片 | 亚洲欧美高清 | 成年人在线观看 | 国产精品国产三级国产aⅴ 成人在线免费看 | 日韩欧美中文在线 | 四色成人av永久网址 | 伊人精品视频 | 91成人免费看 | 国产在线一区二区三区 | 日韩精品一区二区三区视频播放 | 欧美怡红院视频一区二区三区 | 青青草中文字幕 | 国产在线三区 | 国内外成人激情免费视频 | 国产欧美日韩免费 | 亚洲一区二区三区久久久 | 国外成人在线视频 | 成人a视频 | 99免费在线播放99久久免费 | 激情五月婷婷av | 欧美日韩亚洲一区二区 | 欧美日韩视频在线第一区 | 久久精品国产亚洲一区二区三区 | 久久久久久久成人 | 国产精品久久久 | 中文字幕一区二区三区四区 | 成人va在线观看 | 成人午夜精品一区二区三区 | 日本在线视频观看 | 欧美激情精品久久久久久黑人 | 国产精品久久久久国产a级 国产免费久久 | 日本天天操 | 天天亚洲综合 | 日韩精品一区二区三区在线 | av电影免费在线 | 精品国产乱码久久久久久1区2区 | 亚洲国产精品一区久久av篠田 | 免费亚洲网站 | 免费av观看 | 日韩精品专区 | 激情综合五月天 | 国产精品欧美一区二区三区不卡 | 成人在线精品 | 成人午夜免费视频 | 在线观看成人 | 欧美片网站免费 | 精品一区电影 | 国产成人一区 | av片在线观看 | 成人精品一区二区三区 | 欧美日韩精品在线 | 欧美日韩激情一区 | 日韩欧美在线综合网 | 中文字幕欧美日韩 | 狠狠躁夜夜躁人人爽天天天天97 | 中文字幕在线三区 | 狠狠干夜夜 | 国产乱码精品1区2区3区 | 日韩av免费在线观看 | 精品国产乱码久久久久久牛牛 | 一区二区欧美视频 | 久久h| 特级黄一级播放 | 久久噜噜噜精品国产亚洲综合 | 夜夜久久 | 亚洲综合大片69999 |