首页 > 代码库 > 总结下微服务

总结下微服务

1.什么是微服务架构?
    微服务是指开发一个单个 小型的但有业务功能的服务,每个服务都有自己的处理和轻量通讯机制,可以部署在单个或多个服务器上。

    微服务也指一种种松耦合的、有一定的有界上下文的面向服务架构。也就是说,如果每个服务都要同时修改,那么它们就不是微服务,因为它们紧耦合在一起;如果你需要掌握一个服务太多的上下文场景使用条件,那么它就是一个有上下文边界的服务,这个定义来自DDD领域驱动设计。

2. 微服务优点是什么?

  • 每个微服务都很小,这样能聚焦一个指定的业务功能或业务需求。

  • 微服务能够被小团队单独开发,这个小团队是2到5人的开发人员组成。

  • 微服务是松耦合的,是有功能意义的服务,无论是在开发阶段或部署阶段都是独立的。

  • 微服务能使用不同的语言开发。

  • 微服务允许容易且灵活的方式集成自动部署,通过持续集成工具,如Jenkins, Hudson, bamboo 。

  • 一个团队的新成员能够更快投入生产。

  • 微服务易于被一个开发人员理解,修改和维护,这样小团队能够更关注自己的工作成果。无需通过合作才能体现价值。

  • 微服务允许你利用融合最新技术。

  • 微服务只是业务逻辑的代码,不会和HTML,CSS 或其他界面组件混合。

  • 微服务能够即时被要求扩展。

  • 微服务能部署中低端配置的服务器上。

  • 易于和第三方集成。

  • 每个微服务都有自己的存储能力,可以有自己的数据库。也可以有统一数据库。


3. 微服务架构的缺点是什么?

  • 微服务架构可能带来过多的操作。

  • 需要DevOps技巧 (http://en.wikipedia.org/wiki/DevOps).

  • 可能双倍的努力。

  • 分布式系统可能复杂难以管理。

  • 因为分布部署跟踪问题难。

  • 当服务数量增加,管理复杂性增加。


4. 微服务适合哪种情况?
    当你需要支持桌面 web 移动 智能电视 可穿戴时都是可以的,甚至将来你可能不知道但需要支持的某种环境。

5. 微服务之间是如何独立通讯的?

    这依赖需求,通过使用HTTP/REST,数据格式使用JSON 或 Protobuf(Binary protocol),通讯协议是自由的。

 (摘自http://m635674608.iteye.com/blog/2304379)

总结下微服务