- 博客(57)
- 收藏
- 关注
原创 【八股文】http和https的区别
https由于需要加密和解密操作,会增加数据处理时间和传输时间,消耗更多的CPU和内存资源,连接建立时间也更长。https在http基础上加入了ssl/tls层,会对传输的数据进行加密。http以明文传输数据,不提供加密,不适合传输敏感数据。http默认是80端口,https默认端口是443。http无需证书,https需要到CA机构申请证书。http传输性能较高,无需额外的加密和解密过程。
2025-03-27 21:52:16
61
原创 ES更新问题 Failed to close the XContentBuilder异常
因为我一直在elasticsearch仓库找不到对应的issue和问题修复代码,我就继续查了下,无意中发现存在maven依赖冲突,将log4j-core的冲突排掉后,问题竟然也解决了。所以应该不是7.9.3版本的bug,而是本地依赖冲突,日志相关功能影响到XcontentBuilder关闭,具体的等日后加深理解后再继续分析。下面这是ES 7.9.3版本客户端局部更新的文档,每种写法都试过了,报错都一样的。客户端升级到7.17.1,问题解决。怀疑是客户端版本bug。
2024-11-25 19:46:21
408
原创 maven项目集成es7.9.3
本篇内容不是啥很难的东西,各位看官把这当工具书就行了,这些不用理解的东西,也不用死记,需要的时候搜一下就好啦。问题就是我百度搜完,各种都写的复杂的一匹,会让小白看的贼痛苦,所以我才准备写简单直白点。
2024-11-25 15:07:41
207
原创 skywalking源码本地编译运行经验总结
最近工作原因在弄skywalking,为了进一步熟悉拉了代码下来准备debug,但是编译启动项目我就费了老大劲了,所以准备写这篇,帮兄弟们少踩点坑。
2023-09-26 14:49:36
2541
原创 redission3.16.0版本加锁高耗时?
事件缘由:公司redis升级为带密码访问后,同事反馈使用redisson加锁一两秒,当时使用的版本是3.16.0有些同事的3.11.6版本没有类似的问题出现,临时降到3.11.6版本调研结果:3.14.1版本开始,redisson引入了wait命令这个wait命令将阻塞当前客户端,直到当前Session连接(主节点上)所有的写命令都被传送到指定数据量的slave节点。如果到达超时(以毫秒为单位),则即使尚未完全传送到达指定数量的salve节点,该命令也会返回(成功传送到的节点的个数)
2022-05-12 23:08:33
1625
原创 如何获取客户端请求真实ip
1.正常的逻辑,如果我们直接请求服务,那么在request.getRemoteAddress()就可以拿到原始客户端请求的ip2.如果新增了nginx代理,那么就只能借助XFF从header里面取了3.如果全部署在k8s,会过一道网络代理,那么在网络代理这会做一次NAT,所以如果不想丢失源ip就只能修改externalTrafficPolicy=local 不进行路由,直接在当前节点处理...
2021-12-07 16:28:19
3091
原创 mapstruct 自定义转换规则
遇到一个需求,就是我费率返回给前端的时候,多余的小数位不要展示我对象转换全是使用的mapstruct,有兴趣的可以了解一下。就是只需要自定义接口,然后在编译时生成转换逻辑的代码这次我只是简单记录一下,特殊逻辑的时候,怎么实现自定义转换首先,是自定义的转换逻辑public class ConvertExpression { private ConvertExpression() { } public static String stripTrailingZer
2021-08-30 10:19:47
1264
原创 DataOutputStream乱码问题
这个坑我就先踩为敬了,千万不要用DataOutputStream的writeBytes 方法千万不要用DataOutputStream的writeBytes 方法千万不要用DataOutputStream的writeBytes 方法我们使用DataOutputStream 的时候,比如想写入String ,你就会看到三个方法public final void writeBytes(String s)public final void writeChars(String s)...
2021-04-06 21:44:56
261774
6
原创 多线程下载大文件(断点续传)
RandomAccessFile提到多线程下载大文件或者时断点续传,我们就肯定要提到 RandomAccessFile这个类,为啥可以多线程来下载一个大文件呢?得益于它强大的seek方法然后提到断点续传呢,我觉得可以聊一聊Connection 头字段相关的内容Connection这个字段只在http 1.1 协议中存在。它决定了客户端和服务器进行了一次会话后,服务器是否立即关闭网络连接。Connect有两个值:close 当read完数据时,就立即返回 keep-alive re.
2021-04-05 21:07:55
590
原创 Equals相同,hashcode会返回不同吗?
如果两个对象equals()方法相等则它们的hashCode返回值一定要相同,如果两个对象的hashCode返回值相同,但它们的equals()方法不一定相等。hashCode()的作用是为了提高在散列结构存储中查找的效率,在线性表中没有作用;只有每个对象的 hash 码尽可能不同才能保证散列的存取性能,事实上 Object 类提供的默认实现确实保证每个对象的 hash 码不同(在对象的内存地址基础上经过特定算法返回一个 hash 码)。在 Java 有些集合类(HashSet)中要想保证元素不重复可以
2020-11-29 12:04:10
1482
原创 线程池拒绝策略引发的灵异事件
自从昨天的一波bug吃了亏,我决定狠狠的总结一番线程池的拒绝策略bug回顾:我昨天在跑批,读取文件中的流水信息更新账单,量也还好,大概几万单吧,为了快点我就直接用我现成的一个线程池的工具类开多个线程跑,通过关注日志,发现怎么没过多久就跑完了。我一开始就以为就是处理的比较快,但是我昨天统计实收实付的时候发现怎么还这么多数据未实收实付,一开始看了很多单发现还好,但逐渐往后看怎么modified time都不太对呀,感觉像没有更新到。此时,我重新修改了日志信息,新增了统计,就拿刚刚的重新跑了一遍,发现
2020-11-17 15:53:16
353
原创 线上故障排查之异常的堆栈信息怎么突然就不见了
上周四,线上环境突然疯狂告警,我手机一直滴滴滴滴响个不停这是一开始看到的告警信息,目测能看出可能是依赖的产品服务出问题了等我打开电脑一看时,发现告警邮件又变成下面的样子就只有一个空指针,啥堆栈都没有了(这我就有点懵逼了,大晚上12点,要是不是别人的问题把别人喊起来这不太好)今天又发过版本,先镜像回滚吧,这样稳妥点(前提得确定新发布的代码,确认回滚不会出问题)回滚完之后发现告警还在,那么就只能找产品的同学起来看了,结果已联系发现产品那边已经发现自己出问题了后来服务是恢复了,但是
2020-11-09 16:11:32
748
原创 牛顿迭代法(求平方根)
public static double sqrt(double c) { if(c<0) return Double.NaN; double err = 1e-15; //1的-15次方 科学计数法 double t = c; while(Math.abs(t - c/t) > err * t) { t = (c/t + t) / 2.0; } return t; }以上是牛顿迭代法的java实现,牛顿迭代法具体的数学公式有兴趣可以自行百度(我了解完才发.
2020-11-01 21:45:59
1267
1
原创 把第三方jar包打入maven项目
场景:和蚂蚁联调的过程中,他们的接口还没上线,我们这边又是采用SDK的方式接入的,所以只能他们手动把jar包down下来给我。那么我这边的是maven项目,我如果想使用这jar包的话,要么就是把相关的jar包和pom文件上传到公司的maven仓库,要么就是放进项目中。毫无疑问,如果只是临时使用的话,放进项目中是最方便的,那么怎么操作呢?上配置:<dependency> <groupId>com.alipay.api</groupId&g
2020-08-14 18:24:24
431
原创 mongodb日期类型查询命令
日期类型的数据,mongo相关命令1.查询在2020年1月1日之前的数据db.getCollection('superman_surrend_info').find({"createTime":{$lt:ISODate("2020-01-01 00:00:00")}})2.查询在2020年1月1日之前的数据的数量db.getCollection('superman_surrend_info').find({"createTime":{$lt:ISODate("2020-06-20 00:
2020-07-24 11:35:57
1028
原创 jdbcTemplate的queryForList(超级坑)
jdbcTemplate 中的queryForList,你真的懂吗?你想象中的queryForList是不是应该长成下面这种模样?String sql = "select * from person";List<Person> persons = jdbcTemplate.queryForList(sql, Person.class);然后,你很激动的点了run...
2020-03-20 22:51:04
36702
8
原创 springboot之取消starter的自动注入
springboot之取消starter的自动注入starer是spring boot中一个很重要的概念,starter相当于一个模块,它能将所需要的的依赖整合在一起并对模块内的bean自动装配到spring IOC容器,使用者只需要在maven中依赖相应的starter包并无需做过多的依赖即可进行开发。一、例子比如,我们导入了mybatis相关的依赖,但是我可能暂时没用到数据库,所以...
2020-03-08 22:31:47
1478
原创 整合JdbcTemplate报错Failed to determine a suitable driver class
一开始整合JdbcTemplate的时候,报错Failed to determine a suitable driver class这是因为spring-boot-starter-jdbc根据自动配置约束自己去配置数据源,而项目中并没有dataSource相关的配置,所以出错。然后需要首先在启动类中排除数据源自动配置@SpringBootApplication(exclude = {...
2019-09-28 19:52:47
604
2
原创 springboot整合freemark---解决部署后路径找不到问题
springboot整合freemarker之后,本地跑起来完全没问题,但是打包部署后,报错路径找不到。HashMap root =new HashMap();root.put("vo", coverntToVO(policyFailDO));Configuration config = new Configuration();config.setDefaultEncoding("UT...
2019-08-21 15:23:58
2101
原创 java.net.socket cannot be cast to javax.net.ssl.sslSocket
首先,因为出现这种报错的情况会有很多种,那么说一下我的场景: 我是在使用htmlUnit的时候,HtmlUnitSSLSocketFactory中的createSocket方法报错的然后我就找到htmlUnit里面这个方法的源码,发现final Socket socket = super.createSocket(params);configureSocket((SSLSo...
2019-06-12 15:28:05
1323
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人