- 博客(160)
- 资源 (2)
- 收藏
- 关注
原创 架构 | 数据归档
上述归档行为均有各自适合的场景,但存储条件允许的前提下,能不删减信息就不删减信息,能不改变数据结构就不改变数据结构。数据迁移的本质就是数据的复制,只有主动拉数和被动接受两个大方案,二者之间只是封装范围不同。归档数据范围的划分,按时间范围截断,通常原库中保留 2/3/6 个月数据,其余归档走。数据移走后,不能影响现有业务的使用,需要继续保留被更新的能力(不存在完全冷掉的数据)数据归档就是把一坨数据挪走,换一个地方存放,然后把原来的数据干掉。最后,结合各档位数据决定迁移的数据范围,按下表进行总结。
2024-07-04 18:44:23 1157
原创 微服务架构 | nacos - [自动刷新配置方式 & 失效排查]
阿里系依赖普遍对版本要求较高,高低版本不兼容情况相对叫较高。nacos server 中配置修改后,会主动推送。项目中,极力推荐尽量排除所有依赖冲突,可以使用。,关键方法如下,有必要时可在此方法处断点观察。主要受影响的是下面的包,可在上图中搜索。试图排查:干掉尽可能多的红色虚线。通常发生在配置文件中手动指定了。nacos 的配置中心主要。依赖冲突可能导致部分类报。
2024-06-13 11:55:59 785
原创 线上 | OpenSergo - [规范]
OpenSergo 是一个未完工的成体系的规范,Sentinel 天然完成了此规范的部分实现,并且 Sentinel 2.0 符合 OpenSergo 规范。OpenSergo 是一套服务治理规范,需要持有服务信息才能对应的进行治理,这些信息由服务方上报,即服务元数据服务元数据通过。流量特征: 流量路由的核心方法就是对所有流量进行归纳拆分,归纳拆分的依据就是流量特征 比较容易理解的流量特征比如。可以类比 sentinel 的 fallbackMethod,可以指定触发规则的行为,比如返回一个定制的结果。
2024-05-30 16:16:58 945 2
原创 中间件 | RabbitMq - [AMQP 模型]
AMQP,即高级消息队列协议(Advanced Message Queuing Protocol),整体架构如下图。
2024-03-12 22:30:41 585
原创 中间件 | RPC - [Dubbo]
Dubbo 的服务导出机制,其实就是从服务启动到注册到注册中心的过程,在。spi 是 JDK 已经实现了的规范,Dubbo 独立实现了一套。当不配置时,若 provider 无可用节点会报。Dubbo 2.7.6 开始,支持 3 种注册方式。同接口有多个版本需要兼容,消费者只会调用同组提供者。与之相对的,Dubbo 的订阅方式也有 3 种。同接口多实现配置,消费者只会调用同组提供者。其目的在于在多实现接口中仅实例化需要的实现。有详细解释(放心看,中文的)Spring 启动后发送的。
2024-03-12 19:48:26 1119
原创 基础 | JVM - [指令 & 性能监控]
JDK 的指令是指类似下面的指令。如下图,红框即进程号。常使用此指令排查死锁。jstack 进程号。
2024-03-10 14:08:17 327
原创 基础 | JVM - [JVM 调优]
但是,按传统线程估算方式,最大不过 2N,且线程过多后切换线程上下文的开销也很客观,因此如无特殊需要不去调整。GC 是为了收拾 JVM 干活过程中产生的垃圾,那么当然 JVM 可用的空间越小越需要频繁的收拾。:最小堆内存(初始值),需要和最大内存保持一致,否则可能刚启动 JVM 就频繁 Full GC 扩容,极端情况下堆可能不能扩展到最大值。,目前已经开辟为 region 的内存,使用多少比例后触发开辟新的 region。:使用多少比例后开始 CMS 收集,默认 2/3,需要在实际环境中根据现象调整。
2024-03-10 13:43:17 606
原创 中间件 | Redis - [全局 hash & 渐进 rehash]
INDEX§1 全局 hash 表§2 渐进式 rehash§1 全局 hash 表全局 hash 是 redis 管理所有 key 的方式就好像 mysql 中,所有数据库表、字段的信息依然存在表中redis 中所有 key 的信息都存在一个全局的 hash 中§2 渐进式 rehash传统 rehash 有什么问题传统 rehash 是买断式的,触发 rehash 后,需要在连续的时间内完成hash 的扩容所有现存 entry 的 rehash这种方式并不适用于 redisr
2024-03-08 21:04:14 490
原创 中间件 | Redis - [big-key & hot-key]
一般情况下,使用频率较低,使用方式正确的 big-key 是允许存在的,只会影响内存使用情况,导致不均匀。可以查看某个key是不是 big-key,主要是查看此 key value序列化之后的长度。可以找生成一个 big-key 分析摘要输出如下信息。
2024-03-07 21:23:16 422
原创 微服务架构 | 性能优化 - [核心思路] TBC...
Round Trip Time,往返时间,通常指数据在网络传输上消耗的时间。:并发操作导致的性能损耗,比如高并发下 cas 导致的性能浪费。:通常是指随机 IO 带来的性能损耗。
2024-03-07 18:56:03 237
原创 中间件 | Redis - [基本信息]
而 redis,本身也可以作为分布式事务数据的持久化容器,这是因为大部分分布式事务的处理过程中,最终分布式事务数据是要被物理删除的。分布式事务中,核心的技术难点其实是分布式事务这个事本身作为数据的持久化。最常见用法,需要注意分布式锁的redis需要单点。并发量较低、业务模型比较简单的分布式系统中可用。计数器、排行榜、统计、开关标记集。
2024-03-07 18:43:22 452
原创 基础 | 安全 - [加密]
将消息经过摘要算法得到一个字符串,即数据指纹一般是 hash 算法得到一个固定长度的 hash 串,无论报文长度,此串长度固定更改任意一点报文后,得到的 hash 串的内容一般都会有很大的差别上述过程是不可逆的(但可以通过暴力映射,所谓的破解一部分)如果传输前后,数据指纹不一致,说明传输后得到的内容和期望的不同可能是数据在网络传输的过程中出现了错误可能是数据在网络传输的过程中被拦截并被伪造优点:简单,可以保证传输前后数据一致(但注意这里的传输只是保证了网络传输本身)缺点。
2024-03-07 17:36:05 1369
原创 基础 | 网络 - [网络模型]
OSI(Open System Interconnect),即开放系统互联模型,就是我们说的。TCP/IP,就是我们说的。,是对七层模型的封装简化。
2024-03-07 15:35:00 861
原创 微服务架构 | 多级缓存
通用设计思路如下图内容分发网络(CDN)可以理解为一些服务器的副本,这些副本服务器可以广泛的部署在服务器提供服务的区域内,并存有服务器中的一些数据。用户访问原始服务器时,其中的静态资源(比如banner图片、图标、js脚本、css文件、静态页面等)会由 CDN 分发到距离用户较近的副本服务器上并返回对应内容,加速访问效率原始请求经过 CDN 后,会自动按请求内容分发至距离合适的副本服务器或原始服务器OpenRestyOpenResty,附官网。
2024-03-05 19:09:15 855 1
原创 微服务架构 | 数据同步策略
同时写入需要同步的所有数据,比如同时写数据库和缓存,但需要保证所有写入必须同时成功或失败。常用于缓存,设置缓存数据的有效期,到期后按其淘汰策略删除,再次使用时重写加载。双删可以防止删缓存与写数据库之间发生读操作,导致读到脏数据。写入数据后,通过mq等异步方式通知需要同步的数据侧。常用于缓存,删除缓存,写数据库,等待,再删除缓存。通常在项目实践中多种数据同步按场景不同同时使用的。常见于跨服务数据同步,或binlog监听。
2024-03-05 18:58:18 367
原创 DDD | 入门 - [概念体系]
这里需要注意一个误区,领域是你公司进行整体的业务或其一部分,而不是你正在开发(或者既存)的项目中业务的一部分。这会导致很多开发人员认为自己目前项目中的一个模块就对应 DDD 中的一个领域,而事实上并不是,可能你的项目整体上只是你所在部门的一个领域,甚至你所在公司整体业务中划分出来的众多领域中的一个。而开发一个混沌的东西的前提是我们需要先能准确的描述它,在 DDD 的核心思路里,开发是一个以领域业务专家为核心,专家、需求提出人、研发人员一起协作的集体行为,因此这要求我们可以准确并且统一的描述目前混沌的部分。
2023-12-18 17:55:33 362
原创 一种看待 8 种基础数据结构的视角
那么数据之间的关联关系是怎么衍化的呢?我们可以这样看待数据结构:数据结构的本质是数据之间的关联关系。这是一件必然的事,否则不会出现刚刚提到的 8 中基础数据结构。,以这种关联关系为基础的数据结构,即数组,最初的数据结构。然后,我们可以这样认为:数据之间的关联关系是可以衍化的。最原始的关联关系只有一种,即。从数组开始,我们开始。
2023-08-22 14:34:53 173
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人