- 博客(72)
- 资源 (44)
- 收藏
- 关注
原创 浮点类型金额字段计算精度问题
项目中需要用到浮点类型的数值计算需要特别注意这一点,而且需要基于业务来考虑应该使用什么数据类型,保留几位小数等问题。
2024-03-01 14:36:43 306
原创 Elasticsearch 通过kibana查询与API查询结果不一致
Elasticsearch 通过kibana查询的结果与sdk查询的结果不同问题分析,SearchType
2023-04-15 22:34:17 872
原创 SpringBoot 启动错误异常堆栈分析
SpringBoot 在项目启动时如果遇到异常并不能友好的打印出具体的堆栈错误信息,有的一些异常根本看不出来异常的点只是看到容器的一堆stop日志,以致于并不能及时解决发生的问题,针对这个问题SpringBoot提供了故障分析仪的概念(failure-analyzer),内部根据不同类型的异常提供了一些实现。FailureAnalyzerSpringBoot提供了启动异常分析接口FailureAnalyzer, 在org.springframework.boot.diagnostics这个包里面的一个接
2021-08-10 15:23:24 695
转载 Spring启动过程中,没有任何异常日志也不打印(记DruidDataSource初始化成功后程序日志不再打印)
环境:Spring + Druid + Mybatis 异常情况:dataSource初始化成功后,程序仍然是运行状态,日志不再打印,并且没有任务异常信息打印 为什么出现这种情况?如何去发现哪里出现了异常? 出现这种情况的原因有很多,可能是某个Bean初始化时失败了,也可能是Myb...
2021-08-10 08:49:14 1058
原创 RocketMQ 的停止(三)
private void shutdownMq(ContextClosedEvent event) { Map<String, RocketMqListenerContainer> rocketMqListenerContainers = event.getApplicationContext().getBeansOfType(RocketMqListenerContainer.class); if (!CollectionUtils.isEmpty(rocke.
2021-07-23 08:57:17 950
原创 Spring Batch的job停止(二)
在停服务的时候要等待正在执行的job的线程执行完成并且将Job的系统表的状态更新正确,否则就会出现一些中间状态的job,导致job无法进行后续的处理。public void shutdownJob() { Set<String> jobNames = jobOperator.getJobNames(); for (String jobName : jobNames) { Set<Long> executionIds = j
2021-07-23 08:48:50 1722
原创 SpringBoot 优雅停机
前言最近项目当中在搞各种测试,有一项就是节点服务停机或者各种kill或者各种不可用,然后看看应用能扛住多少场景。优雅停机定义
2021-07-13 09:02:58 505
原创 线程池的关闭(一)
线程池的关闭private void shutdownThreadPool(ContextClosedEvent event) { //wait Map<String, ThreadPoolTaskExecutor> threadPoolTaskExecutorMap = event.getApplicationContext().getBeansOfType(ThreadPoolTaskExecutor.class); thread
2021-07-13 09:02:33 248
原创 Spring Batch stop job 与 @JobScope: No context holder available
问题现象最近在使用SpringBatch框架做项目在做测试的时候遇到了一个坑,发现在执行stop job的时候,总是停不掉而且报了No Context Holder avaliable in current thread,不管是不是在工作的实例上面停,job的状态始终不符合我的预期STOPPED,我的代码如下:JobExecution jobExecution = jobExplorer.getJobExecution(jobStat.getJobExecutionId());jobOperato
2021-07-05 13:31:26 2124 5
原创 理解Mybatis的缓存机制
理解Mybatis的缓存机制最近在解决性能问题的时候,在与spring btach中的某个tasklet分页查询数据并进行数据的处理的时候,大概压了40w的数据,当然在结果集中解析出来的数据对象更大,结果导致了OOM问题,用内存分析工具MemoryAnalyzer查看到了大对象的内存占用指向了mybatis查询出来的对象,然后就去跟踪调用,结果跟踪到了mybatis的CacheExecutor,于是想到可能是mybatis的缓存,但是之前没有对它进行详细的了解,所以就掉坑里了,没有仔细的思考,很轻易的跳过
2020-09-08 23:06:58 382
原创 SequenceInputStream使用笔记
最近在解决一个程序性能上的一个问题,先大致说一下需求:将数据库中查询出来的n条明细信息,经过一定的格式生成文件的记录,将记录的流上传到file server. 原来的处理方式是1)将详细信息全部查询出来进行遍历 2) 将其中的每一条进行格式组装,然后将其发送到file server. 后来发现如果详细信息数据较多,这样在逐行遍历每一条进行组装会有out of memery 的问题, 于是在想分页读取详细信息,并分页生成格式数据和input stream, 这样的话在送给file server的时候需要送
2020-08-04 13:52:21 401
原创 Redis 慢查询的日志分析
最近在做性能调优,我采取的策略是以应用为中心,优先分析应用,再分析中间件,步骤如下:先保证应用的功能是正常的,也就是说应用本身的业务处理逻辑是没有bug的,否则在排查性能问题的时候容易走偏,我也掉了这个坑. 接下来使用visual VM监控服务器的cpu和内存,这里说一下如果是监控内存的和gc的情况可以再下载一个插件visual gc, 然后把线程dump出来,进一步通过调用栈看在哪一步有耗时. 根据上一步的耗时分析,解析的结果可能是数据库,redis,我的应用本身没有多线程并发处理等情况,通过e.
2020-07-30 09:27:55 720
原创 try with resources用法
try-with-resources 语法是java SE7的新特性,减轻了程序员进行catch的操作,不需要一堆catch操作,如下:1.我们一般的写法是这样String readFile(String path) throws IOException { BufferedReader br = new BufferedReader(new FileReader(path));...
2020-03-17 12:00:14 477
原创 google Set的几种操作
最近在项目中用到了这个功能,感觉还行,写了一个demo测试了一下. Set<String> s1 = Sets.newHashSet("1", "2", "3", "5"); Set<String> s2 = Sets.newHashSet("2", "3", "4", "5"); /** * 返回在s...
2019-12-06 17:55:54 521
原创 java 代码校验银行卡号
public static boolean matchLuhn(String cardNo) { int[] cardNoArr = new int[cardNo.length()]; for (int i=0; i<cardNo.length(); i++) { cardNoArr[i] = Integer.valueOf(Stri...
2019-12-05 20:23:57 467
原创 RocketMQ的原理分析
RocketMQ的原理分析rocketMQ集群的工作流程每个模块的功能职责rocketMQ集群的工作流程启动Nameserver, NameServer启动后开始监听端口,等待Broker 和 Producer以及Consumer连上来,Nameserver的角色相当于一个注册中心。Broker启动,跟所有的Nameserver保持长连接,定时发送心跳包。心跳包中包含当前Broker信息(...
2019-04-04 15:17:22 640
翻译 CAP 原理和分布式矩阵的应用
CAP 原则是描述一致性、可用性和分区兼容性的理论, 但在实际情况下, 这一原则常常令人困惑。什么样的情况适用于这一原则? 先决条件是什么? CAP 原则是否真的使分布式系统不一致和可用?现在, 我将尝试使用一种简单易用的方法来获取前面的分布式问题。首先, 我们将红色球定义为数据, 蓝色框定义为容器。因此, 分布式问题可以简化为如何将数据放入容器中以及如何访问...
2019-04-04 13:15:55 422
翻译 Eureka
1、Eureka 简介:Eureka 是 Netflix 出品的用于实现服务注册和发现的工具。 Spring Cloud 集成了 Eureka,并提供了开箱即用的支持。其中, Eureka 又可细分为 Eureka Server 和 Eureka Client。 1.基本原理上图是来自eureka的官方架构图,这是基于集群配置的eureka; - 处于不同节点的eureka通...
2018-12-16 13:07:49 262
原创 rocketmq jmeter压测
最近要用阿里的rocketmq框架,这几天用jmeter做了一个测试,在测试的过程中遇到了一些坑,在此总结一下,方便以后查阅,同时也希望能够帮助到其他即将入坑的同学。测试要求:写一个请求接收api请求的参数作为消息,异步发送到rocketmq中,并发测试框架的tps准备工作:apache-jmeter-3.2安装(在windows和linux均可) rocketmq服务的安装
2017-08-31 09:10:21 4258 2
原创 spring boot整合activemq rabbitmq
1.下载并安装activemq服务(windows),下载地址:http://download.csdn.net/download/loveuserzzz/99382022.创建springboot工程,并引入依赖dependency> groupId>org.apache.activemqgroupId> artifactId>activemq-allartifactId
2017-08-17 15:06:12 728
原创 linux安装mongodb并创建用户
版本:mongodb-linux-x86_64-amazon-3.4.6.tgz1. mkdir mongodb3.4.62. tar zxvfmongodb-linux-x86_64-amazon-3.4.6.tgz -C mongodb3.4.63. cd mongodb3.4.6mkdir –p data/dbmkdir –p logst
2017-07-27 20:55:47 8650
原创 centos7 mysql 启动mysqld.service - SYSV: MySQL database server错误
centos7 mysql 启动mysqld.service - SYSV: MySQL database server错误Process: 2550 ExecStart=/etc/rc.d/init.d/mysqld start (code=exited, status=1/FAILURE)
2017-03-14 09:37:16 30943
原创 springcloud整合swagger 界面查看restful api
springcloud整合swagger 图形化界面查看restful api
2017-02-13 17:58:01 10835 2
原创 zookeeper修改8080端口
前几天使用zk看到一个问题,用zkServer.sh status后看到的错误是Error contacting service. It is probably not running,后然用./zkServer.sh start-foreground查看到错误是8080端口被占用了,于是修改了下zk的server端口步骤如下:1.修改conf/zoo.cfg文件,添加admin.server
2017-01-19 15:47:52 15095
原创 spring cloud 全套演示框架后期还会添加mq以及bus等一系列整合
前段时间一直在使用springboot+dubbo做东西,后来直接用了springcloud全套来架构系统,对于一个初学者来讲,首先能够清楚的认识到各个模块的作用和功能,能够使用每个模块的功能才是重要的,我认为先用起来,再去深层次的去了解其中的奥妙,否则可能会一头雾水,无从下手,最终放弃。我的代码结构如下:上面简单说了我的代码结构,我先把代码上传到git,大家先跑起来,抽时
2016-11-30 22:45:42 4429 2
原创 在springboot打包成jar后,无法读取自定义文件的解决办法
前两天在做springcloud框架下的项目的时候,用到有一个框架之外的文件需要进行读取,当时在eclipse中编码时通过this.getClass().getResource来获取文件的路径,没有任何的问题,但是在打成jar以后,这是是打成jar包不是war,结果发现不能正常的读取我放在工程里面的文件,但是在jar里面对应的class路径下可以看到该文件,后来将文件直接放到和我一个java文件平
2016-11-29 16:11:45 24611 1
原创 linux下部署springboot项目用到的一些命令
1.查看端口情况netstat –apn | grep 80802.杀死一个进程kill -9 pid #pid 为相应的进程号3.删除文件夹rm -rf /home/java/jdk1.84.查看是否已经安装了mysqlrpm -qa | grep -i mysql有值输出则说明已经安装过了,若空白则没有安装5.安装mysql时遇到的一篇比较靠谱的帖子http
2016-11-08 22:46:44 10039
原创 linux 下安装jdk并且配置环境变量
今天在linux上安装jdk1.8 64bit时遇到了一些问题,在此总结一下,写给自己,也写给遇到此问题的程序猿:1.从oracle官网下载jdk1.8的tar文件,如果遇到网络问题的话可以在我网盘中下载链接:http://pan.baidu.com/s/1mhUsU2O 密码:yo89这也是群里的哥们帮忙下载的,由于当天公司的网络问题,官网都没能打开,在此感谢。2.用sftp或者其他
2016-11-08 22:29:15 3987 1
原创 springboot中整合activiti流程设计器时遇到访问项目需要输入tomcat用户名和密码的问题
springboot访问项目需要输入tomcat用户名和密码的问题
2016-10-25 11:34:11 4045 11
原创 解决maven项目中引用非maven工程中的jar
执行如下命令,根据实际情况进行调整:打开cmd执行如下命令格式代码:mvn install:install-file -DgroupId= -DartifactId= -Dversion= -Dfile= -Dpackaging=jar -DgeneratePom=true示例代码:按照打印出来的pom目录,打开该文件,将对应的引用添加到对应
2016-10-17 15:50:41 2450
linux下tomcat开启apr时安装包
2017-08-31
apache-jmeter-3.2
2017-08-31
dubbo-admin-2.5.3.war
2016-06-22
SVN客户端安装包带汉化包1.8.8版本
2015-09-16
myeclipse的erm插件
2015-08-26
基于Flink的风控系统
2023-06-01
TA创建的收藏夹 TA关注的收藏夹
TA关注的人