架构与设计
文章平均质量分 68
代码设计、敏捷开发、企业架构
ZWZhangYu
这个作者很懒,什么都没留下…
展开
-
系统出现高CPU可能风险因素整理
死循环是最常见的原因之一。当代码中存在无穷循环(例如在多线程环境下的HashMap线程不安全问题或分页查询条件不明确导致的无限循环),会导致CPU资源被持续占用。原创 2024-08-06 22:26:51 · 341 阅读 · 0 评论 -
【线上多线程问题总结】记一次项目线程数持续增加至1500多问题
根据运维反馈的线程数量趋势图 ,可以看到在1月~3月中旬线程数都是稳定的,这个数量大概在几十~1百左右,这个数量还比较合理,tomcat的线程数以及项目中的线程池。但是从3月底开始线程数就一直持续上升,到4月底又突然降低至稳定点,然后又持续波动,并在5月1号后持续上升,截止今天容器的线程数以及增长到1500多。原创 2024-06-29 07:42:08 · 795 阅读 · 0 评论 -
《淘宝技术这十年》 读书笔记
本书从工程师的角度讲述淘宝这个超大规模互联网系统的成长历程,及其所有主动和被动的技术变革的前因后果。书中有幕后故事、产品经验、架构演进、技术启蒙,也有大牛成长、业内八卦、失败案例、励志故事。全书文风流畅,有技术人员特有的幽默感;内容积极正面,有现场感,全部是作者亲身经历。原创 2022-10-07 10:04:06 · 752 阅读 · 0 评论 -
alibaba数据同步组件canal的实践整理
canal [kə'næl],译意为水道/管道/沟渠,主要用途是基于 MySQL 数据库增量日志解析,提供增量数据订阅和消费,基于日志增量订阅和消费的业务包括【1】数据库镜像【2】数据库实时备份【3】索引构建和实时维护(拆分异构索引、倒排索引等)【4】业务 cache 刷新【5】带业务逻辑的增量数据处理......原创 2022-08-01 20:10:30 · 929 阅读 · 1 评论 -
MySql主从复制实践 原理分析 搭建过程 优化和监控
MySQL复制拓扑有很多的方式,例如主从实时同步可以缓解数据库压力,灾备恢复,读写分离;通过延迟复制可以替换传统的脚本化数据库备份策略;通过多源复制方式可以方便对多系统数据库做聚合分析等等...原创 2022-03-21 22:35:31 · 2414 阅读 · 1 评论 -
API设计指南整理
Google REST API(也被称为REST方法)的标准方法有List,Get,Create,Update和Delete。API的设计者也可以用自定义方法(也被称为自定义动词或者自定义操作),来完成那些不易对应到标准方法的功能,比如数据库事务。原创 2021-05-20 17:37:09 · 2145 阅读 · 0 评论 -
Seata AT模式的实现原理
文章目录(一)AT模式第一阶段的实现原理(二)AT模式第二阶段的原理分析1. 事务提交2.事务回滚(三)事务的隔离性保证1. 写隔离2. 读隔离参考AT模式是基于XA事务模型演进而来的,所以它的整体机制也是一个改进版的两阶段提交协议。第一阶段:业务数据和回滚日志记录在同一个本地事务中提交,释放本地锁和连接资源。第二阶段:提交异步化,非常快速地完成。回滚通过第一阶段的回滚日志进行反向补偿。下面我们详细分析在整个执行流程中,每一个阶段的具体实现原理。同时,为了更好地理解AT模式的工作机制,我们以库存原创 2021-05-04 14:30:17 · 3727 阅读 · 0 评论 -
分布式事务问题理论模型
文章目录(一)X/Open分布式事务模型(二)两阶段提交协议(1)介绍(2)俩阶段提交的缺点(三)三阶段提交协议(1)介绍(2)两阶段提交和三阶段提交不同分析(四)CAP定理(五)BASE理论(一)X/Open分布式事务模型XA协议由Tuxedo首先提出的,并交给X/Open组织,作为资源管理器(数据库)与事务管理器的接口标准。目前,Oracle、Informix、DB2和Sybase等各大数据库厂家都提供对XA的支持。XA协议采用两阶段提交方式来管理分布式事务。XA接口提供资源管理器与事务管理器之间进原创 2021-05-03 11:44:04 · 1846 阅读 · 0 评论 -
架构设计——缓存层设计思维导图总结
对于数据库查询优化,可以把数据存放在缓存中,每次请求通过缓存读取数据,大大减少了数据库读请求压力。对于数据库写操作优化,可以先将数据写入缓存中,流量洪峰时,我们先将数据写入缓存中,再逐步搬运数据到数据库,大大减少了数据库写请求压力。对于数据数据收集,利用消息队列我们可以把缓存中的数据搬运到数据库中原创 2021-04-11 20:40:22 · 1863 阅读 · 0 评论 -
数据持久层架构——冷热分离
在处理数据时,将数据库分成了冷库和热库 2 个库,不常用数据放冷库,常用数据放热库。通过这样的方法处理后,常用的数据量大大减少了,也大大提升了数据库响应速度。原创 2021-04-05 20:53:02 · 1787 阅读 · 0 评论 -
架构设计——部署升级模式思维导图整理
在分布式系统的世界里,一个服务有多个实例,所以部署或是升级一个服务也会变得比较麻烦。服务部署的模式。一般来说,有如下几种:停机部署、蓝绿部署、滚动部署、灰度部署、AB 测试。原创 2021-03-20 14:22:17 · 1852 阅读 · 0 评论 -
分布式配置中心设计——思维导图总结
统单机软件的配置通常保存在文件中,但在分布式系统下,为了管理方便,必须有一个配置中心,软件的配置中心是分布式系统的一个必要组件原创 2021-03-20 11:21:14 · 1824 阅读 · 0 评论 -
分布式锁设计
在多线程情况下访问一些共享资源需要加锁,不然就会出现数据被写乱的问题。在分布式系统下,这样的问题也是一样的。只不过,我们需要一个分布式的锁服务。对于分布式的锁服务,一般可以用数据库 DB、Redis 和 ZooKeeper 等实现原创 2021-03-20 10:49:15 · 1933 阅读 · 3 评论 -
分布式架构——数据访问层的设计分析
文章目录(一)数据库从单机到分布式的挑战和应对(1)数据库减压解决方式(2)数据水平划分和垂直划分分析(二)分布式事务(1)分布式事务模型与规范(2)两阶段提交2PC(3)CAP和BASE(三)Paxos协议(1)基本认识(2)Basic-Paxos基本流程(四)多机的Sequence问题与处理(五)多机的数据查询问题分析(1)Join问题(2)外键约束(3)合并查询(六)数据访问层的设计与实现(1)对外提供数据访问层的方式(2)按照数据层流程的顺序看数据层设计(七)读写分离的挑战和应对(1)介绍(2)数据原创 2020-11-22 16:27:15 · 3170 阅读 · 0 评论 -
如何设计Tiny URL
文章目录(一)核心(二)应用举例(三)短链接的运行原理(1)基本运行过程(2)301和302的选择(四)算法设计哈希哈希冲突设计优化分布式ID(五)应用实例(一)核心1:将长的URL变短并存储2:查找短的URL还原(二)应用举例1:百度网盘2:微博发文微博发文会限制字数,如果你想要分享几个链接,要是链接都跟下面这样那么就只发俩个链接就不能再写其他文字呢3:短信在一个群发短信的应用里,如果需要写入多个长链接的话而且有需要额外的一些配字,本来一条短信就可以解决的事结果需要发送多条才可以写完原创 2020-09-19 17:09:27 · 4002 阅读 · 0 评论 -
Web API的设计与开发
原创 2020-08-05 22:14:10 · 2220 阅读 · 0 评论 -
微服务架构设计思维导图总结
原创 2020-05-27 17:14:52 · 2400 阅读 · 0 评论 -
幂等性设计和解决方案
文章目录什么是幂等性(一)介绍(二)HTTP维度(1)GET方法(2)DELETE方法(3)Post方法(4)PUT方法(三)应用维度产生幂等性场景幂等性在那一层实现在数据访问层实现比较合适(1)insert(2)delete(3)update(4)select(5)狭义与广义的幂等幂等性解决方案(一)前端幂等性的实现(不是可靠的)(1)按钮只可操作一次(2)token机制(3)使用Post/Re...原创 2020-04-28 20:07:52 · 2851 阅读 · 0 评论 -
整洁代码设计
前言阅读本书有两种原因,第一,我是个程序员;第二,我想成为更好的程序员(一)整洁代码的艺术写整洁代码,需要建循大量的小技巧,贯彻刻苦习得的这种“代码感”就是关键所在.有些人生而有之.有些人费点劲才能得到.它不仅让我们看到代码的优劣,还予我们以借戒规之力化劣为优的攻略.缺乏“代码感"的程序员,看混乱是混乱,无处着手.有“代码感”的程序员能从混乱中看出其他的可能与变化.“代码感”帮助程序员选出...原创 2020-02-21 12:36:34 · 1121 阅读 · 0 评论