博客

54

数据库的隔离级别

事务只是一个改变,是一些操作集合;用专业的术语去解释,就是一个程序的执行单元;事务本身并不包含这四个特性,我们需要通过某些手段,尽可能让这个执行单元满足这四个特性,那么我们才可以称它为一个正确的事务。......

设计微服务时应该遵循什么原则?

1. 单一职责原则:让每个服务能独立,有界限的工作,每个服务只关注自己的业务。做到高内聚。 2. 服务自治原则:每个服务要能做到独立开发、独立测试、独立构建、独立部署、独立运行,与其他服务进行解耦。 3. 轻量级通信原则:让每个服务之间的调用是轻量级的,并且能够跨平台、跨语言。比如采用Restful风格,利用消息队列进行通信。 4. 粒......

限流的一些算法

计数器算法,是指在指定的时间周期内累加访问次数,达到设定的阈值时,触发限流策略。下一个时间周期进行访问时,访问次数清零。此算法无论在单机还是分布式环境下实现都非常简单,使用redis的incr原子自增性,再结合key的过期时间,即可轻松实现。......

关于分布式锁的说明

一、分布式锁在项目中有哪些应用场景? 使用分布式锁一般要满足一下场景: 1. 系统是一个分布式系统,集群,java的锁已经锁不住了(因为,java 的锁只在每个jvm中生效,而分布式系统是多个jvm服务)。 3. 操作共享资源,比如库里唯一的用户数据。 5. 同步访问,即多个进程同时操作共享资源。......

分布式id生成方案有哪些?

分布式id生成方案比较......

描述一下ABA问题?

1.有两个线程同时去修改一个变量的值,比如线程1、线程2,都更新变量的值,将变量的值从A更新到B。 2.首先线程1获取到CPU的时间片,线程2由于某些原因发生阻塞进行等待,此时线程1进行比较更新(CompareAndSwap),成功将变量值由A更新成B。 3.更新完毕之后,恰好又有线程3进来想要把变量的值从B变成回A,线程3进行比较更新,将变量的值由B更新成A。 4.线程2获取到CPU时间片......