假设您开发了一个具有多个服务的系统(由不同的团队在不同的国家实现,使用不同的技术,包括java、php、c#、c++等)。让我们假设,尽管使用了不同的技术,但您还是同意使用RESTful API进行集成。
这样的系统需要服务注册吗?
我理解这基本上不是强制性的,因为每个服务都可能有它所使用的服务所在的自己的配置。但是,创建一个中心位置可以简化操作:它们不需要多次配置相同的服务。
但是创建一个服务注册中心可能很复杂。这是解决方案中的另一个系统,它需要资源,甚至更重要的所有权。谁会拥有它?
我可以考虑更多服务注册的利弊。你怎么看?
发布于 2012-04-29 21:48:09
在您所描述的复杂系统中,我要说,该系统的配置至少与任何单独的组件一样重要,即使不是更重要。在我的经验中,当我工作的复杂系统不能工作时,导致故障的是配置,而不是任何单独的组件。我喜欢用的一个类比是锁:只有当所有的滚筒正确地对齐时,它才会打开。
因此,我建议您在使正确的配置易于设置、监视和部署方面投入大量精力。是否使用单独的服务注册中心或其他机制取决于您。最近,我开始将配置信息打包为从中央存储库安装的Debian包(我们使用Ubuntu)。其他人则使用第三方系统,如ZooKeeper。
因此,要回答您的具体问题,有条件的是有一个服务注册中心。合格是因为管理系统的确切形式不如拥有管理系统,并且使用得好。它的所有者应该是负责一个正常运行的系统的同一个人或组。这可能是开发人员自己(一个DevOps组织),也可能是一个专门的运营团队(更传统的)。系统的初始设置应该是与参与配置规范的所有涉众共同努力。一旦完成,小组或人员就可以处理实现了。
https://softwareengineering.stackexchange.com/questions/146505
复制相似问题