小破站,记录和学习
时间轮算法 时间轮算法
时间轮算法在很多开源的中间件被广泛应用, Redisson 分布式锁中使用时间轮算法实现看门狗,来为锁续时。另一个场景是使用时间轮算法来实现心跳续时,在使用长连接的时候,我们通常需要使用心跳机制来防止意外断开的无效连接浪费系统资源。心跳机制
2022-04-05
LeetCode-汽车碰撞次数 LeetCode-汽车碰撞次数
今天刷一道有意思的题目,逻辑很简单,有点像消消乐。就是当车发生碰撞时,车辆就是会静止,最后所有车辆都因为碰撞而会静止,题目如下 在一条无限长的公路上有 n 辆汽车正在行驶。汽车按从左到右的顺序按从 0 到 n - 1 编号,每辆车都在一个
2022-04-04
分布式锁的设计 分布式锁的设计
分布式锁的实现有多种方式,但是不管怎样,设计分布式锁一般要满足以下条件: 互斥性:任意时刻,只能有一个客户端获取锁,不能同时有两个客户端获取到锁。 安全性:锁只能被持有该锁的客户端删除,不能由其它客户端删除。 避免死锁:分布式锁一定能得到
2022-04-03
中台架构之DDD领域驱动 中台架构之DDD领域驱动
DDD,全称Domain-Driven Design, 是一种处理复杂领域的设计思想,它试图分离技术实现的复杂性,并围绕业务概念构建领域模型来控制业务的复杂性,以解决软件难以理解,难以演进的问题。它通过边界划分将复杂业务领域简单化,帮我们设
2022-03-27
Mysql与Pgsql查看表大小 Mysql与Pgsql查看表大小
本文介绍MySQL与Pgsql查看数据库表容量大小的命令语句,提供完整查询语句及实例,方便学习使用。 Mysql查看所有数据库容量大小select table_schema as '数据库', sum(table_rows) as '记录
2022-03-22
中台架构与微服务战略 中台架构与微服务战略
传统企业平台都是烟囱式的系统架构,企业内部为了迎合业务发展不停的打造各种系统,导致各系统间的重复功能建设和维护带来的重复投资。重复投资不仅消耗的是人力,财力还有时间。但打通烟囱式系统间交互的集成和协作成本高昂,各大企业不得不借助ESB产品,
2022-03-06
中台架构之微前端 中台架构之微前端
最近公司搭建中台项目,记录的一点心得。在中台建设完成后,通过微服务实现了后端应用的解耦,提高了中台应用的弹性伸缩能力。但由于微服务拆分,也会导致项目团队和服务的碎片化,给前端项目集成带来一定的复杂度。如何降低前端集成的复杂度?做到后端解耦,
2022-03-05
失血模型与充血模型 失血模型与充血模型
领域模型是对领域内的概念类或现实世界中对象的可视化表示。又称概念模型、领域对象模型、分析对象模型。它专注于分析问题领域本身,发掘重要的业务领域概念,并建立业务领域概念之间的关系。 业务对象模型(也叫领域模型domain model)是描述业
2022-02-20
分布式全局唯一ID解决方案 分布式全局唯一ID解决方案
在公司去Oracle的要求下,需要对原有系统进行一些改造优化,由此引出了对分布式全局ID的一些思考。在平常的开发工作中可能不会对id做考量,一般都是使用数据库自带的自增主键或是sequence函数来生成id,但是随着业务的发展,系统会越来越
2022-02-19
mybatis的实现原理 mybatis的实现原理
MyBatis是一个流行的ORM框架,面向接口编程的方式,大大简化了数据库的操作。MyBatis的底层操作封装了JDBC的API,MyBatis的工作原理以及核心流程与JDBC的使用步骤一脉相承,MyBatis的核心对象(SqlSessio
2022-02-13
分区分表分库 分区分表分库
互联网时代,传统应用都有这样一个特点:访问量、数据量都比较小,单库单表都完全可以支撑整个业务。随着业务的发展和用户规模的迅速扩大,对系统的要求也越来越高。因此传统的MySQL单库单表架构的性能问题就暴露出来了。而有下面几个因素会影响数据库性
2022-02-09
Javascript的原型链 Javascript的原型链
JS用了几年了,对于JS原型链的认知还比较模糊,JS是函数式编程语言,同时也可以是面向对象编程的语言(而且函数也是对象。这是与Java不同的地方),但尽管JS是有面向对象的特质,但其实现原理却Java有很大区别。因此不要用Java面向对象的
2022-01-09
4 / 17