当前位置: 移动技术网 > IT编程>软件设计>架构 > 《从零开始学架构》笔记——第三部分:可扩展架构模式

《从零开始学架构》笔记——第三部分:可扩展架构模式

2019年09月10日  | 移动技术网IT编程  | 我要评论
第十章 分层架构(面向流程拆分) 保证各层的差异足够清晰,边界足够明显 隔离关注点 层层传递 例如:MVC:分离数据处理,视图显示,业务逻辑 第十一章 SOA架构(面向服务拆分) 背景: 企业内部的IT系统重复建设且效率低下。 企业各部门都有独立的IT系统,人力资源部门,财务部门,销售部门....当 ...

第十章 分层架构(面向流程拆分)

  • 保证各层的差异足够清晰,边界足够明显
  • 隔离关注点
  • 层层传递

例如:mvc:分离数据处理,视图显示,业务逻辑

第十一章 soa架构(面向服务拆分)

背景:

企业内部的it系统重复建设且效率低下。

  • 企业各部门都有独立的it系统,人力资源部门,财务部门,销售部门....当一个员工离职后,需要很多部门同时注销信息。(冗余)
  • 业务发展,各部门合作的复杂度升高。

soa思想

  • 服务

    所有业务功能都是一项服务,对外提供开放接口。例如上述各部门的人员管理就可以单独划分出一个服务,实现复用。【服务粒度的划分是关键】

  • esb企业服务总线

    屏蔽系统对外提供接口的方式,实现服务连接。

  • 松耦合

    减少服务的依赖和影响。

esb问题和被背景

esb功能强大,支持http,rpc,jms等多种协议和转换格式,但同时带来了大量资源消耗。

esb的背景是在各种异构系统存在多年的情况下产生的,实属无奈之举。


第十四章 微服务

微服务和soa的关系

1996 年,第一个soa报告被发布

2014年, martin flower一篇关于微服务的学术性文章将微服务推向了高潮

从历史的角度看,微服务和soa是有一定先后次序的,两者虽不相同,但也许有些渊源。


  • 服务粒度

    微服务比soa更细

  • 服务通信

    soa采用esb总线,而微服务采用http轻量级通信

  • 服务交付

    soa慢,而微服务倡导持续交付,速度快

  • 应用场景

    soa的esb是针对已有大量异构系统的企业级设计的;而微服务更适合互联网公司。


soa和微服务并不存在优劣之分,两者应用的场景应对的问题完全不一样,就像你不能用一颗糖的好坏衡量一块砖的价值。

微服务的坑

  • 服务划分过细,服务间关系复杂【单个系统复杂度下降,整个系统的复杂度上升】
  • 服务数量太多,团队效率下降
  • 调用链过长导致的性能下降和排查问题困难
  • 自动化部署复杂

微服务最佳实践

  • 服务粒度拆分(推荐三人开发一个微服务)
    • 基于业务逻辑拆分
    • 基于可扩展拆分(拆分出稳定,变动不大的微服务)
    • 基于可靠性拆分(将可靠性要求高的核心业务拆分出来)
    • 基于性能拆分(将性能要求高的拆分出来)
  • 基础设施
    • 自动化测试,部署
    • 配置中心
    • api网关
    • 服务注册
    • 服务发现
    • 服务路由
    • 服务容错
    • 服务监控
    • 服务跟踪
    • 服务安全

如您对本文有疑问或者有任何想说的,请 点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网