- 博客(46)
- 资源 (2)
- 问答 (1)
- 收藏
- 关注
原创 Kafka消费者如何优雅下线
我们在Kafka消费程序中,可能会调用dubbo接口,也可能会使用线程池,连接池等,但是在服务下线的时候,kafka的消费总是会报错。本文主要以kafka消费者和dubbo接口为例,给出了优雅下线的解决方案,同样也适用于线程池、连接池、rocketMQ消费者等的优雅下线。
2025-01-10 20:27:32
1127
原创 Redis偶发Cannot determine a partition for slot报错问题
lettuce 6.2.0.RELEASE 版本存在的Cannot determine a partition for slot报错
2024-01-05 20:10:52
2696
原创 Spring事务源码解析
主要分为两部分:第一部分简单介绍Spring事务相关的一些基本概念;第二部分详细分析了Spring事务整个执行流程的源码,包括事务的开启、提交、回滚等
2023-01-12 00:19:06
1333
原创 Redisson分布式锁原理浅析
Redisson锁是我们常用的分布式锁,其核心方法就是获取锁对象(getLock)、加锁(lock、tryLock)和释放锁(unlock),下面从锁的初始化、加锁和释放锁三部分分析Redisson锁的原理。
2022-08-05 15:06:43
5138
原创 @KafkaListener原理和动态监听kafka topic
首先分析了@KafkaListener的原理,并从其原理入手,通过读取配置,实例化KafkaMessageListenerContainer并调用其start()方法,实现动态kafka topic的监听
2022-04-19 20:55:54
15745
33
原创 项目启动时,rocketMQ发送失败
rocketMQ报错分析及解决:The producer service state not OK, CREATE_JUST
2022-03-01 21:38:04
9277
原创 kafka源码分析-consumer的分区策略
kafka提供了三种分区策略:RangeAssignor、RoundRobinAssignor和StickyAssignor,本文对这三种策略的源码进行了详细的分析并给出示例解释,尤其是对StickyAssignor进行了大篇幅的详细解析
2022-02-16 12:17:22
1680
2
原创 Redis实现延迟队列的原理
这里对Redisson的延迟队列的底层实现逻辑进行了简单的探讨,Redisson实现延迟队列主要使用了一个阻塞队列(使用了redis的list机构)和一个延迟队列(一个list结构、一个score为到期时间的zset结构,一个分布订阅的通道)。本博客的内容包括初始化时各redis结构的初始化,定时任务的执行过程,数据如何插入,以及数据如何阻塞读取。
2021-10-04 01:12:02
5556
8
原创 mysql索引与B+树浅析
mysql索引与B+树浅析一、为什么B+树更适合用于索引一、为什么B+树更适合用于索引二、B+树的原理,mySQL页是怎么分裂的三、聚集索引和辅助索引(非聚集索引)四、B+树索引的使用,联合索引等五、MySQL索引优化,包括EXPLIAN命令和几个常用的索引优化技巧
2021-08-28 17:23:12
700
原创 使用RedisTemplate的PipeLine没有返回值原因分析
使用RedisTemplate的PipeLine没有返回值1、现象2、分析原因1、RedisTemplate的executePipelined方法源码2、RedissionConnection的closePipeline方法源码3、如何获取返回值1、现象**背景:**在使用redis去重时,试图使用redisTemlate的pipeline进行setnx操作,根据返回值判断参数是否重复。测试代码:private List<Boolean> test1() { List<Boole
2020-11-23 00:09:25
4924
原创 kafka教程:基础概念、win10下安装与配置、Java中使用kafka
详细描述了kafka基础概念、win10下安装与配置、Java中使用kafka
2020-05-18 18:34:10
611
原创 Java如何使用redis:Jedis和RedisTemplate
本文详细介绍了Java使用redis的两种方式:Jedis和RedisTemplate的详细配置和使用。其中Jedis提供了各个数据类型的操作方法;RedisTemplate介绍了如何配置redis,以配置类的方式进行结合,提供了一个封装类RedisUtil更好的使用RedisTemplate,并且详细介绍了RedisTemplate的序列化问题(解决RedisTemplate前缀问题)。
2020-05-07 17:55:21
3425
2
原创 slf4j的使用:常规使用、注解、存储到数据库
slf4j的使用,注解@Slf4j的应用,以logback为例将日志写入数据库目录一、应用示例二、注解@Slf4j三、将日志保存至数据库slf4j是外观模式的典型应用。slf4j只是一个日志标准,并不是日志系统的具体实现。slf4j能够提供日志接口,提供获取具体日志对象的方法。slf4j-simple、logback都是slf4j的具体实现,log4j虽然不直接实现slf4j,但是有专门的一层桥接slf4j-log412来实现slf4j。一、应用示例1、引入依赖&...
2020-05-01 11:38:53
5480
1
原创 Java枚举类enum原理详解
Java枚举类enum原理详解为什么要使用枚举类枚举类原理三、enum类所继承的父类java.lang.Enum其他用法附java.lang.Enum源码为什么要使用枚举类枚举类enum作为Java5新增特性的一部分,是用来代替常量的。比如以下场景,定义一年的四个季节:public class Season { public final int SPRING = 1; pu...
2020-04-29 21:28:59
1082
原创 用IDEA和maven搭建的ssm项目示例(Spring,SpringMVC,Mybatis)
ssm项目示例教程一、数据库二、idea maven创建项目三、pojo包五、applicationContext.xml六、service包及service.impl包七、开始编写前端界面八、springMVC.xml九、web.xml十、controller包十一、部署到tomcat上十二、在此基础上可以在扩展自己想要的功能十三、一些配置上踩的坑前后端都有,包括springMVC使用JQue...
2020-04-27 13:32:43
671
原创 idea maven创建spring项目找不到applicationContext解决办法
maven创建spring项目报错Exception in thread “main” org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from class path resource [applicationContext.xml]; nested ...
2020-04-20 17:11:47
5780
原创 阿里巴巴Java开发规范学习笔记
建议直接看阿里巴巴Java开发规范百度网盘链接:https://pan.baidu.com/s/1vfAaBYDac-FntF_IUx69nw提取码:6bm2一、编程规约(一)命名风格1、POJO类中布尔类型变量不要加is,否则部分框架解析会引起序列化错误。注意:MySQL表达是否的值采用is_xxx的形式,所以需要在设置is_xxx到xxx的映射关系。2、避免子父类的成员变量之间、...
2020-04-20 13:55:07
278
原创 IDEA使用git详细教程
包括:git安装与IDEA中的配置,从云端导入项目,本地项目提交至云端,本地项目修改及更新提交。一、安装及配置下载链接:https://git-scm.com/download/win1、都默认就行,点点点。安装完成后win+R打开控制台,输入git命令,若安装成功,则2、下一步需要为IDEA指定git路径,File->settings->Version Control->...
2020-04-16 18:10:53
1472
原创 手撕LRU算法
LRU(Least Recently Used)最近最少使用,是一种页面置换算法,自认为这个翻译有点不太贴切。LRU通俗来说就是在一块大小有限的内存中,最近访问的(包括增改查)数据放到最前面,当加入新的数据时,如果已满,则需要先删除最后面的数据。所以就是将最近使用的放到最前面。hashmap+双向链表实现import java.util.HashMap;import java.util.Ma...
2019-11-14 02:19:39
518
原创 Java web发送邮箱验证码,并验证正确性
Java web实现邮箱验证码功能第一步、开启发件邮箱权限(以QQ邮箱为例)第二步、生成验证码第三步、发送邮件第四步、web前端第五步、servlet程序先放一张程序的预览图工程下载链接链接:https://pan.baidu.com/s/1Lrm8d6mBemKIWKd0ll0E9g提取码:vrwh第一步、开启发件邮箱权限(以QQ邮箱为例)设置->账户->开启POP3/...
2019-11-08 00:36:26
9160
35
原创 RD算法及其距离徙动校正(原理及matlab仿真)
RD算法流程图:图1 RD算法流程图因为是在word里写的,这里直接上截图了,不然mathtype公式显示不出来。对于RD算法的原理这里就不展开讨论了,重点分析距离徙动校正的原理。仿真程序,F_s=2.5B,距离徙动最大2.92m,对应7.3个距离单元。PRF取1.2倍多普勒带宽,目标点相对于参考点的位置为(-50,50,0),则仿真结果如下:观察图2,可以看出经过距离徙动校正后...
2019-10-24 16:33:21
29975
45
原创 RSA加密算法原理及其Java实现
简单介绍了RSA加密算法的原理及其Java实现:原文过长时,进行了分段加密。RSA加密算法的基本原理主要步骤本文所有的字母都为正整数。其主要步骤如下:1、取两个不相等的质数p、q,一般都比较大。例如:p=67,q=79。2、n=p×q,其中n所对应的二进制长度即为密钥的长度,一般为1024位或2048位。n=67×79=5293,转化为二进制数为1 0100 1010 1101,共13位。3、计算n的欧拉函数f...
2019-10-24 15:08:52
2254
原创 Java web过滤器实现账号单一登录,防止同一账号重复登录,踢人效果
实现了Java web开发账号单一登录的功能,防止同一账号重复登录,后面登录的踢掉前面登录的,使用过滤器Filter实现的。可以先下载项目下来测试下效果。有博客写的是没个一段时间(比如500ms)读取后台的session,这种方法除了会占用资源,还会出现访问session(请求1)的返回值和自己提交请求(请求2)的返回值发生冲突。比如请求1先提交,此时请求1的返回值还未返回到前端,请求2提交,实际上我们想要的是请求1的返回值先返回,然后再...
2019-10-21 18:15:02
2395
3
原创 MyEclipse2018 CI创建web项目(Web Project)
第一步,file->new->other第二步,选择Web Project第三步,名字,选择Java EE version为3.1,Java version选择自己安装的版本,使用TomCat8.0或者其他版本,然后按Finish即可,后面的内容不需要设置。...
2019-10-09 00:02:19
1590
原创 MySQL设置主键自动增长出现1833错误
在手动设置主键自动增长时,出现1833错误,如图。原因:本表的主键是其他表的外键,外键是不可以设置自增的。查询该表存在的外键信息:selectREFERENCED_COLUMN_NAME,TABLE_NAME,COLUMN_NAME,CONSTRAINT_NAMEfrom INFORMATION_SCHEMA.KEY_COLUMN_USAGEwhere CONSTRAINT_SCHE...
2019-09-27 10:50:45
4331
原创 Java的父类静态方法可以被子类继承和重写(覆盖)吗?
先给出答案:可以被子类继承,不能被子类重写。关于父类和子类关系还不太了解的看一去看一下链接https://blog.youkuaiyun.com/qq_34826261/article/details/97635047,里面详细解释了父类和子类不同情况下成员方法和成员变量的关系。这里默认已经知道了子类和父类之间的关系。那么子类能不能重写父类的静态方法?class parent{ public stat...
2019-09-20 00:47:14
18038
4
原创 任意2n个正整数数组,将其分割成两个长度为n的数组,使两子数组之和的差值最小
题目描述:任意2n个正整数数组,将其分割成两个长度为n的数组,使两子数组之和的差值最小。或者:从2n个正整数中选取n个,使这n个数字之和和剩余n个数字之和的差值最小。这道题利用动态规划进行求解,可以采用0-1背包问题的策略,放或者不放,不太了解0-1背包的,参考链接https://blog.youkuaiyun.com/qq_34826261/article/details/100663768。假设数...
2019-09-15 14:05:24
1466
原创 Java人事管理系统设计
基于B/S结构,采用MVC设计模式,主要任务是实现人事管理的系统化,数据库采用MySQL,Web开发采用HTML5、JavaScript(jQuery、Ajax)等。系统主要包括:注册登录、找回帐号、找回密码、发送邮箱验证码、帐号设置、人事信息的增删改查及排序、网页的安全访问、防止同一帐号重复登录。人事管理系统功能简要说明代码及数据库表格下载链接:链接:https://pan.baidu....
2019-09-09 18:27:32
7765
19
原创 微信红包算法实现
微信红包算法的实现:二倍均值法和线段切割法微信红包分析n元的手气红包,假设发放m个:1、m个红包的总额为n元。2、每个红包至少0.01元。3、每个红包大小的概率一样。最直观的依次以剩余金额减去0.01×剩余红包数(保证不会出现前面几个红包用完所有的金额)为上限产生m个随机数,但这很显然越前面抢的人,红包金额越大的概率越大。
2019-09-06 23:08:51
1840
原创 严格递增和非严格递增最长递增子序列长度
严格递增最长递增子序列,给定一个无序整数数组nums(字符串也可以,不重要),给出最长严格递增子序列的长度。比如输入[1, 2 , 1, -1, 1, 4, 0],输出3,最长递增子序列[1, 2, 4],当然可能不唯一,[-1, 1, 4]也是一个,但是并不影响长度。强行遍历就不说了,时间复杂度O(2^n),简直爆炸。思路1:动态规划,建立一个数组dp,dp[i]记录nums[0:i]的最...
2019-08-30 10:51:41
4855
1
原创 Java中String的==比较,生成对象个数
详细分析了String进行“==”比较的不同情况,以及其生成对象的过程,包括字符串拼接("+"运算)的情况,final常量连接。
2019-08-28 17:41:48
674
1
原创 Java中volatile和synchronized的区别及其同步原理
volatile和synchronized都可以实现Java的同步机制,那么volatile和synchronized的区别是什么,比如作用范围等,并解释其实现原理
2019-08-24 00:05:31
553
原创 Serializable接口:Java序列化和反序列化
Serializable接口:java序列化和反序列化的定义,用法,serialVersionUID详解。
2019-08-22 12:22:19
1143
3
原创 java 输出某路径下的指定类型文件的文件名及绝对路径
Java输出某路径下的指定类型文件的文件名及绝对路径给定一个文件夹的路径,输出该文件夹下所有的pdf(任意类型)文件的绝对路径。实在没有想到腾讯面试会问这种程序题,措手不及。。。。直接上代码import java.io.File;import java.util.ArrayList;import java.util.List;public class ReadFile { pub...
2019-08-21 16:57:09
1795
1
原创 Java实现图的深度优先搜索和广度优先搜索(无向图和有向图)
用邻接表实现实现图的深度优先搜索和广度优先搜索直接上代码输入测试直接上代码package mytest;import java.util.LinkedList;import java.util.Queue;import java.util.Scanner;public class BFS_DFS{ public static void main(String[] args) {...
2019-08-12 17:45:29
697
(高清+目录)深入浅出MyBatis技术原理与实战.zip
2019-07-22
Java1.8中HashMap扩容的特殊情况?
2019-08-22
TA创建的收藏夹 TA关注的收藏夹
TA关注的人