2

我对在 Spring 和 NodeJs 这两种不同环境中设计微服务很感兴趣。虽然在 Spring 中很容易找到关于 Netflix Eureka 的大量资源(它可能是 Consul 中的第一名),但在 NodeJs 中,我发现了更多允许微服务自行通信的机会,而且没有办法。

以下是一些设计微服务架构的方法:

  • 代码或配置文件中的静态 IP/端口映射
  • 通过 DNS
  • 服务发现(Eureka/Consul)
  • P2P(像区块链?)[还有塞内卡?]

关于 youtube 上的 NodeJs,你可以找到很多视频,其中一个引起我注意的是 seneca 的父亲 Richard Rodger 的视频,标题为“NodeJs microservices without a registry”。seneca 的问题在于,要使其正常工作,您需要一个基础/主要微服务,在我看来,它看起来像是服务发现,因为所有其他微服务都必须知道它的 ip 和端口。

来自作者网站

目前,我们的实现仍然依赖于“众所周知的”入口点。您必须在预定位置运行一些基本节点,以便微服务知道在哪里加入网络——彼得正在为我们修复那个,很快网络将完全自我管理。

或许 Peter 做完之后应该是一个 P2P 微服务架构,微服务的知识会通过 SWIM 协议传播,对吗?

另一个区别是 Seneca 使用模式匹配在微服务之间转发消息,但它总是通过基本/主微服务。

没有服务注册表的 Seneca,它本身不是服务注册表(知道 TAGS 以及它们在哪里而不是 IP)?

抱歉没有代码,但我目前仍然处于理论环境中。

4

0 回答 0