02 2022 档案
摘要:Netty 的零拷贝 传统意义的拷贝 是在发送数据的时候,传统的实现方式是: File.read(bytes) Socket.send(bytes) 这种方式需要四次数据拷贝和四次上下文切换: 数据从磁盘读取到内核的read buffer 数据从内核缓冲区拷贝到用户缓冲区 数据从用户缓冲区拷贝到内核
阅读全文
摘要:1、newCachedThreadPool 创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。 这种类型的线程池特点是: 工作线程的创建数量几乎没有限制(其实也有限制的,数目为Interger. MAX_VALUE), 这样可灵活的往线程池中添加线程。 如
阅读全文
摘要:项目计划、需求调研、需求分析、概要设计、数据库设计、详细设计、编码、测试、上线。
阅读全文
摘要:1、保证消息不丢失(三步)1.1、开启事务(不推荐)1.2、开启confirm(推荐)1.3、开启RabbitMQ持久化(交换机、队列、消息)1.4、关闭RabbitMQ自动ack(改成手动) 2、保证消息不重复消费2.1、幂等性(每个消息用一个唯一标识来区分,消费前先判断标识有没有被消费过,若已消
阅读全文
摘要:MySQL 事务 本文所说的 MySQL 事务都是指在 InnoDB 引擎下,MyISAM 引擎是不支持事务的。 数据库事务指的是一组数据操作,事务内的操作要么就是全部成功,要么就是全部失败,什么都不做,其实不是没做,是可能做了一部分但是只要有一步失败,就要回滚所有操作,有点一不做二不休的意思。 假
阅读全文
摘要:在声明事务时,只需要通过value属性指定配置的事务管理器名即可,例如:@Transactional(value="transactionManagerPrimary")。 除了指定不同的事务管理器之后,还能对事务进行隔离级别和传播行为的控制,下面分别详细解释: #### 隔离级别 隔离级别是指若干
阅读全文