我将在我的应用程序中实现一组微服务的编排。两个广泛使用的工具我发现与Apache Zookeeper和Netflix Eureka。
任何人都可以根据基本差异给我一个比较,这两项服务有哪些?
还有其他强大的工具吗?
答案 0 :(得分:11)
另一个工具可能是Consul。
Eureka主要是一种服务发现工具,主要用于在AWS基础架构内部使用。
Zookeeper是一个通用的分布式键/值存储,可以与curator-x-discovery framework
一起用于服务发现以下是简要的overview of service-discovery solutions
您还可以在此处找到Consul vs Eureka vs Zookeeper的比较。
尽管Consul和zookeeper一样 - 不仅可以用于发现,而且可以用作键/值存储,Consul的优点是开箱即用的酷服务发现功能
此外,consul具有更多的分布式特性:代理程序安装在所有服务VM上,因此系统具有比zookeeper更高的可用性。 请注意,领事系统有low coupling between datacenters。
Zookeeper很成熟,但太通用了。因此,您不仅可以将zookeeper用于服务发现,还可以用于存储配置,分布式锁,通知等。同样,使用Curator Framework / Curator Recipes可以方便地使用所有这些功能。
Zookeeper正在群集中的节点之间使用主/从通信架构。硕士由集群成员选举产生。请注意,当群集中出现1个主服务器时,可能存在边缘情况(例如,由于网络问题)。在这种情况下,重新启动群集有帮助。
Eureka与Zookeeper和Consul的区别在于Eureka是一个狭隘的系统 - 服务发现和负载均衡系统。
所有3个系统都可以与Spring集成。
答案 1 :(得分:11)
我将在我的应用程序中实现一组微服务的编排。
这是一个难以自行解决的问题。您最好使用现有的业务流程系统(见下文)。
还有其他强大的工具吗?
你应该研究kubernetes,这似乎是编配这些天的标准。它具有许多额外的好处(实现可扩展性,自我修复等),并且在当今的生产中被广泛使用。请参阅以下链接:
关于比较zookeeper,eureka和kubernetes: