10年 Java程序员,硬核人生!勇往直前,永不退缩!

欢迎围观我的git:https://github.com/R1310328554/spring_security_learn 寻找志同道合的有志于研究技术的朋友,关注本人微信公众号: 觉醒的码农,或Q群 165874185

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
上一页 1 2 3 4 5 6 ··· 14 下一页

2021年9月2日

摘要: 默认 mvn deploy 会上传 jar, 但是如何 maven java工程上传源码到私服? <build> <resources> <!--mvn打包时,加入mvn外的jar包--> <resource> <directory>lib</directory> <targetPath>BOOT- 阅读全文
posted @ 2021-09-02 20:44 CanntBelieve 阅读(653) 评论(0) 推荐(0) 编辑

摘要: maven 会出现循环依赖吗? 显然会, 比如 a 依赖b, b 依赖 c, c 依赖a, 或者简单点: a 依赖b, b 依赖 a。 当然, 这里出现多次的 maven 工程 a/b/c, 其版本应该是 一致的。 就是说 不能是 a-v1 依赖b-v1, b-v1 依赖 c-v1, c-v1 依赖 阅读全文
posted @ 2021-09-02 20:43 CanntBelieve 阅读(2794) 评论(0) 推荐(0) 编辑

2021年9月1日

摘要: 主要参考: https://stackoverflow.com/questions/5916157/how-to-get-the-maven-local-repo-location 1. 如果是只需要查看本地仓库配置最终生效目录地址的话可以使用如下命令:(注意用于linux系统,在windows下去 阅读全文
posted @ 2021-09-01 09:12 CanntBelieve 阅读(1588) 评论(0) 推荐(0) 编辑

2021年8月28日

