@TOC
基于redis的延迟消息队列设计需求背景用户下订单成功之后隔20分钟给用户发送上门服务通知短信订单完成一个小时之后通知用户对上门服务进行评价业务执行失败之后隔10分钟重试一次
类似的场景比较多 简单的处理方式就是使用定时任务 假如数据比较多的时候 有的数据可能延迟比较严重,而且越来越多的定时业务导致任务调度很繁琐不好管理。
队列设计目前可以考虑使用rabbitmq来满足需求 但是不打算使用,因为目前太多的业务使用了另外的MQ中间件。
开发前需要考虑的问题?及时性 消费端能按时收到同一时间消息的消费权重可靠性 消息不能出现没有被消费掉的情况可恢复 假如有其他情况 导致消息系统不可...
@TOC
[Springboot Thymeleaf]-20190702记录20190702:Springboot application.yml配置:12345678910 thymeleaf: prefix: classpath:/templates/# prefix: http://localhost:80/templates/# static-locations: http://localhost:80/static/ check-template-loc...
@TOC
2019总结简短概要总结,完善ing
JAVA基础
8种基本数据类型 (内存占用,实现原理,JAVA中对象以及引用的概念-equals等,多见于笔试题);
封装、组合、聚合、继承、多态、抽象,重写、重载,类作用域,抽象类、接口、内部类等(多见于笔试题);
并发、并行的区别;
JAVA反射原理;
JVM:运行时数据区域;
JVM调优;
Servlet/Filter/Listener/Interceptor区别与联系;
JAVA异常类,Java受检异常和非受检异常,类图及其联系;
线程与进程的概念;
Java 中15种锁的概念以及使用;公平锁 / 非公平锁可重入锁 / 不可重入锁独...
@TOC
转载自:本文链接 https://yanbin.blog/proper-ways-of-using-java8-optional/, 来自 隔叶黄莺 Yanbin Blog
我们知道 Java 8 增加了一些很有用的 API, 其中一个就是 Optional. 如果对它不稍假探索, 只是轻描淡写的认为它可以优雅的解决 NullPointException 的问题, 于是代码就开始这么写了
123456Optional<User> user = ...... if (user.isPresent()) { return user.getO...
@TOC
2019总结简短概要总结,完善ing
JAVA基础
8种基本数据类型 (内存占用,实现原理,JAVA中对象以及引用的概念-equals等,多见于笔试题);
封装、组合、聚合、继承、多态、抽象,重写、重载,类作用域,抽象类、接口、内部类等(多见于笔试题);
并发、并行的区别;
JAVA反射原理;
JVM:运行时数据区域;
JVM调优;
Servlet/Filter/Listener/Interceptor区别与联系;
JAVA异常类,Java受检异常和非受检异常,类图及其联系;
线程与进程的概念;
Java 中15种锁的概念以及使用;公平锁 / 非公平锁可重入锁 / 不可重入锁独...