Skip to content

dubbo-js/dubbo-registry

Repository files navigation

dubbo-registry

dubbo registry

NPM version build status Test coverage David deps Known Vulnerabilities npm download

Introduction

Dubbo Registry Client & Server Nodejs Implement

  • Configurable service discovery and registry
  • Pluggable loadbalancing, currently round robin provided
  • Disaster recovery
  • ...

image

Install

$ npm install dubbo-registry --save

API

  • RegistryServer

    • new RegistryServer(options)
      • {Number} port - the listening port
      • {Protocol} protocol - the exchange protocol, default is dubbo protocol
      • {Logger} logger - the logger instance, default is console
    • * close() shutdown the server
  • RegistryClient

    • new RegistryClient(options)
      • {String} address - registry server address, sush as 127.0.0.1:9090
      • {String} [defaultPort] - default port is 9090, you can override it
      • {String} [username] - registry server login username
      • {String} [password] - registry server login password
      • {Protocol} protocol - the exchange protocol, default is dubbo protocol
      • {String} appName - the application name
      • {Logger} logger - the logger instance, default is console
    • * close() shutdown the client
    • subscribe(reg, listener) subscribing service addresses
      • {Object} reg
        • {String} interfaceName - service interfaceName, for example: 'com.test.TestService'
        • {String} version - service version
        • {String} group - service group
      • {Function} listener - the addresses change listener
    • unSubscribe(reg, listener) cancel subscribing service
      • {Object} reg
        • {String} interfaceName - service interfaceName, for example: 'com.test.TestService'
        • {String} version - service version
        • {String} group - service group
      • {Function} listener - the addresses change listener
    • publish(reg) publishing a service
      • {Object} reg
        • {String} interfaceName - service interfaceName, for example: 'com.test.TestService'
        • {String} version - service version
        • {String} group - service group
        • {String} url - service url

Usage

A simple server

const { Server: RegistryServer } = require('dubbo-registry');
const server = new RegistryServer({ port: 9090 });

server.ready(() => {
  console.log('server is ready');
});

Client publish a service

const { Client: RegistryClient } = require('dubbo-registry');
const client = new RegistryClient({
  address: `127.0.0.1:9090`,
  appName: 'test',
});

client.publish({
  interfaceName: 'com.demo.DemoService',
  version: '1.0.0',
  url: 'dubbo://127.0.0.1:12200/com.demo.DemoService',
});

Client subscribe a service

const { Client: RegistryClient } = require('dubbo-registry');
const client = new RegistryClient({ port: 9090 });

const client = new RegistryClient({
  address: `127.0.0.1:12200`,
  appName: 'test',
});

client.subscribe({
  interfaceName: 'com.demo.DemoService',
  version: '1.0.0',
}, addresses => {
  console.log('service addrs => ', addresses);
});