用于微服务架构的Node.js?所需的工具,框架和技术?

时间:2019-04-19 11:51:23

标签: node.js express microservices service-discovery api-gateway

我必须在微服务架构中创建一个电子商务平台。 因此,我需要以下帮助:

  1. Api网关。我应该使用Express做自己的网关,还是使用Express-gateway或kong等现有工具?
  2. 发现服务。即使将服务部署到诸如netlify或heroku之类的Paas中,也有必要使用发现服务吗?如果是这样,那我应该使用.. eureka,consul,etdc,skyDNS?
  3. 服务之间进行通信的最佳方式?是否应该使用axios / fetch对其他服务进行通常的api调用。或使用cloudAMPQ或其他任何方法发送的消息?像grpc吗?
  4. 交易? Saga的Command / Orchestration是任何示例还是开放源代码项目?事件驱动的事务,所以在哪里/如何创建事务?我应该使用socket.io创建另一个Express应用程序,并连接其他服务来监听事件。还是有任何通用的方法可以做到这一点?
  5. senecajs,分子分子我应该使用这些框架还是编写自己的代码。

尽管Internet上有足够的资源来学习Java语言的微服务,但找不到适用于Node.js的良好整合资源。

那么,有没有一篇很好的教程或文章或开源项目,其中涵盖了有关使用nodejs的微服务世界的详细信息?

我们非常感谢您的帮助:)。

感谢与问候

2 个答案:

答案 0 :(得分:1)

1)express-gateway使您的项目更快,并且比手工制作的api-gatway更灵活

2)docker-swarm使微服务更强大,并可能在单独部署服务时带来更大的灵活性。

3)连接到外部服务的所有过程都需要代码重构,例如,您需要安装redis package以便在服务之间传输数据,并使用Google Remote Procedure Call来设置连接策略。您的选择取决于您的知识。我更喜欢使用框架来自动处理它们,例如KOA或Nestjs

4)与处理事件驱动的事务相比,我更喜欢在所有服务中使用包装器来订阅消息队列(例如redis和进行连接)。

5)每个框架都有内置的服务体系结构。很难处理内部架构和整个项目服务策略(正是在senecajs中)

答案 1 :(得分:0)

关于nodejs微服务:https://hackernoon.com/creating-simple-api-gateway-using-node-js-6d5933c214b8

还有用于nodejs微服务的工具:http://senecajs.org/

实际上,这里有很多资源,当您投入更多资源时,您会发现自己更可取的发展方式。祝你好运。