- 博客(24)
- 收藏
- 关注
原创 podman checkpoint 性能优化
项目原因,需要使用相关功能团队一直比较熟悉,于是开始对docker的checkpoint进行性能测试。
2024-03-10 18:45:13
530
原创 AbstractRoutingDataSource 多数据源管理 及全局事务解决方案(超轻量级方案)
以上问题,在项目中已经出现好久了,框架上只能部分解决,剩下的2/3问题,都只能靠开发人员自身代码中去控制。直到最近,灵光乍现,一个方案冒出来了,一下子解决了以上三个问题。数据源在事务中会有各种问题。这样把上述的三个问题全部解决。
2023-06-05 20:58:26
2297
5
原创 Spring嵌套事务的误解
刚开始看文档的时候,简单的以为嵌套事务就是指方法 f1 默认机制方法 f2 嵌套事务f1 调用 f2。如果 f2 抛异常 只会 f2 的操作会回滚 f1不会有任何影响实际操作时发现 f2抛出异常 f1如果不捕获这个异常 还是会一起回滚数据的为什么是这样原因在于 我们潜意识里面 把异常 与回滚画等号了。而实际上异常只是回滚的诱因本质上嵌套事件只是指回滚动作直接的相互影响外部事务回滚 会把嵌套内的也一起回滚嵌套事务回滚 只是把数据回滚到 savePoint这个是数据库层面去提供
2021-09-26 01:08:57
198
原创 关于LinkedBlockingQueue高并发瓶颈优化
在线程数量比较多的时候,LinkedBlockingQueue.take() 并发性能并不是特别优秀。在实际项目中,有个场景一个LinkedBlockingQueue后面挂了60个线程,数据量大,线程量也大,但通过堆栈信息查看,大约有五十多个线程处于WAITING状态, 都卡在LinkedBlockingQueue.take() 处。为提高性能,细化锁粒度。写了下面一个类,时间紧急只实现了 add, offer, take接口。...
2021-04-24 01:07:39
2072
原创 Kafka无法消费的问题解决记录
今天同事那边出现了一个关于kafka无法消费的小问题。框架是springboot,相同的程序,相同的配置,第一次启动可以消费到数据,第二次启动就无法消费。经排查原因是:request.timeout.ms配置的时间太长,且第一次退出程序时,是强制退出,并不是优雅的关闭资源后退出。这样导致kafka服务端针对该groupId的消费者仍然在拉取消息(TCP的特性)。后启动的程序由于groupId相同,无法分配到partition。故无法消费解决方案:1、程序优雅的关闭,不要强制退出。这样spring
2021-01-19 10:56:53
4748
2
原创 springboot-自定义starter
在实际业务开发过程当中,有很多公共的功能。针对这些功能,可以自己开发公共的starter模块命名对于自己开发的starter模块,一般使用xxx-spring-boot-starter,而spring自己生态圈的starter,一般都是spring-boot-starter-xxx格式命名maven依赖(pom.xml) <!-- 版本自己定 --> <parent> <groupId>org.springframework.boot</g
2020-10-22 10:19:07
133
原创 数据库事物隔离级别
一、概念了解事物隔离级别,必须要先知道如下几个概念脏读A向表里插入数据a,此时A还未提交事物B读取了A刚插入的数据aA回滚了事物这种情况称作**脏读**,B读取了不应该读到了数据(a这条数据被回滚了)重复读A第一次读取了数据aB修改了a数据,并提交事物A第二次读取数据a这种情况下A第二遍读取的数据 与第一次读取的数据不一样, 所以**不可重复读**幻读A 根据一定条件读取了10条数据B 向数据库中插入了新数据A 根据同样的条件读取了大于10条的数据这种情况称为**幻读**
2020-10-21 10:37:31
157
原创 5 receive task (camunda入门)
receive task是靠消息进行驱动的任务,流程走到receive task时 流程处于等待状态,直到收到指定的驱动消息,才进行下一步一 流程图设置类型设置驱动消息内容二 代码 RuntimeService runtimeService = this.engine.getRuntimeService(); //创建消息 msg为图2里面红框的内容 String msg = "测试步骤MSG"; MessageCorrelationBuild
2020-10-20 09:41:41
998
2
原创 3 流程启动 (camunda入门)
启动流程两种方式一 利用工具及camunda自身的Rest API部署二 自定义接口实现启动//id为部署后流程IDProcessInstance processInstance = this.processEngine.getRuntimeService().startProcessInstanceById(id);```
2020-10-20 09:39:09
1212
原创 4 service task (camunda入门)
1、准备工具使用camunda-modeler工具画流程图下载链接: https://pan.baidu.com/s/1y-Y8BZ0_YeemloY6F6XBFA提取码: 18fk2、流程图1选择task类型2设置回调可以选择Java Class,也可选择Delegate Expression,由于我使用的是springboot,这里就选择了Delegate Expression3、方法任务方法回调需要实现org.camunda.bpm.engine.delegate.JavaDe
2020-10-20 09:15:56
2146
1
原创 2 流程部署(camunda入门)
1通过工具部署使用camunda-modeler工具画流程图,进行部署下载链接: https://pan.baidu.com/s/1y-Y8BZ0_YeemloY6F6XBFA提取码: 18fk2通过代码进行部署
2020-10-20 09:13:21
1415
原创 1 环境搭建(camunda入门)
spring集成camunda1、maven依赖<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.3.4.RELEASE</version> <relativePath/&
2020-10-18 20:30:11
1226
原创 mysql 学习笔记
这里写自定义目录标题mysql 5.7修改默认密码修改可远程登录刷新权限功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入mysql 5.7修改默认密码update user set authentication_string
2020-10-17 15:28:40
100
原创 springcloud配置中心笔记
错误一:com.jcraft.jsch.JSchException: reject HostKey:XXX.XXX.XXX.XXX由于设置了strict-host-key-checking=true(默认)导致的,严格的主机密钥检查,这样需要配置秘钥,如果只想通过用户密码认证,需要将strict-host-key-checking=设置为false...
2020-06-16 17:23:25
292
转载 RESTful API设计规范
简介REST(英文:Representational State Transfer,简称REST)描述了一个架构样式的网络系统,比如 web 应用程序。它首次出现在 2000 年 Roy Fielding 的博士论文中,他是 HTTP 规范的主要编写者之一。在目前主流的三种Web服务交互方案中,REST相比于SOAP(Simple Object Access protocol,简单对象访问协议...
2020-02-20 21:34:17
236
原创 Docker API
如何开启API配置文件:/usr/lib/systemd/system/docker.service修改 ExecStart=/usr/bin/dockerd -H=tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock执行 systemctl daemon-reloadservice docker restart一:查询容器...
2020-01-14 14:54:48
303
原创 准确率、精确率、召回率笔记
正项数据 负项数据 预测为正项(positives) True Positive(TP),正项数据被预测为正项的数量 False Positive(FP),负项数据被预测成正项的数量 预测为负项(negatives) False Negative(FN),正项数据被预测为负项的数量 True Negative(TN),负项数据被预测为负项的数量 ...
2020-01-10 11:47:12
158
原创 Kudu集群搭建遇到的一些问题,备忘
一:将XXX/etc/default/kudu-master 文件直接拷贝至/etc/default/kudu-master将XXX//etc/default/kudu-tserver文件直接拷贝至/etc/default/kudu-tserver二:将XXX/lib/kudu/sbin-release/kudu-master 文件直接拷贝至/usr/sbin/kudu-mas...
2019-10-14 22:42:18
650
1
原创 eureka集群搭建
两个配置文件:application-eureka1.yml、application-eureka2.yml配置两个域名:127.0.0.1 server1127.0.0.1 server2application-eureka1.yml内容:server: port: 9000spring: application: name: eureka-clus...
2019-06-17 10:13:28
1386
原创 iptables INPUT设置
参数说明:-A:规则直接加在末尾-I:后面跟具体的位置,将规则插入到指定的位置-D: 删除规则-p:协议类型,如tcp类型,还有特定的-dport端口参数-j: 处理方法,如ACCEPT接受, DROP丢弃, REJECT拒绝如:1、端口6379接受tcp协议iptables -A INPUT -p tcp --dport 6379 -j ACCEPT2...
2019-06-06 14:44:20
14417
原创 HTTP协议 chunked
最近写了一个自己的http服务器(基于netty,但不使用netty自带的http协议包)。一般的请求都是直接使用指定content-length的方式去实现的,但对于一些大文件的传输效率则不太理想,之前一直只是大概知道分块传输,但一直没有真正码过相关代码,这次就尝试实现了一下。总共三部分:1、设置响应头2、分块传输: 长度\r\n内容\r\n,长度为16进制字符串3、空数据块:用...
2019-06-04 22:26:14
746
原创 AbstractRoutingDataSource数据源切换失败原因及解决方案
之前在项目中由于数据源比较多,为了方便切换数据源使用了AbstractRoutingDataSource+JdbcTemplate。刚开始都是查询操作,没有事物操作,但后来出现了一个事物操作,在一个service方法里面总是无法成功切换数据源。从网上搜了下也没有搜到解决方案,最后没办法只能阅读源码自己解决,最终定位到了问题,并成功的解决该问题。 问题原因: 在一个事物方法里面,...
2018-05-30 11:48:41
11164
4
原创 前后端分离开发部署的跨域问题
目前我自己知道的有3中方案第一种:利用jsonp来解决跨域请求 这种方式本质上是利用html标签的src属性去实现,但这种方式有一定的局限性。因为src加载资源是GET请求,一些POST请求无法实现,如上传文。当然上传文件也可以通过Base64编码转化成字符串,然后再拼接到URL上,但URL长度是有限制的,所以一些大文件是无法通过这种方式来解决第二种:利用中间件(如nginx)进行代理转发...
2018-05-28 23:50:16
1402
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人