![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
架构
文章平均质量分 57
娟宝宝萌萌哒
https://github.com/hanjg
展开
-
如何做架构规划
架构师的职责和在架构流程7个节点中的作用原创 2022-10-12 11:02:28 · 1883 阅读 · 0 评论 -
交易域一致性思考
文章目录背景想法业界方案的关注点降低成本的措施依赖分层方案步骤分解方案同步链路异步链路延迟异步链路核心场景背景互联网行业为了性能和实现成本考虑,通常追求最终一致性行业有成熟的解决方案,如seata和衍生品之前文章里也梳理过柔性事务对于高速发展的业务,或者依赖历史遗留系统,seata一类的方案有较多限制:发起方和依赖方需要实现一套协议,业务上不接受过高的改造成本:如AT的RM等接口,TCC的try,commit,cancel事务状态流转较复杂,接:如seata涉及分支事务和十几种状态机原创 2022-04-10 16:11:00 · 668 阅读 · 0 评论 -
领域驱动设计核心概念
特点优势使用充血领域对象,将数据和行为封装在一起,并与现实世界中的业务对象相映射,更加符合OO编程理念。更容易抽象、分治业务,解决复杂问题。架构分类架构设计分为:业务架构——根据业务需求设计业务模块及其关系系统架构——设计系统和子系统的模块技术架构——决定采用的技术及框架DDD:业务架构映射到系统架构,响应业务变化调整业务架构时,随之变化系统架构。微服务:追求业务层面的复用,设计和业务一致的系统架构。追求系统模块之间充分解耦,可以自由地选择合适的技术架构,去中心化地治理原创 2021-10-29 00:10:58 · 1422 阅读 · 0 评论 -
微服务查询模式
文章目录API组合模式CQRS模式API组合模式查询每个服务API并组合结果。注意点:API组合器需要使用响应式编程,并行调用较小rt。优点:简单直观。缺点:增加额开销。I/O。涉及多次rpc和查库。CPU。聚合查询结果,可能需要执行大规模数据内存链接。可用性降低。受依赖服务的影响。缺乏数据一致性。跨库查询,柔性事务下缺少一致性视图。CQRS模式命令查询职责分离。使用事件维护从多个服务复制的只读视图。微服务架构查询的问题。API组合模式查询分散原创 2020-08-03 22:17:10 · 246 阅读 · 0 评论 -
微服务业务逻辑设计
文章目录业务逻辑组织模式事务脚本模式领域模型模式聚合模式领域事件业务逻辑组织模式事务脚本模式面向过程的事务脚本集合,每种请求对应一个脚本。类分为:实现行为的类。存储状态的类。优点:简单。领域模型模式组织为具有行为和状态的类构成的对象模型。类分为:同时具有行为和状态的类。(主要)具有行为的类。存储状态的类。优点:每个小类逻辑不多,反应现实,易于理解。小类容易测试。可以使用设计模式。聚合模式聚合模式:领域模型组织成聚合的集合,每个聚合是可以一批处原创 2020-08-03 22:16:41 · 217 阅读 · 0 评论 -
SAGA事务
文章目录SAGA定义步骤排序分类协同式编排式事务隔离对策SAGA定义柔性事务传统同步事务难点:部分数据库不支持XA。传统分布式事务是同步通信,会降低系统可用性。SAGA:使用异步消息协调一系列本地事务,维护多个服务之间的数据一致性。是一种长事务解决方案,适用于业务流程长且需要保证事务最终一致性的业务系统。步骤排序可补偿事务。可能失败,需要编写补偿事务做回滚。关键性事务。后面跟着不可能失败的步骤。可重复事务。总会成功。分类协同式决策和执行顺序逻辑分布在saga的每一原创 2020-08-03 22:13:00 · 300 阅读 · 0 评论 -
微服务拆分和通信
文章目录服务拆分分类架构视图架构风格分类拆分步骤定义系统操作定义服务定义服务API拆分难点内部进程通信交互方式同步远程过程调用RESTdubbogRPC局部故障处理服务发现异步消息外部API通信API gateway功能特点服务拆分分类架构视图逻辑视图。类、包和关系。实现视图。WAR、jar包和之间的依赖。进程视图。进程和通信。部署视图。机器和网络。架构风格分类分层架构。表现层->业务逻辑层->持久化层,向下依赖。六边形架构。入站适配器(前端,消费组)->业务逻辑原创 2020-08-03 22:08:47 · 185 阅读 · 0 评论 -
微服务演化过程和特点
文章目录微服务单体架构优点缺点中心化架构优点缺点微服务架构优点缺点微服务单体架构适合演化早期,业务迭代时逐渐暴露缺点。一个war或者Jar包。优点业务迭代简单。应用开发、大规模修改方便。测试简单。部署简单。横向扩展无脑。只需要负载均衡多个实例。缺点业务迭代困难。内部逻辑复杂度过高,类似脏泥球,冲突多、耦合严重,导致开发、测试缓慢。技术迭代困难。依赖一套技术栈,使用新技术试错成本高。扩展困难,成本高。不同硬件的需求集中在同一个实例上,扩展需要原创 2020-08-03 22:04:50 · 307 阅读 · 0 评论 -
分布式数据系统——DDIA(二)
文章目录数据复制目的主从复制复制形式复制日志运维变更副本一致性多主复制适用场景处理写冲突无主复制quorum一致quorum一致局限数据复制目的高可用。容忍单个副本故障、网络分区。可扩展。多副本提高读吞吐量。低延时。距用户较近,交互更快。主从复制写:主节点。读:从节点。到主节点网络问题影响所有写入。复制形式同步复制。从节点确认写入后返回。从节点数据最新版本,可瞬间...原创 2020-04-26 19:29:57 · 3439 阅读 · 0 评论 -
数据系统基础——DDIA(一)
文章目录数据系统可靠性可扩展性可维护性数据模型和查询语言数据模型查询语言数据存储和检索数据结构LSM树CSV+内存hash表LSM-TreeB树存储引擎分析模式列式存储数据编码和演化数据编码格式语言特定格式文本格式二进制格式数据流模式基于数据库基于服务基于消息传递数据系统可靠性定义:执行用户期望的功能。容忍用户不正当的使用方法。性能可以符合预期的用例、负载、数据量。防止未经授权的...原创 2020-04-26 19:28:58 · 1339 阅读 · 0 评论 -
阿里中台思想重点
文章目录简介传统IT中心问题共享服务体系优势分布式框架单体架构中心化框架去中心化框架微服务dubbo服务中心定义划分原则数据拆分纵向拆分横向拆分分库分表原则数据库中间件异步化方式传统分布式事务柔性事务缓存和秒杀数字化运营服务调用监控日志处理稳定平台简介传统IT中心问题烟囱式系统建设模式。弊端:重复功能建设和维护带来的重复投资。系统间的交互和集成成本高昂。ESB这种总线式SOA代价高昂...原创 2020-02-10 18:57:12 · 350 阅读 · 0 评论 -
柔性事务
文章目录简介实现方式TCC两个阶段对比XA日志和补偿事务消息实现数据库实现可靠消息传递无锁隔离事务参考简介柔性事务遵循BASE,针对大型分布式系统,牺牲强一致,获得高可用。高可用=系统构建在多机=分布式系统->高性能实现方式TCCTry阶段执行成功,则执行Confirm,否则执行Cancel。如果try成功,默认comfirm一定成功,可以通过重试实现。两个阶段T...原创 2020-01-18 22:48:13 · 457 阅读 · 0 评论 -
传统分布式事务
文章目录简介两阶段提交协议准备阶段执行阶段提交回滚优化问题三阶段提交协议CanCommitPreCommit准备中断DoCommit提交回滚解决两阶段问题标准事务模型参考简介传统分布式事务遵循ACID,牺牲系统可用性追求获取强一致。两阶段提交协议一个协调者(事务管理器),多个参与者(资源管理器)。准备阶段协调者询问是否可以提交。参与者锁住资源,开始事务操作,写undo和re...原创 2020-01-17 00:23:09 · 347 阅读 · 0 评论 -
CAP和BASE理论
文章目录CAP定义侧重点BASE定义最终一致分类一致性方案CAP定义一致性(Consistency):多副本之间保证一致。对一个数据更新操作后,所有用户都可以获取最新值。可用性(Availability):服务一直可用。用户的每一个操作请求总能在有限时间内返回处理结果。分区容错性(Partition tolerance):可在网络网络分区故障时提供服务。分布式系统只能同时满足以上三个...原创 2019-12-17 14:12:07 · 157 阅读 · 0 评论 -
大型网站架构
文章目录架构模式方向实现方式核心要素性能应用层优化服务层优化数据层优化可用性应用层优化服务层优化数据层优化软件优化伸缩性扩展性架构模式方向高内聚、低耦合。便于开发和维护、不同模块分布式部署提高并发能力。开发重点需要关注的是性能和可用性。伸缩性、扩展性、安全性需要兼顾。实现方式分层。应用的横向切分。应用层:具体业务和视图展示,和用户直接交互。服务层:提供服务支持。数据层:提...原创 2019-05-23 23:03:32 · 440 阅读 · 0 评论 -
服务容量优化思路
文章目录硬件软件版本GC参数本地缓存扩容硬件实列核数,内存软件版本java 11 : 相对java8 GC次数只有一半,单次GC时间增长 30 %dubbo 版本: 序列化优化hbase版本:减少平均rt和999线。连接池版本:c3p0->tomcat-jdbc,gc次数一半,单次gc时间1/3.GC参数堆空间: 4-> 8 G, GC次数一半。本地缓存...原创 2019-12-04 19:34:43 · 248 阅读 · 0 评论