架构的终极目标——可扩展

(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/自动化

重点关注基础设施的建设

13841068-1e951e4eca618584.png

优先级:

1.服务发现、服务路由、服务容错

2.接口框架、api框架

3.自动化部署、自动化测试、配置中心

4.服务监控、服务跟踪、服务安全

3)对比图

13841068-52d7baa994c26dd1.png

三、面向功能拆分

1)微内核架构/插件化架构

基本架构:

核心系统和插件模块

设计关键点:

1、插件管理

插件注册表包含每个插件模块的信息,包括名字、位置、加载时机

2、插件连接

与核心系统如何连接

3、插件通信

案例解析:

1、OSGI架构解析

特性:动态化、热插拔、高复用性、高效性、扩展方便

层次:

1.模块层(module层)

实现插件bundle的管理

2.生命周期层(lifecycle层)

控制bundle的安装、更新、启动、停止、卸载

3.服务层(service层)

通过注册中心 实现插件间的通信

2、规则引擎架构解析

特性:可扩展、易理解、高效率

流程:

1.开发提炼多个规则,

2.业务人员将规则排列组合,配置成业务流程

3.规则引擎执行业务流程实现业务

层次:

1,插件管理

规则就是插件,引擎就是微内核架构的内核

2.插件连接

规则引擎的插件连接实现机制就是规则语言

3.插件通信

单个规则不需要通信,输出数据流或者事件

举例:

JBoss Drools,Esper

限时分享面试&学习福利资源,好资料第一时间分享,主要分享分布式架构、高可扩展、高性能、高并发、性能优化、Spring boot、Redis、ActiveMQ、Nginx、Mycat、Netty、Jvm大型分布式项目实战学习架构师视频等。

资料获取方式点击:https://shimo.im/docs/ZdGgOFGsycQ138zk

转载于:https://www.jianshu.com/p/8c2680ed0dc3

猜你喜欢

转载自blog.csdn.net/weixin_33955681/article/details/91089526