無名無姓
  • 首页
  • 归档
  • 分类
  • 标签
  • 关于
  • 文档
    主题

Spring Bean总结

Spring Bean Scope spring bean的作用域范围最常用的是单例和原型,使用@Scope("prototype")指定即可。 singleton(单例):spring的scope默认是单例 prototype(原型):每一次对该bean的请求都会创建一个新的实例 request:http请求每次都会创建一个新的实例 session:http请求每个新的session都会创建一
2020-07-14
框架

分布式ID

UUID 本地生成速度快 无序 字符串,占用空间大 数据库自增ID 有序递增 插入数据时自动生成,方便 性能较低 分库分表:多主多从 不同的自增步长 号段模式:一次性拿一段号段,减少数据库操作频率 扩容时先修改现有数据库的步长,之后新实例在一个较大的起始值开始自增 Redis 性能好,满足递增 即便使用AOF,也有可能丢数据导致ID重复(如果是毫秒级的key来自增,redis重启恢复
2020-07-09
分布式

分布式事务

两阶段提交(XA) 两阶段提交需要一个事务管理器,来协调两个阶段。 事务管理器会在每个数据库进行预提交,检查是否预提交都就绪 如果都就绪,则让每个数据库提交事务,否则回滚事务 尽量保证了数据的一致性 事务管理器有单例问题,宕机了整个系统不可用 在第二步里通知提交或者回滚都可能通知失败,导致数据不一致 在第二步里通知到一半,事务管理器宕机选举,新主节点不知道那些服务还没通知 依赖于数据库,性能
2020-07-09
分布式

Spring事务总结

事务传播行为 事务传播行为用于表示一个事务里嵌套了另外一个事务时,事务之间的回滚关系。 而常用的有三个事务传播行为:REQUIRED、NESTED和REQUIRES_NEW。 本质来说,事务的回滚和事务的传播,取决于: 1. 是否有抛异常 2. 异常是否有经过spring的aop 3. 当异常经过多个aop时,这些aop事务的关系 传播行为 父方法开启了事务 父方法没开启事务 REQ
2020-07-07
框架

分布式限流

下面所说到的并发数,除了考虑请求接受的速度以外,还需要考虑每个请求的处理时间的。 但是为了方便讨论,这里就假设这些请求都能在较短的时间内完成,在合理的请求速度下,请求不会因为处理时间过长而堆积。 固定窗口计数器 例如每秒钟限制20个请求,每一秒为一个窗口,计数器记录一秒钟的请求数量,超过20次则触发限流,到下一秒计数器重置。 固定窗口计数器能控制总的请求数,但是并发数可能会是请求数的两倍。 例如第
2020-07-03
分布式

API网关总结

服务接入 API网关最重要的功能就是提供服务的统一接入。 通常是外部服务统一经过API网关请求到内部不同的服务。 这样内部服务不会直接暴露在外部,保护了内部服务的安全。 外部服务也只需要面向API网关进行对接即可,不用跟内部各种异构的服务打交道。 异步请求 API网关流量往往很大,为了能达到更大的吞吐量,需要使用IO多路复用。 一般有Tomcat+NIO和Netty+NIO两种实现。Netty需要
2020-07-03
分布式

Java并发

java内存模型(JMM) JMM模型下,每个线程都有自己的本地内存,线程对内存的操作也是先操作本地内存。 之后才将本地内存的数据刷新到主内存里,让各个线程更新共享。 内存屏障 读读屏障:确保读1读取数据后才进行读2 写写屏障:确保写1其他线程可见后才写2 读写屏障:确保读之后才写 写读屏障:确保写其他线程可见后才读 volatile volatile通过写写屏障,确保volatile变量写入
2020-06-17
java

MySQL总结

mysql架构 连接/线程处理器->[查询缓存->解析器->优化器](服务器层)->储存引擎 mysql有一个线程池,每个连接的查询只会在一个单独的线程里处理。 对于select语句,在解析语句之前,会检查缓存,缓存有就直接返回。 并发控制 mysql使用读写锁进行并发控制,读锁共享,写锁独占。 并且将锁的颗粒度分为表锁和行锁,由储存引擎实现。 Innodb会检测并回滚持有
2020-06-09
中间件

Redis总结

缓存作用 高性能:查询速度快 高并发:支持并发高 Redis模型 先注册server socket的可读事件。 当有客户端请求接入,IO多路复用就会把server socket放进队列里。 然后事件分派器会把server socket分派到应答处理器里,获得与客户端连接的socket,将socket的可读事件与命令请求处理器关联。 当客户端发出命令请求,socket有可读事件,事件分派器就会
2020-06-03
中间件

ElasticSearch总结

ES的数据结构:index -> type -> document -> field。 每一个索引会被分为多个shard,每个shard保存部分数据,分别放在不同节点上。 shard有主shard允许读写,从shard允许读,从shard会与主shard同步数据。 ES集群会选举出一个主节点,负责维护索引元数据和管理主shard和从shard。 ES写数据请求:客户端选择一个节点
2020-06-02
中间件
123456…13

搜索

Hexo Fluid

备案?不存在的

总访问量 次 总访客数 人