1.0.4 • Published 1 year ago

egg-consul3 v1.0.4

Weekly downloads
-
License
MIT
Repository
github
Last release
1 year ago

egg-consul3

NPM version Node.js CI Test coverage npm download

Consul plugin for Egg.js v2 and v3.

NOTE: This plugin just for integrate Consul into Egg.js, more documentation please visit https://www.consul.io.

Install

$ npm i egg-consul3 --save

Enable

// {app_root}/config/plugin.js
exports.consul = {
  enable: true,
  package: 'egg-consul3',
};

Configuration

// {app_root}/config/config.default.js
exports.consul = {
  client: {
    // 注册本服务
    register: false,
    // 应用正常下线反注册
    deregister: true,
    // consul server 主机
    host: '127.0.0.1',
    // consul server 端口
    port: 8500,
    // 调用服务的策略(默认选取 random 具有随机性)
    strategy: 'random',
  },
  service: {
    id: null,
    name: null,
    tags: [],
    address: null,
    port: 7001,
    // others consul service definition
  },
};

see config/config.default.js for more detail.

As a client

For example, as client A, we need to call the interface of service B. Then we first find out the healthy service of B and then make an http request.

Here, for the convenience of understanding, we simulate the successful service that has just been registered:

const service = await app.consul.balancer.getServiceBalancer().select('my-test-service');

// output
console.log(service);
{
  ID: 'a8aed15d-fd37-3f1f-81c1-d169d52439ab',
  Node: '621b00c40467',
  Address: '127.0.0.1',
  Datacenter: 'dc1',
  TaggedAddresses: {
    lan: '127.0.0.1',
    lan_ipv4: '127.0.0.1',
    wan: '127.0.0.1',
    wan_ipv4: '127.0.0.1'
  },
  NodeMeta: { 'consul-network-segment': '' },
  ServiceKind: '',
  ServiceID: 'my-test-service:192.168.1.103:21010',
  ServiceName: 'my-test-service',
  ServiceTags: [],
  ServiceAddress: '192.168.1.103',
  ServiceTaggedAddresses: {
    lan_ipv4: { Address: '192.168.1.103', Port: 21010 },
    wan_ipv4: { Address: '192.168.1.103', Port: 21010 }
  },
  ServiceWeights: { Passing: 1, Warning: 1 },
  ServiceMeta: {},
  ServicePort: 21010,
  ServiceSocketPath: '',
  ServiceEnableTagOverride: false,
  ServiceProxy: { Mode: '', MeshGateway: {}, Expose: {} },
  ServiceConnect: {},
  CreateIndex: 1771,
  ModifyIndex: 1771
}

Questions & Suggestions

Please open an issue here.

License

MIT

1.0.4

1 year ago

1.0.3

1 year ago

1.0.2

1 year ago

1.0.1

1 year ago

1.0.0

1 year ago