
Java
文章平均质量分 85
凉茶冰
我不想被后浪拍在沙滩上。
展开
-
一种分布式事务解决方案记录
Mysql和Elasticsearch同时操作引起的分布式事务问题记录及解决。原创 2024-12-06 15:55:18 · 1030 阅读 · 0 评论 -
基于http请求的一种安全校验认证方案记录
所以,这里我们要对时间戳也加上校验,即一个时间戳有效期只能有一次,拦截器中会记录调用的时间戳,每次请求过来,会先判断时间戳是否已经存在,如果存在,直接判定请求失败,这就能将恶意模拟已请求的拦截住,除非模拟方清晰的知道加密规则以及对应分配给调用方的code和secret信息。② 外部应用配置表可以新增一个IP地址的字段,用于配置调用方的IP白名单,如果开启IP白名单校验了,可以先校验请求方的IP是否在配置的白名单中,如果不在可以直接过滤掉。这种方式也可以实现防火墙的效果,但是对防火墙是松耦合的。原创 2024-09-12 10:35:19 · 1226 阅读 · 0 评论 -
事务传播获取不到数据库连接的问题记录
对于这个问题,改造优化的方式有以下几种:① tomcat的最大工作线程数一定要小于连接池的最大连接数,即:server.tomcat.threads.max值要小于spring.datasource.druid.max-active。原创 2024-08-22 18:23:44 · 697 阅读 · 0 评论 -
C++请求SpringBoot的接口问题记录
c++通过http-postjson方式请求springboot接口,出参有1c8这样的特殊字符问题记录。原创 2023-02-14 15:39:30 · 891 阅读 · 1 评论 -
从实际需求方案整理记录分布式锁的使用
分布式锁,顾名思义,就是解决分布式问题时候的锁。如果是单体应用,我们可以使用java的synchronize关键字。如果是分布式的话,synchronize就不行了。根据上面的安利,可以大概了解到,分布式锁要解决的问题,就是在分布式部署环境下,不同进程的不同线程在对相同资源进行请求的时候,需要考虑加锁。...原创 2022-08-29 16:42:55 · 396 阅读 · 0 评论 -
关于post请求formdata格式超长的问题记录
Springboot默认web容器是tomcat,tomcat关于post请求参数长度有默认限制为2MB,当请求的入参信息大于2MB的时候,会自动将参数封装到请求流中,而不是放到paramterMap中,而对于controller层,框架在进行参数自动转换的时候,是根据content-type到流或者paramterMap中取数据,当content-type是form-data的时候,肯定到paramterMap中取数据,但是因为数据过大放到inputStream中去了,所以获取不到参数。...原创 2022-08-08 09:47:18 · 5378 阅读 · 0 评论 -
Jena基于OWL的默认推理查询
Jena的API方式进行推理查询,通过设置schema本体描述、modeData三元组数据以及添加OWLReasoner推理机来实现推理查询。原创 2022-06-15 15:42:52 · 1072 阅读 · 0 评论 -
超过100w条数据表的分页查询优化
问题描述 最近做一个运营商的项目,其中有一个需求就是需要将用户所有的通话记录保存起来,支持按照各种条件查询。最开始开发阶段,使用的单表存储,后来根据调研,确定每天的通话量至少在100w通以上,那就只能进行分表存储,不然单表的数据量太大,后面的统计查询功能就没办法做了。按照天,每天一张表存储,但是即便这样,每天的数据量也在100w条上下,前端进行分页查询的时候,还是非常的慢,查询一次要7到8秒,这完全不能接受。 这是因为,目前的分页查询,使用的就是最基本的OFFSET的方式...原创 2022-02-09 23:25:46 · 2925 阅读 · 0 评论 -
Maven项目依赖本地包及如何打包工具包
目录问题描述解决方案依赖本地包打包工具包参考文献问题描述最近做一个项目,打包发布的时候需要在客户提供的云桌面环境进行开发和打包,而客户的云桌面环境不能连外网,这样就不能使用我们的maven私服,不过开发的时候又想使用我们自己的私服上的一些plugin工具,最直观的办法就是把我们自己私服上的jar拷贝到云桌面上的客户的私服上,但是不幸的是,我们无法对云桌面上的maven私服进行管理,因此只能尝试将相关jar以本地包的方式引入进来。解决方案依赖本地包(1)将对应的p.原创 2022-01-28 16:32:26 · 3481 阅读 · 0 评论 -
分库分表以及读写分离总结记录
目录1、为什么分库分表?2、什么是分库,什么是分表?3、分库分表的策略有哪些?3.1 垂直分库3.2 水平分库3.3 垂直分表3.4 水平分表4、分库分表之后有哪些问题和挑战?4.1 数据库事务问题4.2 join联合查询、分页及排序5、什么是读写分离?6、其他记录7、参考文献1、为什么分库分表?当数据量太大,业务太复杂,单表数据非常大超过硬件成本极限的时候,需要考虑分库分表。2、什么是分库,什么是分表?分库理解成将原来的一个库分成多个库,原创 2021-04-28 11:37:18 · 248 阅读 · 0 评论 -
SpringBoot开发记录
目录1.快速初始化2.pom.xml文件3.Mybatis自动生成代码3.1 新建generatorCOnfig文件3.2 pom.xml文件中添加插件3.3 开始生成3.4 使用4.查询样例4.1 普通单表操作4.2 自增主键表的操作4.3 联合查询4.4 分页查询5.关于事物5.1 关于@EnableTransactionManageme...原创 2019-04-22 21:52:44 · 760 阅读 · 1 评论 -
Java超长String处理遇到的一些问题记录
目录问题描述String类型拼接超长字符串截取超长字符串总结参考文献问题描述因为项目的需要,封装的SM4的加密、解密工具包,最近出了问题,客户反馈说现场有一个15M大小录音文件,在进行加密和解密的时候,方法没有反应,调用超时,失败了。按照最初封装时的考虑,没想过需要加密的入参字符串会有那么大,所以也没有考虑这种情况,今天拿到测试样例数据之后,通过读文件和写文件的方式进行了验证,最终发现并不是加密的算法有问题,也不是方法不能正常执行,而是整个过程中部分代码对String的处理效原创 2020-06-19 17:54:13 · 6187 阅读 · 4 评论 -
Java对接SM4加密过程中遇到的一些问题记录
场景需求因为项目性质的缘故,要求应用提供的服务必须满足SM4加密和解密。 即:请求的双方使用约定好的Key和通过SM4ECB进行加密和解密。在网上查一下SM4加密的话,有不少可参考的博文。这篇我试了下可以用,但是key是128位的,和我的预期有偏差。项目中需要进行对接的双方不全是通过java,服务提供方是php,php通过调用c编写的sm4加密方法进行加密和解密,java端对接php的接口,需要根据c编写的sm4工具类开发出对应的java包,方便第三方快速的调用。因为项目的缘故,不共享整个工具类,路过有原创 2020-06-15 15:11:03 · 11451 阅读 · 0 评论 -
基于token认证的JWT方案
2014年的时候做移动APP开发,那时候的后端就是纯接口类型的服务。前后端进行安全校验及认证是通过token机制来做的。基本思路:app提交用户名、密码进行登录 后端校验用户名密码,生成token返回给前端,有时也会保存token到用户表或者保存到全局Map中 toekn的生成规则一般是Base64(uid+(MD5(u_pwd+secret))) 前端拿到token之后,保存到lo...原创 2019-10-15 09:54:33 · 356 阅读 · 0 评论 -
分布式事务框架TX-LCN使用记录
目录1 TX-LCN框架的基本思路2 遇到的问题记录2.1 事务提交/回滚失败,锁表问题2.2 事务补偿失败微服务架构不可避免的要解决分布式事务的问题,为了避免出现分布式事务,在进行微服务划分的时候,我们一般尽量保证业务操作独立,但是有时候分布式事务又是不可避免的。业界关于分布式事务的处理方案也有几种,网上搜到比较多的就是TX-LCN框架。官网:https://www.tx...原创 2019-10-14 11:40:45 · 1290 阅读 · 1 评论 -
solr5.5集成IK分词及mysql定时数据同步的开发记录
目录1.前言2.java环境2.1 安装jdk2.1.1 64位安装2.1.2 32位安装2.1.3 环境变量2.1.4 刷新权限2.1.5 确认安装3 安装tomcat83.1 修改端口号3.2 设置tomcat-user3.3 验证tomcat4.配置solr4.1 拷贝solr-webap4.2 拷贝额外jar包4.3 创...原创 2019-01-08 11:09:27 · 427 阅读 · 0 评论 -
Prometheus基于java开发exporter样例以及pushgateway的应用
目录 4种常用MetricsCounterGaugeHistogramSummary基于SpringBoot写一个简单的exporter_demo1.pom.xml配置如下2.Application类注解3.CounterDemo4.GaugeDemo5.HistogramDemo6.SummaryDemo7.关于pushgateway参...原创 2019-01-30 14:46:46 · 19910 阅读 · 7 评论 -
SpringBoot项目jar发布获取jar包所在目录路径
//第一种 File path = new File(ResourceUtils.getURL("classpath:").getPath()); if(!path.exists()) path = new File(""); System.out.println(path.getAbsolutePath()); /...原创 2019-03-13 10:01:00 · 38833 阅读 · 15 评论 -
大话AOP之代理模式
目录1.前言2.静态代理2.1 定义一个接口类2.2 定义一个接口实现类2.3 定义一个代理类2.4 测试3.jdk动态代理4.cglib动态代理5.关于效率参考文献1.前言AOP面向切面的编程,是各种框架的核心特性之一。不管是Spring还是Jfinal,对于AOP都有比较好的支持。对于AOP的理解,我的简单理解是,对于一类方法的执行会自动的操...原创 2019-04-23 17:06:29 · 239 阅读 · 0 评论 -
记Springboot中使用@Value出现的乌龙
先看一下代码:server.port=8007#mysql配置url=jdbc:mysql://localhost:3306/lzy_zyg?useUnicode=true&characterEncoding=UTF-8username=rootpassword=root这是application.properties中填写的相关配置信息,其中mysql配置是作为外部配置...原创 2019-10-02 20:04:38 · 306 阅读 · 0 评论 -
Eureka注册中心在使用双网卡时候出现的问题记录
目录Eureka问题描述解决方案版本信息Eureka关于eureka的博文非常多,这里引用一篇,具体见《eureka服务注册与发现》问题描述先看一下最基本的使用#application.properties中设置eureka的注册中心server的地址eureka.client.service-url.defaultZone=http://192.168.1...原创 2019-10-08 09:52:21 · 1648 阅读 · 0 评论 -
java计算日期不包括周末、不包括节假日、不包括非工作时间、考虑加班时间
需求:1、给出开始时间beginDate,结束时间endDate,计算两个时间之间的时间差2、给出一个时间nowDate,计算其加上x小时之后的时间。注:时间的计算不能计算非工作时间。即,不包括周末、不包括节假日、不包括非工作小时、考虑正常加班时间例如:工作时间为:【8:00~12:00,14:00~18:00】例如:国庆假期上班第一天10月9号是周日,这种情况时间也要计算...原创 2018-07-20 08:42:53 · 4785 阅读 · 6 评论