背景
在当今互联网时代,服务化架构已经成为业界的趋势,很多应用采用微服务架构来提高应用的弹性和可扩展性。而微服务要想运转,必须需要服务治理的支持。
Netflix开源了一套集服务治理、服务发现、负载均衡于一体的组件Eureka。在使用Eureka时,我们通常会选择使用resilient-eureka包,它是Eureka Java 客户端的 Node.js 替代方案,封装了对 Eureka 的注册发现能力。
这篇文章将会详细介绍如何使用 npm 包 resilient-eureka。
环境要求
- Node.js 环境
- Eureka 服务注册中心
安装
$ npm install resilient-eureka
使用
初始化
-- -------------------- ---- ------- ----- ------ - ---------------------------- ----- ------ - --- -------- --------- - ---- --------------- --------- ------------ ------- ------------- -------------- ----------------------------- ----- - -- ----- ----------- ----- -- ----------- --------------- --------------- - --------- --------------------------------------------------------- ----- -------- -- -- ------- - ----- -------------- ----- --- ------------ ---------------- -- ---
其中,eureka
属性包含了 Eureka 注册中心的信息,instance
属性包含了要注册服务的信息。
启动
eureka .start() .then(() => console.log('Eureka client started!')) .catch(console.error);
停止
eureka .stop() .then(() => console.log('Eureka client stopped!')) .catch(console.error);
注册服务
eureka.register();
注销服务
eureka.deregister();
获取服务
eureka.getInstancesByAppId('SERVICE_NAME') .then((instances) => console.log(instances)) .catch(console.error);
服务发现
监听 Eureka 服务发现事件
eureka.on('registryUpdated', (apps) => console.log('Apps updated', apps));
注意事项
instance
属性的port
字段,传入的值需要包含$
和@enabled
两个属性,例如:{ $: 3000, '@enabled': true }
。服务的注册与注销必须在
start
调用之后才能执行。getInstancesByAppId
方法返回的是一个 Promise。
总结
通过 npm 包 resilient-eureka,我们可以轻松地将我们的 Node.js 应用实现服务注册、服务发现等能力。在实际应用中,我们需按照实际情况进行配置。希望这篇文章能够帮助到需要的读者,同时欢迎大家指正不足之处。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60056c9781e8991b448e6093