https://github.com/zcong1993/grpc-etcd-resolver
etcd resolver for @grpc/grpc-js
https://github.com/zcong1993/grpc-etcd-resolver
etcd grpc grpc-node grpc-resolver
Last synced: about 1 month ago
JSON representation
etcd resolver for @grpc/grpc-js
- Host: GitHub
- URL: https://github.com/zcong1993/grpc-etcd-resolver
- Owner: zcong1993
- License: mit
- Created: 2021-03-19T08:01:07.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2021-09-13T10:49:07.000Z (over 4 years ago)
- Last Synced: 2026-04-22T04:42:16.053Z (about 2 months ago)
- Topics: etcd, grpc, grpc-node, grpc-resolver
- Language: TypeScript
- Homepage:
- Size: 158 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# grpc-etcd-resolver
[](https://npmjs.com/package/@zcong/grpc-etcd-resolver) [](https://npmjs.com/package/@zcong/grpc-etcd-resolver)
> etcd resolver for @grpc/grpc-js
## Install
```bash
$ yarn add @zcong/grpc-etcd-resolver
# or npm
$ npm i @zcong/grpc-etcd-resolver --save
```
## Usage
### server
```ts
const serviceName = 'test'
const main = async () => {
const server = new grpc.Server()
server.addService(HelloService, helloServer)
const addr = `0.0.0.0:${process.env.PORT ?? '8080'}`
const etcd = new Etcd3()
// register service addr to etcd
register(etcd, serviceName, addr)
server.bindAsync(addr, grpc.ServerCredentials.createInsecure(), () => {
server.start()
})
}
```
### client
```ts
const serviceName = 'test'
const main = async () => {
const etcd = new Etcd3()
// setup etcd resolver
setupEtcdResolver(etcd)
const c = new HelloClient(
`${EtcdScheme}:///${serviceName}`, // use service name with EtcdScheme
grpc.credentials.createInsecure(),
{ 'grpc.service_config': '{"loadBalancingConfig": [{"round_robin": {}}]}' } // use round_robin lb
)
}
```
## License
MIT © zcong1993