基于 Docker 的分布式应用的服务治理解决方案


最近在做公司内部的 PaaS 平台相关的工作,服务治理(注册、发现、路由等等)是必须实现的功能。看了一些解决方案
  • K8S 变化太快,不适合生产环境,基于 iptables 和环境变量的方式有服务启动顺序的限制,将要引入的 DNS 方式效果尚不知
  • Mesos + Marathon 大规模的应用很适合,对于中小规模显得有些过重
  • Spring Cloud 基于 Netflix 一系列开源项目,对于 Java + Spring 的项目来说十分友好,基于注释的远程服务调用可以做的很透明,但是上没有考虑 对 Docker 的支持(比如注册服务时没有考虑在 Docker 环境下如何获取 IP 和 Port)


对于这个问题,我对解决方案的要求是比较成熟稳定,部署使用不复杂。如果能对 Java 友好是再好不过。

我的一个打算是是否可以基于 Spring Cloud 做扩展。

不知各位有何建议
已邀请:

oilbeater - 北大学渣@灵雀云

赞同来自: 徐磊


目前来看 Mesos + Marathon 的组合现在是比较成熟的,部署相对也还好吧,不能算太复杂。

对 Spring Cloud 不是很了解,看了一下介绍感觉是个针对 Java 的框架,看相关的文档 http://spring.io/guides/gs/spring-boot-docker/ 对 docker 的整体支持貌似是要弱一些,题主是要自己做一个类似服务发现的机制去自动识别docker 容器在哪个 ip 和 端口提供服务么?如果利用这套框架网络用 host 方式直接映射端口到主机感觉应该也还好吧。

IT民工

赞同来自:


你可以使用flannal,calico等sdn网络方案,让每个容器都有独立的ip和完整地址空间

要回复问题请先登录注册