grpc-js-consul
v1.3.1
Published
![NPM](https://img.shields.io/npm/l/grpc-js-consul) [![npm](https://img.shields.io/npm/v/grpc-js-consul)](https://www.npmjs.com/package/grpc-js-consul) [![Build Status](https://drone.yoshino-s.xyz/api/badges/yoshino-s/grpc-js-consul/status.svg?ref=refs/he
Downloads
3
Readme
GRPC consul resolver
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.