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

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

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


(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中"投机取巧"地限制 用户同时登陆

如果你喜欢本文

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

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

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值