夜坐听风
  • 首页
  • 分类
  • 标签
  • 关于
  • 友链

03-高并发

高性能的实践方案 集群部署,通过负载均衡减轻单机压力。 多级缓存,包括静态数据使用CDN、本地缓存、分布式缓存等,以及对缓存场景中的热点key、缓存穿透、缓存并发、数据一致性等问题的处理。 分库分表和索引优化,以及借助搜索引擎解决复杂查询问题。 考虑NoSQL数据库的使用,比如HBase、TiDB等,但是团队必须熟悉这些组件,且有较强的运维能力。 异步化,将次要流程通过多线程、MQ、甚至延时任务进
2022-02-01
12分布式系统

04-分布式事务

分布式事务 刚性事务 严格遵循 ACID 原则(原子性、一致性、隔离性、持久性),要求事务在执行过程中必须满足强一致性。典型的实现是 两阶段提交(2PC) 和 三阶段提交(3PC)。 柔性事务 以 BASE 理论(基本可用、柔性状态、最终一致)为设计原则,允许事务在执行过程中存在短暂的不一致,但最终会通过补偿机制达成一致。典型实现包括 TCC(Try-Confirm-Cancel)、Saga
2022-02-01
12分布式系统

05-分布式锁

分布式锁 分布式锁是一种在分布式系统中协调多个进程或服务对共享资源进行互斥访问的机制。它的核心目标是确保在分布式环境下,同一时刻只有一个节点(或实例)能够访问或操作某个共享资源(如数据库、文件、缓存等),从而避免数据不一致或并发冲突。 为何需要分布式锁 避免不同节点重复相同的工作:比如用户执行了某个操作有可能不同节点会发送多封邮件; 避免破坏数据的正确性:如果两个节点在同一条数据上同时进行操作,可
2022-02-01
12分布式系统

06-分布式ID

分布式全局ID生成方案UUID 基于时间的UUID - 版本1 这个一般是通过当前时间,随机数,和本地Mac地址来计算出来,可以通过 org.apache.logging.log4j.core.util包中的 UuidUtil.getTimeBasedUuid()来使用或者其他包中工具。由于使用了MAC地址,因此能够确保唯一性,但是同时也暴露了MAC地址,私密性不够好。 DCE安全的UUID
2022-02-01
12分布式系统

09-服务幂等

服务幂等幂等的场景 前端重复提交:提交订单,用户快速重复点击多次,造成后端生成多个内容重复的订单。 接口超时重试:对于给第三方调用的接口,为了防止网络抖动或其他原因造成请求丢失,这样的接口一般都会设计成超时重试多次。 消息重复消费:MQ消息中间件,消息重复消费。 幂等的实现方式Token机制 类似于前端重复提交、重复下单的场景就可以通过 Token 的机制实现 针对前端重复连续多次点击的情况,
2022-02-01
12分布式系统

01.Linux基本

命令命令的类型 可执行程序,这一类程序可以是用诸如 C 和 C++语言写成的程序编译的二进制文件, 也可以是由诸如shell,perl,python,ruby等等脚本语言写成的程序 。 一个内建于 shell 自身的命令。bash 支持若干命令,内部叫做 shell 内部命令 (builtins)。例如,cd 命令,就是一个 shell 内部命令。 是一个 shell 函数。这些是小规模的 she
2022-02-01
13Linux

02.Vim

Vim三个模式 指令列模式 命令 作用 :w 写入磁盘 :w! 当文件为只读时,强制写入磁盘。到底能不能写入,与用户对该文件的权限有关 :q 离开 :q! 强制离开不保存 :wq 写入磁盘后离开 :wq! 强制写入磁盘后离开 :行号 跳转到某一行 一般命令模式移动光标 l or 右箭头 : 向右移动一个字符 h or 左箭头 :向左移
2022-02-01
13Linux

04.Linux问题排查步骤

CPU100%排查 top -c :查看所有的进程 看cpu使用率 P排序 top -Hp [pid] 查看使用cpi最高的进程下的线程 十六进制转换:printf “0x%x\n” 使用jstack -l [pid] 查看堆栈日志文件,然后根据线程的十六进制查看栈日志文件中的信息 CPU负载和CPU利用率的区别是什么? 负载:Load Average,他代表的是当前系统正在运行
2022-02-01
13Linux

DDD

领域驱动设计 DDD是一种通过领域模型驱动复杂系统设计的软件方法论。其核心在于将业务逻辑与技术实现紧密结合,确保软件系统能够准确反映业务需求 目的是为了对软件设计的领域进行建模,以应对系统规模过大引起的软件复杂性问题。 什么是领域建模? 领域模型跟技术毫无关系,而是为了更有结构化的拆解和表达业务逻辑。业务逻辑来自现实世界里的具体场景,涉及可视画面、操作动作和流程。要准确表达业务逻辑需要先讲清楚每个
2022-02-01
14软件工程

单元测试

单元测试 单元测试的一些原则 测试用例能验证函数的正确性(这条都通不过就……); 测试用例尽可能涵盖边界条件(例如遍历一个链表,头指针是空,只有一个节点,链表有N个节点,N是问题描述下允许的最大节点数等等); 一些异常和错误处理(例如往一个函数里传入空指针,传入空串,这个函数能否打印一些log,返回错误码,实现加法的Add函数如何检测和处理溢出等等) java常用的测试工具mockito
2022-02-01
14软件工程
1…5678910
Hexo Fluid