grpc-js-consul
TypeScript icon, indicating that this package has built-in type declarations

1.3.1 • Public • Published

GRPC consul resolver

NPM npm Build Status

Feature less and easy-to-use resolver which return endpoints for service from the Hashicorp Consul and watch for the changes.

This library is not production ready and may not always save backward-compatibility

Quick Start

For using resolving endpoints from your Hashicorp Consul just import this library with import {register} from "grpc-js-consul", call register() and pass valid connection string to the address.

Connection string

consul://127.0.0.127:8500/my-service?[=]&[wait=]&[near=]&[insecure=]&[limit=]&[tag=]&[token=]

Parameters:

Same as consul api

Name Format default Description
tag string undefined Select endpoints only with this tag
passing true/false false Return only endpoints which pass all health-checks
wait as in time.ParseDuration undefined Wait time for watch changes. Due this time period endpoints will be force refreshed
insecure true/false undefined Allow insecure communication with Consul
near string undefined Sort endpoints by response duration. Can be efficient combine with limit parameter default: "_agent"
limit int undefined Limit number of endpoints for the service
timeout as in time.ParseDuration undefined Http-client timeout
token string undefined Consul token
dc string undefined Consul datacenter to choose
stale true/false false Allow stale results from the agent. https://www.consul.io/api/features/consistency.html#stale
consistent true/false false RequireConsistent forces the read to be fully consistent. This is more expensive but prevents ever performing a stale read.

Example

See here or in test

import { credentials } from "@grpc/grpc-js";

import { register } from "grpc-js-consul";

import { EchoClient } from "./idls/hello_grpc_pb";

register();

const client = new EchoClient("consul://host.docker.internal:8500/hello",
  credentials.createInsecure(),
  {
    "grpc.service_config": JSON.stringify({
      loadBalancingConfig: [
        {
          round_robin: {},
        },
      ],
    }),
  }
);

//...

License

MIT-LICENSE. See LICENSE or the LICENSE file provided in the repository for details.

Readme

Keywords

none

Package Sidebar

Install

npm i grpc-js-consul

Weekly Downloads

2

Version

1.3.1

License

MIT

Unpacked Size

106 kB

Total Files

18

Last publish

Collaborators

  • yoshino-s