摘要: System.out 和 System.err 的区别, 很基础吧, 但是 仔细观察idea 的后台日志, 你会有新的发现。 测试一段极其简单的代码: public class TestBasic { public static void main(String[] args) { System.o 阅读全文
posted @ 2021-08-28 18:56 CanntBelieve 阅读(929) 评论(0) 推荐(0) 编辑

2021年8月22日

摘要: 观察quartz 的sql日志, 会发现其中有很多的 job状态的转变, 那么 有哪些呢 qrtz_TRIGGERS 表的状态 qrtz_FIRED_TRIGGERS 也好, 状态最开始是 WAITING, 然后在时间窗口被扫描到 则获取锁准备执行, 获取锁成功则更新为 ACQUIRED, 但是 对 阅读全文
posted @ 2021-08-22 15:03 CanntBelieve 阅读(496) 评论(0) 推荐(0) 编辑

摘要: 注意事项: 1 scheduler.scheduleJob(jobDetail, trigger); 的时候, jobKey, triggerKey 都不能和数据库中已经存在的 冲突,否则就注册不上!!!。 2 scheduler.start(); 之后 , 数据库所有的 触发器 都会被扫描, 然后 阅读全文
posted @ 2021-08-22 14:39 CanntBelieve 阅读(220) 评论(0) 推荐(0) 编辑

摘要: 注意事项: 1 scheduler.scheduleJob(jobDetail, trigger); 的时候, jobKey, triggerKey 都不能和数据库中已经存在的 冲突,否则就注册不上!!!。 2 scheduler.start(); 之后 , 数据库所有的 触发器 都会被扫描, 然后 阅读全文
posted @ 2021-08-22 14:37 CanntBelieve 阅读(158) 评论(0) 推荐(0) 编辑

摘要: 3. quartz基本原理 3.1. 核心元素 Quartz核心要素有Scheduler、Trigger、Job、JobDetail,其中trigger和job、jobDetail为元数据,而Scheduler为实际进行调度的控制器。 Trigger Trigger用于定义调度任务的时间规则,在Qu 阅读全文
posted @ 2021-08-22 14:35 CanntBelieve 阅读(180) 评论(0) 推荐(0) 编辑

摘要: 设置quartz的日志打印,为完整日志 引入p6spy : 配置spy.properties: # 指定应用的日志拦截模块,默认为com.p6spy.engine.spy.P6SpyFactory #modulelist=com.p6spy.engine.spy.P6SpyFactory,com.p 阅读全文
posted @ 2021-08-22 14:29 CanntBelieve 阅读(1151) 评论(0) 推荐(0) 编辑

摘要: misfire 到底怎么理解? misfire 的概念并不是源自quartz ,理解它是很重要的,否则,很多奇怪的现象会让你莫名其妙。 misfire 简单来说,就是因为某些原因(比如服务器挂了,崩溃了,手动停止了,太繁忙了), 导致某些应该被调度的任务没有被调度, 就会可能造成misfire —— 阅读全文
posted @ 2021-08-22 14:22 CanntBelieve 阅读(558) 评论(0) 推荐(0) 编辑

摘要: job 在数据库中存储是是一个 class name,意味着其实际的执行内容是可以随时变的—— 它跟着class 文件而变。 这其实给与了 我们很大的灵活性! job 是线程安全的? 答案是 yes,因为:quartz 是根据 表的 jobClass 字段, 每次创建job 实例,然后执行的! jo 阅读全文
posted @ 2021-08-22 13:55 CanntBelieve 阅读(275) 评论(0) 推荐(0) 编辑

摘要: 全部日志 06:58:18.802 [main] DEBUG o.q.i.j.StdRowLockSemaphore - Lock 'STATE_ACCESS' is desired by: main 06:58:18.887 [main] DEBUG o.q.i.j.StdRowLockSemap 阅读全文
posted @ 2021-08-22 13:47 CanntBelieve 阅读(2103) 评论(0) 推荐(0) 编辑

摘要: 一般是需要设置 org.quartz.jobStore.isClustered = true, 测试发现, 设置org.quartz.jobStore.isClustered = false 和 true , 表面上差别不是很大。 都是一样会执行。 都是。抢占锁的方式执行。。 不过 不是平均每个节点 阅读全文
posted @ 2021-08-22 13:39 CanntBelieve 阅读(314) 评论(0) 推荐(0) 编辑

2021年8月21日

摘要: GlobalEventExecutor 是AbstractScheduledEventExecutor 的实现,就是提供了一个单线程的单例,然后自动启动线程去执行任务,且如果空闲(即没有任务)超过1s则停止。 需要注意的是, 经测试, 这里的1s 是指总共耗时超过1s。 就是说,如果一个任务执行n久 阅读全文
posted @ 2021-08-21 00:54 CanntBelieve 阅读(436) 评论(0) 推荐(0) 编辑

2021年8月20日

摘要: 在 redis.windows.conf 配置了notify-keyspace-events: notify-keyspace-events "AKE" 但是 重启redis 之后还是没有反应, 还是不接收不到redis 事件,why? 后来发现 配置文件问题, redis-server.exe 启 阅读全文
posted @ 2021-08-20 10:01 CanntBelieve 阅读(776) 评论(0) 推荐(0) 编辑

2021年7月27日

摘要: git rebase 多次, 发现反而出了问题。 git rebase 发现下面的错误(一开始没有注意)。 14:10 Build completed successfully with 1 warning in 1 sec, 715 ms 14:14 Tests passed: 0 14:14 T 阅读全文
posted @ 2021-07-27 20:28 CanntBelieve 阅读(1662) 评论(1) 推荐(0) 编辑

摘要: 一直这个错误: 下面的方法试了,不行。。。 明明就在一个包里面的类,引用的时候都出现了红色错误,无法导入类。或者其他的不可思议的错误。可以试试“清除缓存重启”:第一步:菜单中选择file->invalidate caches / restart 第二步:在弹出框中选择Invalidate and R 阅读全文
posted @ 2021-07-27 20:07 CanntBelieve 阅读(1519) 评论(0) 推荐(0) 编辑

2021年7月23日

摘要: 不知道改了哪里,后面一直都是这个错误: 2021-07-23 18:53:06.383 [restartedMain] DEBUG o.s.b.diagnostics.LoggingFailureAnalysisReporter-report-37 - Application failed to s 阅读全文
posted @ 2021-07-23 20:29 CanntBelieve 阅读(2602) 评论(0) 推荐(0) 编辑

2021年7月12日

摘要: 先引用 https://www.jianshu.com/p/039fb90fa5bf 做个小结: 在Netty上,Pipeline把ChannelHandler串联在一起来组织处理逻辑。比如实现协议栈HTTP,HTTP2。而ChannelHandlerContext可以认为是Pipeline用于串联 阅读全文
posted @ 2021-07-12 23:40 CanntBelieve 阅读(427) 评论(0) 推荐(0) 编辑

2021年6月29日

摘要: Channel和ChannelPipeline,ChannelHandler、ChannelHandlerContext之间的关系 ( 以下分别简写为chann或channel, pipeline,handler,context或ctx ) 简谈启动过程的初始化 服务端、客户端的启动都是类似的, 主 阅读全文
posted @ 2021-06-29 00:22 CanntBelieve 阅读(702) 评论(0) 推荐(0) 编辑

2021年6月16日

摘要: 发现问题, [root@registry ~]# systemctl status haproxy● haproxy.service - HAProxy Load Balancer Loaded: loaded (/usr/lib/systemd/system/haproxy.service; en 阅读全文
posted @ 2021-06-16 08:46 CanntBelieve 阅读(1125) 评论(0) 推荐(0) 编辑

2021年6月14日

摘要: 注解说明 @Sharable 的作用其实非常简单,也不难理解,但是官方的说明有点难理解。 Indicates that the same instance of the annotated ChannelHandler can be added to one or more ChannelPipel 阅读全文
posted @ 2021-06-14 13:31 CanntBelieve 阅读(2538) 评论(1) 推荐(1) 编辑

2021年6月7日

摘要: 先下结论: 当客户端写的速度比较小的时候, 即 客户端写的速度 <= 服务端 readLimit, 那么, 客户端 写的速度就是 服务端读的速度, 相当于是没有限速,客户端的写不会被阻塞,客户端也不会出现 isWritable = false的情况;(但客户端每次读的数据最大是65536,这个是 缓 阅读全文
posted @ 2021-06-07 07:07 CanntBelieve 阅读(190) 评论(0) 推荐(0) 编辑

2021年5月30日

摘要: 如何测试netty 的流量整形呢? 因为 其实服务端、客户端都可以限速,读写也可以限速,有多个组合,所以比较复杂; 考虑一种最简单的情况,就是单独对客户端写进行限速,如下: 服务端等待客户端连接;接受客户端请求之后,打印每秒收到的数据有多少, 然后简单打印一下速率;怎么做呢? 服务端对每一个客户端的 阅读全文
posted @ 2021-05-30 10:37 CanntBelieve 阅读(376) 评论(0) 推荐(0) 编辑

2021年5月29日

摘要: 重点摘要 netty通过AbstractTrafficShapingHandler 即TSH 来实现限流的基本框架,它的流量整形的具体作用是? 分析已经有同行做了,而且分析的非常好,这里做些摘要(https://www.jianshu.com/p/bea1b4ea8402): AbstractTra 阅读全文
posted @ 2021-05-29 12:15 CanntBelieve 阅读(1106) 评论(0) 推荐(0) 编辑

2021年5月1日

摘要: 雪花算法概述 雪花算法简单来说是这样一个长整形数值。它64位,8个字节,刚好一个long。(为什么雪花算法ID是64位? 大概也是这个原因吧。理论上当然可以使用更多位,但是其实不是很有必要) 雪花算法,在单个节点上是有序的,如同 号段模式,但它也不是 全局严格有序,而是单个节点严格递增。 雪花算法的 阅读全文
posted @ 2021-05-01 16:10 CanntBelieve 阅读(2345) 评论(1) 推荐(0) 编辑

2021年4月24日

摘要: 号段模式 VS 批量生成ID 所谓 号段模式 跟 批量生成ID 有什么区别? 乍一看,感觉基本上是一个意思。 其实还是不同的! 批量生成ID 一次按需批量生成多个ID( 也就是一批),每次生成都需要访问数据库,将数据库中对应的批 消耗掉,并在内存中记录下来。 批量生成是 一次获取一批的数据, 比如一 阅读全文
posted @ 2021-04-24 17:32 CanntBelieve 阅读(1813) 评论(6) 推荐(0) 编辑

2021年4月13日

摘要: guava 16版本中的WarmingUp 的许可,即storedPermits是字段,是非常关键的属性,它会随时间推移不断的变化,我们怎么样即使的动态观察它呢? 因为它是私有字段,而且是惰性的,因为因为RateLimiter 允许提前消费,这意味着它确实比较难观察。 我想到了下面的方法: publ 阅读全文
posted @ 2021-04-13 06:03 CanntBelieve 阅读(169) 评论(0) 推荐(0) 编辑

2021年4月12日

摘要: 平滑限流 什么是平滑限流? 平就是平稳、滑是没有折线(好像也不太准确),没有曲线?(曲线其实也可以有Smooth的意思)丝滑?总之是比较Smooth就对了。guava中RateLimiter 的实现只有平滑限流的实现,即SmoothRateLimiter。 而SmoothRateLimiter 也是 阅读全文
posted @ 2021-04-12 06:32 CanntBelieve 阅读(373) 评论(1) 推荐(0) 编辑

2021年3月14日

摘要: 如何保证缓存与数据库的双写一致性? 这是个难题,本文在阅览大量专家博客之后吐血总结10种方案! 令 tu为更新线程,tr读线程; tx 为任意线程,就是说可能是tu,也可能是tr。数据库记为D,缓存记为C。从而: 新增数据库记录记为aD, 新增数据库记录记为aC, 更新数据库记录 记为uD,更新缓存 阅读全文
posted @ 2021-03-14 12:17 CanntBelieve 阅读(844) 评论(0) 推荐(0) 编辑

2021年3月13日

摘要: 什么是平滑限流?它相对于固定、滑动窗口限流,它可以提供某种平滑流量的功能。RateLimiter本意是 速率限制器,而它的2个实现都是平滑的!RateLimiter 有2个实现是 SmoothBursty和SmoothWarmingUp,两个实现都是Smooth开头,表明了其平滑的特性。所以,可以认 阅读全文
posted @ 2021-03-13 22:51 CanntBelieve 阅读(1412) 评论(0) 推荐(0) 编辑

2021年3月9日

摘要: 海阔天空 - 信乐团 我曾怀疑我 走在沙漠中 从不结果 无论种什么梦 才张开翅膀 风却变沉默 习惯伤痛能不能算收获 庆幸的是我 一直没回头 终于发现真的是有绿洲 每把汗流了生命变的厚重 走出沮丧才看见 新宇宙 海阔天空 在勇敢以后 要拿执着 将命运的锁打破 冷漠的人 谢谢你们曾经看轻我 让我不低头 阅读全文
posted @ 2021-03-09 08:20 CanntBelieve 阅读(95) 评论(0) 推荐(0) 编辑

2021年3月7日

摘要: redis lua 限流有很多种方式, 本文分析一种最简单的最常见的方式。 --获取KEY local key1 = KEYS[1] --获取参数 local avg1 = ARGV[1] local avg2 = ARGV[2] --打印日志到reids --注意,这里的打印日志级别,需要和red 阅读全文
posted @ 2021-03-07 12:09 CanntBelieve 阅读(171) 评论(0) 推荐(0) 编辑

摘要: 这样一个简单方法, public void as() throws Exception{ URL url = new URL("http://localhost:8769/accr/print"); HttpURLConnection urlConnection = (HttpURLConnecti 阅读全文
posted @ 2021-03-07 11:52 CanntBelieve 阅读(3797) 评论(0) 推荐(0) 编辑

2021年3月6日

摘要: 漏桶算法和令牌桶算法的区别, 说得清楚吗? 其实两个算法并不难理解,当然有区别,但是感觉区别没那么大, 看网上的一下说明,感觉是误导他人。 引用网上说明: 漏桶算法和令牌桶算法的区别 **漏桶算法的出水速度是恒定的,**那么意味着如果瞬时大流量的话,将有大部分请求被丢弃掉(也就是所谓的溢出)。漏桶算 阅读全文
posted @ 2021-03-06 17:16 CanntBelieve 阅读(314) 评论(0) 推荐(0) 编辑

2021年2月24日

该文被密码保护。 阅读全文
posted @ 2021-02-24 07:16 CanntBelieve 阅读(56) 评论(0) 推荐(0) 编辑

2021年2月20日

摘要: maven日志观察 观察 maven- 开头的行,可以看到打包的过程: 首先是 Scanning for projects... 然后下载一下 xx-maven-metadata.xml [INFO] maven-resources-plugin:3.1.0:resources (default-r 阅读全文
posted @ 2021-02-20 06:31 CanntBelieve 阅读(1026) 评论(0) 推荐(0) 编辑

该文被密码保护。 阅读全文
posted @ 2021-02-20 05:29 CanntBelieve 阅读(52) 评论(0) 推荐(0) 编辑

2021年1月31日

摘要: 简而言之: 对于 RedisTemplate来说, k、v 都可以是任何类型, 对于 StringRedisTemplate 来说, k、v 都必须是 String类型,包括 hash、set。 而且key 不能使用 对象,因为不会调用 toString(), 否则引起 cast 异常 传给 Red 阅读全文
posted @ 2021-01-31 16:50 CanntBelieve 阅读(631) 评论(0) 推荐(0) 编辑

2021年1月30日

摘要: 测试发现,只有 一个 alg 是必填的, 其他都是可选的! 可能是有默认值! 修改HEADER 丝毫不会影响 PAYLOAD,反之亦然!! 就是说 HEADER PAYLOAD 相互独立!! alg: 有很多可选,但是不能随便qwer这样 iat: issued at, 只要是数字就可以, 随便填不 阅读全文
posted @ 2021-01-30 20:46 CanntBelieve 阅读(237) 评论(0) 推荐(0) 编辑

上一页 1 2 3 4 5 6 ··· 14 下一页