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

点击蓝色“ 乔志勇笔记 ”关注我哟

加个“ 星标 ”,第一时间获取推送的文章哦

(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, 亿级电商架构 的视频实战课程,你值得拥有

获取方式: 关注公众号 乔志勇笔记 , 后台回复”学习资料” !!!

近期文章:

如何开始架构设计

高性能架构模式

储存高可用架构

到底如何理解CAP

微服务架构————基本组件

微服务实战问题

微服务架构进阶

秒杀系统设计

分布式数据一致性理解

5种分布式锁实现的对比?

Java并发编程学习体系

java8 Stream 史上最全总结

Java 网络编程”初探”

redis 知识点总结

java 核心技术学习总结 (一)

spring中”投机取巧”地限制 用户同时登陆

如果你喜欢本文

请长按二维码,关注 乔志勇笔记

转发 朋友圈 ,是对我最大的支持哟

如果你喜欢这篇文章,在看,转发吧。

相信明天更加美好 (*^__^*)