技术干货

微服务架构解析(附思维导图)

2017-08-30  本文已影响282人  GhostStories

欢迎访问我的博客查看原文:http://wangnan.tech

思维导图


介绍

微服务架构(Microservice Architecture)是一种架构概念

旨在通过将功能分解到各个离散的服务中以实现对解决方案的解耦

将功能分解到离散的各个服务当中,从而降低系统的耦合性,并提供更加灵活的服务支持。

传统开发模式和微服务的区别

优点

缺点

  1. 效率低:开发都在同一个项目改代码,相互等待,冲突不断
  2. 维护难:代码功功能耦合在一起,新人不知道何从下手
  3. 不灵活:构建时间长,任何小修改都要重构整个项目,耗时
  4. 稳定性差:一个微小的问题,都可能导致整个应用挂掉
  5. 扩展性不够:无法满足高并发下的业务需求

微服务架构特征

官方的定义:

  1. 一些列的独立的服务共同组成系统
  2. 单独部署,跑在自己的进程中
  3. 每个服务为独立的业务开发
  4. 分布式管理
  5. 非常强调隔离性

大概的标准

  1. 分布式服务组成的系统
  2. 按照业务,而不是技术来划分组织
  3. 做有生命的产品而不是项目
  4. 强服务个体和弱通信( Smart endpoints and dumb pipes )
  5. 自动化运维( DevOps )
  6. 高度容错性
  7. 快速演化和迭代

SOA和微服务的区别

实践微服务

客户端如何访问这些服务

一般在后台N个服务和UI之间一般会一个代理或者叫API Gateway

作用:

每个服务之间如何通信

服务发现服务注册

服务挂了,如何解决

参考:Netflix的Hystrix

优缺点

思考

微服务对我们的思考,更多的是思维上的转变。对于微服务架构:技术上不是问题,意识比工具重要。

关于微服务的几点设计出发点:

  1. 应用程序的核心是业务逻辑,按照业务或客户需求组织资源(这是最难的)
  2. 做有生命的产品,而不是项目
  3. 头狼战队,全栈化
  4. 后台服务贯彻Single Responsibility Principle(单一职责原则)
  5. VM->Docker (to PE)
  6. DevOps (to PE)

同时,对于开发同学,有这么多的中间件和强大的PE支持固然是好事,我们也需要深入去了解这些中间件背后的原理,知其然知其所以然,在有限的技术资源如何通过开源技术实施微服务?

最后,一般提到微服务都离不开DevOps和Docker,理解微服务架构是核心,devops和docker是工具,是手段。

参考

http://www.cnblogs.com/imyalost/p/6792724.html?hmsr=toutiao.io&utm_medium=toutiao.io&utm_source=toutiao.io

http://www.jianshu.com/p/77ce2dbd1d6e?hmsr=toutiao.io&utm_medium=toutiao.io&utm_source=toutiao.io

http://kb.cnblogs.com/page/520922/

http://www.infoq.com/cn/articles/seven-uservices-antipatterns

http://www.csdn.net/article/2015-08-07/2825412

http://blog.csdn.net/mindfloating/article/details/45740573

http://blog.csdn.net/sunhuiliang85/article/details/52976210

http://www.oschina.net/news/70121/microservice

(本文完)

欢迎关注我的微信订阅号:



欢迎关注我的开发者头条独家号搜索:269166

上一篇下一篇

猜你喜欢

热点阅读