- 博客(10)
- 资源 (9)
- 收藏
- 关注
原创 开发-Cron表达式
1. 背景2. 介绍3. 源码4. 实战4.1 利用Cron表达式获取下一个有效时间import org.quartz.CronExpression;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;public class Cron { public static void main(String[] args) throws Parse
2020-10-31 10:35:45 180
原创 问题-本地deploy无法上传至私仓
1.背景直接将本地项目全部deploy至私仓,但是出现下列未知错误,不知道怎么解决。2.原因问题找了很久,最终还是用排除法找到了问题原因。<plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>2.2.1.RELEASE</
2020-10-28 22:58:16 345
原创 并发- ReentrantLock
1. 背景2. 介绍可重入锁ReentrantLock,支持可重入的锁。表示同一个线程可对资源重复加锁。2.1 特性支持公平锁和非公平锁,默认是非公平锁。公平锁的存在是减少“饥饿”发生的概率,等待越久的请求优先满足;3. 源码3.1 线程如何重复获取锁及最终的释放(以非公平锁为例)final boolean nonfairTryAcquire(int acquires) { final Thread current = Thread.currentThre
2020-10-22 11:22:44 140
原创 Mysql-Druid连接池配置
1. 背景2. 介绍(1)连接池大小配置连接数 = ((核心数 * 2) + 有效磁盘数)按照这个公式,如果说你的服务器 CPU 是 4核 i7 的,连接池大小应该为((4*2)+1)=9。取个整, 我们就设置为 10 吧。(2)3. 源码4. 实战假设数据库实例是4核8Gspring: datasource: url: jdbc:mysql://127.0.0.1:3306/test?serverTimezone=Asia/Shanghai&u.
2020-10-20 23:31:58 2820
原创 开发-Guava
1. 背景2. 介绍Guava工程包含了若干被Google的 Java项目广泛依赖 的核心库,例如:集合 [collections] 、缓存 [caching] 、原生类型支持 [primitives support] 、并发库 [concurrency libraries] 、通用注解 [common annotations] 、字符串处理 [string processing] 、I/O 等等。3. 源码4. 实战5. FAQ6. 参考资料【Google Guava官方教程.
2020-10-20 16:05:46 98
原创 分布式-分布式ID之Snowflake(雪花算法)
1. 背景在复杂分布式系统中,往往需要对大量的数据和消息进行唯一标识。如在美团点评的金融、支付、餐饮、酒店、猫眼电影等产品的系统中,数据日渐增长,对数据分库分表后需要有一个唯一ID来标识一条数据或消息,数据库的自增ID显然不能满足需求;特别一点的如订单、骑手、优惠券也都需要有唯一ID做标识。此时一个能够生成全局唯一ID的系统是非常必要的。(1)业务系统对分布式ID有哪些诉求全局唯一性:不能出现重复的ID号,既然是唯一标识,这是最基本的要求; 趋势递增:在MySQL InnoDB引擎中使用的是聚
2020-10-20 00:13:02 1365
原创 安全-如何设计一个安全的对外接口
1. 背景在某些场景(提供第三方API接口的调用)下为了保证数据在传输过程中的安全性,需要对接口进行签名认证。一般而言,如果不是特别需要自己设计,可以直接将接口挂在阿里API网关上(可能会有部分的限制,如流量)。这里也是参照阿里网关签名思路写的。2. 安全措施(1)数据加密我们知道数据在传输过程中是很容易被抓包的,如果直接传输比如通过http协议,那么用户传输的数据可以被任何人获取;所以必须对数据加密,常见的做法对关键字段加密比如用户密码直接通过md5加密;现在主流的做法是使用https..
2020-10-12 17:55:44 838 2
原创 Mysql-事务
1. 事务特性原子性 (atomicity):强调事务的不可分割. 一致性 (consistency):事务的执行的前后数据的完整性保持一致. 隔离性 (isolation):一个事务执行的过程中,不应该受到其他事务的干扰 持久性(durability) :事务一旦结束,数据就持久到数据库2.Mysql事务3.Spring事务传播机制@Transactional(propagation=Propagation.REQUIRED)如果有事务, 那么加入事务, 没有的话新建一个(默认.
2020-10-08 17:50:31 74
JavaEE开发的颠覆者 Spring Boot实战+源码案例
2018-08-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人