架构设计
Ydoing
这个作者很懒,什么都没留下…
展开
-
高性能设计要点
Disruptor底层采用RingBuffer的结构,就是一个循环使用下标的数组;使用内存代替DB事务操作(写内存+预写日志WAL(LSM树))网络线程模型1+N+M(监听线程+IO线程+业务线程)数据异构(宽表、搜索引擎、转换为时候高并发读的结构)读写分离(Master/Slave、一主多从)并发请求串行化(请求排队)+ 单进程单线程。分治法(多机房、多实例、数据分片)多级缓存(本地缓存+分布式缓存)热点内容(评论、帖子)本地缓存。Feed流表按照时间分区。无锁架构,减少资源竞争。异步(消息、多线程)..原创 2022-08-28 09:32:46 · 606 阅读 · 1 评论 -
关于业务中台建设的思考
中台的误区这周参与了公司有关中台的方案讨论,发现与我中心的中台概念相差甚远。中台的特点是提供企业级复用能力,目的提高企业生产力。目前很多团队开始建设中台,但是中台建设陷入了很多误区:CRUD的中台。只有数据沉淀,没有中台能力。无业务的中台。中台不注重业务沉淀,所谓的不care业务。典型案例:这种业务逻辑我们中台不负责,你们上层处理就好了。无扩展能力的中台。硬编码,设计僵化,响应需求变化困难。这里简单说一下中台化思路中台化思路建设思路业务模型统一,数据逻辑隔离多租户元数据业务能力沉原创 2021-01-14 15:52:43 · 683 阅读 · 0 评论 -
思考复杂的系统
原创 2020-02-05 09:41:29 · 404 阅读 · 0 评论 -
系统思维
系统与涌现系统系统 = 实体 + 关系 + 功能系统是由一组实体和这些实体之间的关系所构成的集合,其功能要大于这些实体各自功能之和。架构定义为“对系统中的实体及实体之间的关系所进行的抽象描述”涌现实体之间的交互会导致涌现物。涌现指的是系统在在运作时所表现,呈现或者浮现的东西。涌现 = 功能 + 性能 + 意外 + …系统思维的任务确定系统的形式与功能系统同时具备形式...原创 2020-01-31 10:43:40 · 289 阅读 · 0 评论 -
软件中组件拆合原则
三个拆合的指导原则:REP(复用/发布等同原则),CCP(共同闭包原则)和CRP(共同复用原则)。组件聚合原则张力图REP(复用/发布等同原则):软件复用的最小粒度应该等同于其发布的最小粒度(注:只有那些通过版本追踪系统发布的组件才能被高效地复用)CCP(共同闭包原则):将同时修改,目的相同的类放到同一个组件;不会同时修改,目的不同的类放到不同的组件CRP(共同复用原则):不要强迫一个...原创 2020-01-17 15:39:48 · 804 阅读 · 0 评论 -
浅谈软件设计原则
通用原则OCP(开闭原则)架构设计的主导原则。设计良好的软件应该易于扩展,同时抗拒修改。这是我们进行架构设计的主导原则,其他的原则都为这条原则服务。USB接口满足OCP原则,各个厂商可以扩展接口实现,但是不能修改接口定义正交性设计“正交性”是从几何学中借来的术语。如果两条直线相交成直角,它们就是正交的,比如图中的坐标轴。用向量术语说,这两条直线互不依赖。沿着某一条直线移动,你投影到...原创 2020-01-17 11:53:04 · 510 阅读 · 0 评论 -
关于中台化一些思考
有个同事问了我一个架构问题,大概是这样的:组装某业务的VO的对象逻辑放到哪层,感觉放到service层好像不太合适。我感觉问的非常好,这种问题非常典型,值得分享一下。目前来说,我们在前台层(Controller)直接调用一个下层大的service,一杠子捅到底,各种领域层的逻辑都放到这个service里面。造成各种领域层依赖耦合严重,领域层的服务不好重用。这里有必要抽象出中间一层,它可能是中台层,...原创 2019-12-22 21:56:27 · 1985 阅读 · 0 评论 -
写好设计文档
写好设计文档怎样算一个好的设计文档文档意图清晰,描述逻辑有序动静结合,既有静态模型又有动态模型注重分析生产活动的生命周期列出能力矩阵善于发现概念,将捕捉到的概念显示化,建立领域模型划清边界,构建层次有不同的视图,一图胜千言。比如有用例图,领域模型图,活动图,时序图,状态图,业务流程图,业务架构图,应用架构图,技术架构图等等。静态建模用例收集用例是设计文档后续所有环节的输入...原创 2019-12-22 20:40:15 · 268 阅读 · 1 评论 -
系统中台能力思考和探索
系统中台能力思考和探索中台思想中台特点数据模型统一;业务隔离;可扩展:引擎化,参数化,配置化,流程化可视化:能力地图,业务全景图;由1到4,实现越来遇难,其中3是实现关键。中台实现...原创 2019-09-08 19:49:07 · 405 阅读 · 0 评论 -
可供参考的互联网电商订单中心设计
最近在做订单中心领域模型设计,虽然还不完善,这里分享出来,希望能给大家提供一个思路。有不懂的,请多多交流,谢谢啦!原创 2018-06-09 09:56:33 · 7191 阅读 · 0 评论 -
关于分库分表的实现
当数据大的时候,都会考虑分库分表的实现。分库分表可以在不同的层做。一般来说有以下几种:jdbc层:实现复杂,属于轻量级,对应用基本没有侵入性;缺点是不能复用数据库连接,在应用部署多的时候资源耗费大,不适于大规模部署。类似当当网的sharding-jdbc.ORM层:比如蘑菇街TSharding框架封装mybatis,实现简单。缺点是必须依赖ORM层,侵入性比较大。DBProxy层:如cobar原创 2017-03-10 15:14:16 · 3816 阅读 · 0 评论 -
面向对象设计原则
最近在重构老系统的代码,感觉有些疑惑,故重新看了《敏捷开发软件开发:原则、模式和实践》,记录一下。 面向对象设计要遵守下面几个原则:类单一职责原则(SPR)每个类承担的职责应该单一,实现高内聚。如果这个类承担太多,那么它变动的可能性很大,因为有太多原因导致这个类变化。就一个类而言,应该仅有一个引起它变化的原因。任何在设计类的时候,都需要考虑到这个类的职责,即这个类的边界。这提示我们,在设计系统或者原创 2016-08-21 07:52:40 · 510 阅读 · 0 评论