- 博客(8)
- 收藏
- 关注
原创 RabbitMQ延时队列
RabbitMQ延时队列消息的TTL(Time To Live)死信路由Dead Letter Exchanges(DLX)实现流程场景,订单30min后未支付取消常用方案:spring的schedule定时任务轮询数据库缺点:消耗系统内存,增加数据库压力,存在较大的时间误差解决方案:rabbitmq的消息TTL和死信Exchange结合消息的TTL(Time To Live)rabbitmq可以对队列和消息分别设置TTL死信路由Dead Letter Exchanges(DLX)进入条件:
2021-04-04 21:17:36
188
原创 分布式事务
分布式事务CAP & Raft原理CAP分布式一致性 CPBASE理论--最终一致性分布式可用性 AP分布式几种方案2PC模式柔性事务--TCC事务补偿柔性事务--最大努力通知方案柔性事务--可靠消息+最终一致性方案--异步确保CAP & Raft原理CAP一致性(consistency)(弱一致,强一致,最终一致)可用性(Availability)部分故障,整体可用,主要考虑时延,不让用户等待太久(年容忍停机时间,可用水平)分区容错性(Partition tolerance)部分
2021-04-03 20:26:54
387
1
原创 LockSupport
LockSupport理解LockSupport是什么synchronized--wait--notifylock-condition--await--signalLockSupport--park()/park(Object blocker)--unpark(Trhead thread)使用需求案例LockSupport是什么阻塞线程,解除阻塞 park,unparksynchronized–wait–notifyA线程wait,B线程notify,问题:1,不在synchronized里,不可
2021-03-30 20:41:27
126
原创 Spring事务
Spring事务声明式事务声明式事务1.给方法上标注@Transactional 表示当前方法是一个事务2.@EnableTransactionManagement开启注解的事务管理功能3.配置事务管理器(组件)来管理事务,注册事务管理器在容器中,@Bean...
2021-03-20 22:19:45
93
原创 AOP
AOP实现方式源码原理容器启动流程实现方式@EnableAspectJAutoProxy开启基于注解的AOP功能@Aspect注解标注切面@before @after三步:将业务逻辑喝切面类加入容器,告诉spring哪个是切面类@Aspect @Pointcut(“execution(public …)”)切入点表达式切面类的每一个方法上标注通知注解,告诉spring何时运行开启@EnableAspectJAutoProxy源码原理AOP[查看给容器中注入了什么组件,组件什么时候工作
2021-03-19 17:23:27
151
原创 Bean生命周期
Bean生命周期Bean生命周期概述演示指定方法IOC容器启动BeanPostProcessor 应用Bean生命周期概述演示bean -创建- 初始化- 销毁容器管理bean生命周期我们可以自定义初始化和销毁方法初始化-对象创建完成并赋值好,初始化(单实例)销毁- 单实例:容器关闭时,多实例:手动指定方法1.指定初始化@Bean(initMethod = “init”, destroyMethod = “destroy”)2.继承InitializingBean, Disposable
2021-03-17 23:23:09
100
原创 设计模式
设计模式代理模式静态代理ITeacherDao接口,代理对象和被代理对象都实现此接口,被代理对象作为代理对象的构造器入参,代理对象执行teach方法,执行添加过逻辑的teach方法动态代理代理对象不需要实现接口,目标对象需要实现接口;代理对象是利用JDK的api,newProxyInstance(loader,interfaces,hander)分别为,类加载器target.getclass.getclass,接口类型(泛型)target.getInterfaces(),匿名内部类new In
2021-03-17 16:12:38
140
2
原创 NIO-epoll理解
NIO-epoll理解IOBIONIOIO本质上由IO-NIO/多路复用,是为了减少系统调用的阻塞BIOsocket通信,bio会阻塞等待server输入,可以创建每接收一个输入新建线程执行(传统方式)jps查看java进程netstat -natp查看socket缺点:线程太多,原因:阻塞NIOserverSocketChannel.configureBlocking(false) 手动配置非阻塞原本阻塞的方法不会阻塞,会立刻返回(-1或者null)通道循环轮询内核查看是否有新增任
2021-03-17 10:05:20
209
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人