Articles of 微服务

在NodeJs微服务体系结构中,我应该使用每个服务的package.json吗?

我目前正在开发一个NodeJs中的微服务架构。 我的第一个方法是每个服务的package.json 。 尽pipe访问公共区域(使用日志logging或数据库实用程序)对于所有微服务来说可能非常棘手。 例如: common-area > logger.js package.json – install module typeorm service1 > app.js – use logger.js package.json – also install module typeorm 当运行node app.js (服务1)时,我们最终加载了2个typeorm模块,一旦我们做了两个不同的安装,一个在公共区域(logging器使用),另一个在service1。 我应该只使用一个package.json ,对于所有的微服务,只产生一个node_modules文件夹?

NodeJS微服务,结合数据

我正在构build一个由几个核心“部分”(用户,消息和交易信号)组成的NodeJS平台。 所以我的想法是为他们每个人创build微服务,并且工作得很好..但是我无法理解如何在微服务之间“join”数据(我是一个最初的前哨者) 例如,我有3个微服务。每个都有自己的MongoDB,在它自己的机器上完成隔离。想象一下从一个微服务中检索消息的常见情况,消息有一个'user_id',我需要用户名和profilePicture将在检索到的消息对象中进行组合。 我读了很多关于使用Redis的信息,但是对我来说,这看起来像是一个“消息传递”服务,而不是一个“结合”服务。谁能帮助我度过黑暗? 谢谢!! 我知道这是一个非常普遍的问题,但是当我们把多个微服务的数据结合起来的时候,我却无法掌握'最佳实践'。

在两个NodeJS微服务之间共享自定义代码

我正在为该应用程序创buildWeb应用程序和micorservice,并且都需要使用Sequelize创build相同的数据库模型。 用NodeJS来处理这个任务的方法是什么? 我正在考虑创build我的数据库模型的单独模块,并将其保存在私有混帐中,并将此私有混帐添加到我的Web应用程序和微服务中,作为npm依赖项。 但我想知道是正确的方法或什么是正确的方式来分离less数微服务之间的共享私人模块,在我的情况下,它是数据库模型? 我应该干还是不干? 提前致谢!

API网关示例node.js

寻找一个很好的例子来说明如何为微服务应用程序实现一个节点API网关,我明白有一个网关的目的,我只是不知道如何实现这一点,而不只是添加另一级别的RESTful路由调用。 对我来说,一个网关应该把路线引导到微服务。 API网关端口3000 router.use('/microservicename/*', function (req, res, next) { **code that will direct to microservice** }); Microservice1 server.js端口3001 var express = require('express'); var app = express(); var routes = require('./routes/routes'); app.use('/microservicename', routes); var server = app.listen(3001, function () { console.log('Server running at http://127.0.0.1:3001/'); }); Microservice1 router.js(3001) router.get('/route1', function (req, res, next) { //get route code […]

使用Docker扩展微服务

我已经创build了一个Node.js(Meteor)应用程序,并且正在研究未来处理扩展的策略。 我已经将我的应用程序devise为一组微服务,现在我正在考虑在生产中实现这一点。 然而,我想要做的是在一个服务器实例上运行许多微服务,以便在使用less量资源的同时最大限度地利用资源。 我知道容器是有用的,但我很好奇,如果有一种方法来创build一个dynamic缩放集合的地方,我可以: 编写命令,如“如果运行这个应用程序的容器达到> 80%的CPU /其他限制指标,则在此服务器上提供另一个应用程序容器”, 如果需要额外的容器,提供和准备其他服务器, 这些容器之间的负载均衡连接(这是否会影响服务器负载平衡,例如,发送较less的连接到容器较less的服务器?) 我已经研究过AWS EC2,Docker Compose和nginx,但是我不确定我是否正确地朝着正确的方向前进。

微服务通信

我实际上在研究微服务,而且我正面临一个问题。 上下文 我正在开发两个微服务: 基于Spring的用户pipe理,带有MySQL数据库 规划pipe理,基于SQL Server数据库的ASP.NET。 这个服务的唯一访问点是API列出了一些RESTFUL端点,例如/planning/{day}/{userId} or /planning/{startDate}/{endDate}/{idUser} 账单pipe理,基于MongoDB的Node.Js。 问题 我可以做什么,只允许通过用户服务访问计划信息,而不需要两个服务? 知道计划服务可以在其他地方稍后访问,但不是现在。 如何从MySQL数据库访问与用户对应的账单服务的账单信息? 我知道微服务不耦合,这一点是杀了我,因为它必须耦合在一个没有? 像在帐单中引用idUser一样? 否则,我怎么能知道我的API应该公开哪些账单? 更确切地说,微服务如何在它们之间进行通信,而不被耦合呢? 如何从其他服务中创build身份validation而不重复身份validation服务的身份validation请求?

你可以使用Hapi.JS作为微服务框架吗?

我已经看到了最近关于微服务( http://martinfowler.com/articles/microservices.html )的各种有趣的演讲,也想知道我们如何将这些概念与Hapi.JS一起使用。 邮件在线(地球上最大的在线报纸)的首席技术官检查HAPI及其与微服务有关的插件系统: http://www.nearform.com/nodecrunch/how-node-js-has-revolutionized-the-mailonline 一个微服务架构被使用,这是受到Fred George的启发,这个架构与hapi插件架构略有不同,构build应用程序以便随时可以维护,这是未来的一个关键挑战,微服务是解决scheme这个。 MailOnline也是Joyent(内部部署SDC和公共云)的重要用户。 还有一些专门为微服务设置的新节点框架(senecajs.org) 有没有人看到任何案例研究(理想的教程)利用哈皮这种方式?

NodeJS中的微服务体系结构

我正在做一个侧面项目,并且我重新devise了我的Skelton项目作为微服务,到目前为止我还没有find任何遵循这种模式的开源项目。 经过大量的阅读和search,我总结了这个devise,但我仍然有一些问题和想法。 这是我的问题和想法: 如何使API网关足够聪明,以加载请求,如果我从同一个微服务2节点? 如果其中一个微服务是closures的发现应该知道? 有没有类似的实现? 我的devise是对的吗? 我应该使用尤里卡还是类似的东西?

如何从Node.js中的不同应用程序注入模块

我有两个节点应用程序/服务一起运行,1.主应用程序2.第二个应用程序 主应用程序负责显示来自不同应用程序的所有数据。 现在我把第二个应用程序的一些代码放在主应用程序中,现在它的工作,但我希望它是分离的。 我的意思是说,secnod应用程序的代码将不会在主应用程序(通过某种方式注入运行时) 像第二个服务注册到主应用程序注入它的代码。 它的代码只是两个模块,是否有可能在nodejs中做到这一点? const Socket = require('socket.io-client'); const client = require("./config.json"); module.exports = (serviceRegistry, wsSocket) =>{ var ws = null; var consumer = () => { var registration = serviceRegistry.get("tweets"); console.log("Service: " + registration); //Check if service is online if (registration === null) { if (ws != null) { ws.close(); ws = […]

我应该在(Docker)容器中永远使用/ pm2吗?

我正在重构一些node.js服务。 他们都曾经在虚拟服务器上forever开始,如果进程崩溃,他们只是重新启动。 现在,转向容器化和无状态的应用程序结构,我认为这个过程应该退出,容器应该在失败时重新启动。 那是对的吗? 有好处还是坏处?