内容简介:不同的拆分方式,本质上决定了系统的扩展方式
点击蓝色“ 乔志勇笔记 ”关注我哟
加个“ 星标 ”,第一时间获取推送的文章哦
(1)可扩展的思想
不同的拆分方式,本质上决定了系统的扩展方式
(2)可扩展方式
一、面向流程拆封
1)分层架构
要点:
1、需要保证各层之间的差异足够清晰,边界足够明显,隔离关注点,让人看到架构图后就能看懂整个架构
2、层层传递
常见划分:
1、c/s 架构 、b/s 架构
2、mvc 架构、mvp架构
3、逻辑分层架构
操作系统内核结构、tcp/ip架构
二、面向服务拆分
1)SOA
背景:
SOA的诞生背景是用来兼容 庞大、复杂、异构的企业级系统,
解决传统IT系统重复建设和扩展效率低的问题
关键概念:
1、粗粒度的服务
2、ESB/企业服务总线
服务定义、服务路由、消息转换、消息传递,是重量级的实现
3、松耦合
减少服务间的依赖和影响,实现起来具有复杂性
2)微服务
背景:
适合于快速、轻量级、基于web的互联网系统
关键概念:
1、small/微
服务拆分粒度符合三个快枪手原则
有基于业务逻辑、基于可扩展、基于可靠性、基于性能拆分等多种相结合的方式
2、lightweight/轻量级交互
微服务推荐使用统一的协议和格式,例如restful协议和rpc协议,无须esb这样的重量级实现
仅仅用来做消息的传递,对消息和内容一无所知
3、automated/自动化
重点关注基础设施的建设
优先级:
1.服务发现、服务路由、服务容错
2.接口框架、api框架
3.自动化部署、自动化测试、配置中心
4.服务监控、服务跟踪、服务安全
3)对比图
三、面向功能拆分
1)微内核架构/插件化架构
基本架构:
核心系统和插件模块
设计关键点:
1、插件管理
插件注册表包含每个插件模块的信息,包括名字、位置、加载时机
2、插件连接
与核心系统如何连接
3、插件通信
案例解析:
1、OSGI架构解析
特性:动态化、热插拔、高复用性、高效性、扩展方便
层次:
1.模块层(module层)
实现插件bundle的管理
2.生命周期层(lifecycle层)
控制bundle的安装、更新、启动、停止、卸载
3.服务层(service层)
通过注册中心 实现插件间的通信
2、规则引擎架构解析
特性:可扩展、易理解、高效率
流程:
1.开发提炼多个规则,
2.业务人员将规则排列组合,配置成业务流程
3.规则引擎执行业务流程实现业务
层次:
1,插件管理
规则就是插件,引擎就是微内核架构的内核
2.插件连接
规则引擎的插件连接实现机制就是规则语言
3.插件通信
单个规则不需要通信,输出数据流或者事件
举例:
JBoss Drools,Esper
参考:李运华的从0开始学架构
限时分享面试&学习福利资源
好资料第一时间分享,中华石杉老师的 分布式面试突击 视频教程,最清晰整体的 微服务全面解读 的PDF, 体系化的 Java 路线 资料整理的Github, 亿级电商架构 的视频实战课程,你值得拥有
获取方式: 关注公众号 乔志勇笔记 , 后台回复"学习资料" !!!
近期文章:
如果你喜欢本文
请长按二维码,关注 乔志勇笔记
转发 朋友圈 ,是对我最大的支持哟
如果你喜欢这篇文章,在看,转发吧。
相信明天更加美好 (*^__^*)
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Python源码剖析
陈儒 / 电子工业出版社 / 2008-6 / 69.80元
作为主流的动态语言,Python不仅简单易学、移植性好,而且拥有强大丰富的库的支持。此外,Python强大的可扩展性,让开发人员既可以非常容易地利用C/C++编写Python的扩展模块,还能将Python嵌入到C/C++程序中,为自己的系统添加动态扩展和动态编程的能力。. 为了更好地利用Python语言,无论是使用Python语言本身,还是将Python与C/C++交互使用,深刻理解Pyth......一起来看看 《Python源码剖析》 这本书的介绍吧!