docker - 微服务架构最佳实践
问题描述
我不知道这是否是解决这个问题的正确平台,无论哪种方式,我都在涉足微服务,虽然时间不长,但已经进入了一段时间,并且停留在正确的架构上,或者更确切地说,是最佳实践:
哪个更好,为什么将微服务架构应用程序的所有服务都放在一个 docker 中并并行运行多个容器,或者让每个服务在它们自己的 docker 容器中运行(每个 docker 可以在多个实例中运行)?
PS服务不一定要使用docker运行
解决方案
在单独的容器中运行每个服务。
微服务的一个关键目标是解耦不同组件的发布周期,从而解耦业务单元。为此,必须为每个微服务使用单独的图像。
其次,理想情况下,Docker 容器应该只在前台运行一个进程,因为编排器会查看该进程以帮助管理容器生命周期。为了方便起见,有时我会在同一个容器中运行辅助进程,但最好将它们设置为“sidecar 容器”。将多个服务放在一个容器中意味着流程监控 - 重新启动等现在是您的问题,而不是编排器的问题。
最后,为每个服务使用单独的容器将允许它们独立扩展,因此如果您需要 100 个服务 A 的实例来处理负载,您不必同时运行 100 个服务 B、C 和 D 的实例。
推荐阅读
- c++ - SPOJ 问题 ADDREV - 添加反转数字(考虑到我的代码,我得到了一个错误的答案,这很荒谬......)
- c# - 如何将 VB.Net 12 中的多行追加合并为单个 AppendFormat
- java - java - 如何使用retrofit2在java中使用@POST正确执行服务
- php - 如何在两天内按小时获取数据?(谷歌分析报告 API v4,PHP 库)
- python - Flask 视图引发“AttributeError:‘函数’对象没有属性”
- javascript - 使用 Redux Thunk 在 React Redux 应用程序中使用异步调用保持 DRY
- php - 如何测试 Ajax FAIL 处理程序
- eclipse - GitHub 使用 Eclipse 推送和提交
- java - 创建媒体播放器时出错;Java、安卓工作室
- python - 如何让调试器单步执行整个程序?