自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 收藏
  • 关注

原创 【笔记】记一次HTTPS请求SSLHandshakeException: Received fatal alert: handshake_failure异常问题

最近在项目中使用Hutools 请求HTTPS接口出现SSLHandshakeException: Received fatal alert: handshake_failure异常,经过排查属于JDK版本中安全机制导致,不同https安全协议不一致,可能是TLSv1.2,TLSv1.1,TLSv1.3等,TLS协议版本越高,HTTPS通信的安全性越高,但是相较于低版本TLS协议,高版本TLS协议对浏览器的兼容性较差。

2024-04-14 20:42:50 1903

原创 【笔记】mysql版本6以上时区问题

最近在项目中发现数据库某个表的createTime字段的时间比中国时间少了13个小时,只是在数据库中查看显示时间不对,但是在页面,又是正常显示中国时区的时间。

2024-04-13 21:33:15 231

原创 【笔记】Nginx配置类似Tomcat请求接口链路access_log日志

项目部署在tomcat容器中,请求的接口会被记录在文件名:localhost_access_log.2024-03-22.log的文件中,如果使用Nginx也需要记录请求接口,该如何做呢?有时候记录每一次请求的链路过程并落盘还是很有必要,以上仅供参考,亲测有效.在location添加请求接口日志写入文件路径下的文件名。

2024-03-26 20:40:43 740

原创 【java笔记】记一次线上redis之key冲突问题

发现问题最近在日志监控平台观察发现,有个服务关于Redis的操作频繁抛出如下异常:WRONGTYPE Operation against a key holding the wrong kind of valueredis.clients.jedis.exceptions.JedisDataException: WRONGTYPE Operation against a key holding the wrong kind of value at redis.clients.jedis.Protoco

2021-08-10 10:48:14 799

原创 【java笔记】记一次线上redis之lettuce客户端创建异常问题

导读目前线上报错如下:ERROR [io.netty.util.ResourceLeakDetector 317] - LEAK: HashedWheelTimer.release() was not called before it's garbage-collected. See http://netty.io/wiki/reference-counted-objects.html for more information.Recent access records: Created at:

2021-08-04 15:29:23 4589

原创 【java笔记】记一次jdk1.8中List方法removeIf遇到的坑

导读经常遇到两个List集合,需要排除其中一个集合中存在的某些元素,比如集合A=【1,2,3,5】,集合B = 【2,3】,如需要排除A在B集合中存在的元素,那么集合结果是【1,5】。适用场景:比如集合A的分类是某个用户的所有分类,集合B是黑名单分类,那么这时候就需要排除B集合中的分类。传统方式 List<Integer> as = Arrays.asList(1, 2, 3, 5); List<Integer> bs = Arrays.asLi

2021-07-14 20:09:02 2458

原创 【java笔记】记一次spring项目中重定向请求路径

背景最近项目部署遇到这样一个问题:paas平台部署项目,健康检查接口固定路径为:/actuator/health,但该项目为每个请求路径加上全局的前缀,如:/api/actuator/health,所以paas平台规范不通过导致部署失败,可能很多人会想到,直接去掉全局/api 即可,但是否想过该项目很多前端页面、第三方平台已经都对接了该项目的接口,如去掉全局前缀,那么势必需要所有调用链头部请求也做修改,时间、成本都比较大,所以是否有一种方式请求的原始路径保持不变,重定向到新路径。修改过程先去掉

2021-07-13 14:29:29 449

原创 【java基础】Comparable与Comparator接口

背景在使用Collections#sort方法对集合进行排序的时候可能并不是很清楚到底是默认的排序规则、自定义排序规则、自定义排序器等等,那么Comparable与Comparator接口到底是有什么区别?该如何使用?Comparable接口(内部比较器)1、comparable接口位于java.lang包下,并且很多基本类型的包装类实现了该接口,比如:String,Integer,Double等,当我们使用集合排序的时候,如果集合内元素对象已经实现了Comparable接口,那么集合内部会根据该对象

2021-05-24 15:04:06 249

原创 【java基础】快速失败和安全失败

概念可能很多人比较少听到快速失败和安全失败,那什么是快速失败和安全失败呢?快速失败(fail-fast):对于不安全的集合类在遍历过程中,对其进行增删改的时候,就会抛出ConcurrentModificationException,比如HashMap,ArrayList等。安全失败(fail-safe):对于安全的集合类在遍历之前,安全集合类会在遍历之前会将原有集合拷贝一份副本,在副本集合中进行遍历,从而在对其原始类进行增删改的时候,并不会被迭代器检测到,固不会抛出ConcurrentModifica

2021-05-21 17:06:58 182

原创 【java基础】强引用、软引用、弱引用、虚引用

jdk1.2之前,每个对象在堆中都有一个引用计数属性,引用新增1次则计数加1,引用每释放一次则计数减一,判断对象是否可以回收的条件是对象是否可达状态;如果可达则表示对象不可回收,如果不可达就是可以回收状态;jdk1.2之后,为了更好的控制堆中对象的生命周期,将对象分成了强引用、软引用、弱引用以及虚引用。一、概念1、强引用: 垃圾回收器绝对不会回收强引用,即使内存不足,宁愿抛出outOfMemoryError;Object object = new Object();除非主动将对象设置为null(全

2020-11-27 18:07:28 138

原创 【笔记】Fiddler抓包工具之浏览器请求不能拦截问题

背景在进行fiddler抓包过程中,有时候发现自己的浏览器不能拦截对应网站的请求,从而导致抓包过程进行不下去。解决方案经过多次排查,发现自己浏览器装了一个广告插件,拦截了很多请求,从而导致fiddler抓包请求不能拦截,关闭对应的插件,然后重新打开浏览器就可以抓包了。如果有小伙伴有相同的问题,那么极有可能是因为浏览器按照了类似于拦截广告之类的插件导致,把相关插件卸载或者关闭即可解决。...

2020-11-13 09:28:32 2252

原创 【笔记】记一次mysql IN 大量ID优化方案

背景基于某些业务开发过程中,会遇到这样的查询语句:SELECT * FROM table where id in(1, 2, 3), 但是当IN里面的数据量非常大的时候,有些数据库会对IN 的数据量有大小限制,比如Oracel大小限制是1000,因此如果能有一种替代IN 大量数据,并且性能还不错的方案就好了。实战1、使用IN方案查询结果,查询时间为:0.078s,总数据量60多万。select * from designmaterial ds where ds.materialid in(“00

2020-10-31 14:46:41 38324 20

原创 【杂谈】密码学的一点点了解

密码学发展史:古典密码学:①、替换法:发送者和接收者根据【原文和密文对照表单】进行加密和解密,其中有单表替换和多表替换。 ②、移位法:加密的原文所有字母按照一定的偏移量向前或者向后得到的编码序列。近代密码学:恩尼格玛机:因古典密码的安全性受到了威胁,近代密码学出现了加密机器,本质上还是多表替换和移位,只不过表的数量和复杂度更好,破解更难现代密码学:①、散列函数:经过一系列的哈希函数运算,最终得到固定长度的哈希值,比如MD5是16字节固定长度的哈希...

2020-09-29 09:41:51 413

原创 【笔记】消息推送方式几个概念

轮询概念:客户端接口定时向服务端发送请求获取消息的方式,服务器接到请求立马处理并且关闭请求连接,很容易导致出现资源浪费的情况;场景:Ajax轮询的方式获取用户抽奖数据长轮询概念:客户端通过向服务端发送请求,服务端hold住发送请求的链接,直到有新消息出现才返回响应给客户端消息,并且关闭链接,客户端处理完消息后,重新建立连接,获取消息消费;能保证不会频繁请求服务端。说明:其中长链接完全可以保证http请求消息实时性;长链接概念:客户端请求服务端建立连接之后,保持和服务端链接,并且消息源源不断的

2020-07-30 20:11:40 379

原创 【笔记】SpringBoot接口接收参数是Date类型处理方式

背景最近编写接口测试过程中发现,如果后台接收字段类型是Date类型,那么前台直接传字符串类型会直接报如下错误:org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Cannot deserialize value of type `java.util.Date` from String "2020-07-08 16:00:00": not a valid representation (

2020-07-08 18:13:50 5500 1

原创 【数据库】分布式数据库之TiDB

1、 数据库发展历史2、 背景随着互联网的飞速发展,业务量可能在短短的时间内爆发式地增长,对应的数据量可能快速地从几百GB涨到几百TB,传统的单机数据库提供的服务,在系统的可扩展性、性价比方面已经不再适用。 比如MySQL数据库,缺点是没法做到水平扩展。MySQL 要想能做到水平扩展,唯一的方法就业务层的分库分表或者使用中间件等方案。但是,这些中间层方案也有很大局限性,执行计划不是最优,分布...

2020-03-27 11:32:07 1247

原创 【笔记】基于Redis发布订阅模式案例

1、 背景用户发送消息给某个人,后台服务器保存用户信息记录,并短信通知该用户或者单独记录日志到日志系统1、用户发送记录保存2、记录发送记录的日志/或者发送短信给该用户2、 redis发布订阅模式配置@Configurationpublic class RedisPubSubConfig { @Autowired private RedisTemplate redi...

2020-01-09 14:52:14 3740

原创 【笔记】IDEA项目实现热部署方式

背景在使用IDEA开发springboot 项目过程中,难免出现因为启动项目后需对项目进行修改,然后需要重新启动项目实现更新,那么如果能够实现热部署既能方便开发人员也能快速实现项目开发。网上查了很多文章,自己现在总结一下实现步骤,本人亲测有效。热部署1、将项目设置成自动编译状态2、设置registry,设置如下三项,快捷键是:Ctr+shift+Alt+/3、设置启动配置项4、如...

2019-12-20 18:02:14 218

原创 将博客搬至CSDN

本人简书博客文章全部搬迁到CSDN

2019-12-13 09:27:01 88

原创 【笔记】需求分析步骤

1、该需求的目的是什么? 能帮助理解和辨别需求真伪;2、该需求的使用场景是什么? 只有明白这个原因才能搞清楚什么人使用该功能,才能设计好该功能;3、该需求是否会衍生出新场景? 弄清楚这个原因能设计出后期扩展性强的功能,也能帮助理解和抓住需求的本质;4、技术层面如何看待这个需求? 和技术负责人沟通,看技术如何考虑需求,从而和技术达成共识,同时也为后续的开发工作做好铺垫,打...

2019-12-12 18:23:55 237

原创 【笔记】spring操作redis之jedis与lettuce

一、jedis与lettuce1、Jedis:在实现上是直连 redis server,多线程环境下非线程安全,除非使用连接池,为每个 redis实例增加 物理连接。2、Lettuce:是 一种可伸缩,线程安全,完全非阻塞的Redis客户端,多个线程可以共享一个RedisConnection,它利用Netty NIO 框架来高效地管理多个连接,从而提供了异步和同步数据访问方式,用于构建非阻...

2019-11-14 18:13:37 4589

原创 【笔记】关于蓄水池算法的一个java题

一、题目如下:给一个整数N和一个特别大内存装不下的纯文本文件,从这个文件随机抽N行文本返回public List<String> extractLines(String filePath,int n){//todo 在这里填充代码}要求:文件只读一遍,占用的内存最多只有N+1行;每行最多算一个随机数;返回的文本行顺序要跟原文件中的文本行顺序保持一致。关键是“随机”以下做...

2019-11-13 16:29:03 527 6

原创 【笔记】几种限流算法理论

1、限流作用;当API访问激增时,导致接口占用过多服务器资源,甚至导致服务器宕机限流:当接口请求数100次/s,多余的丢弃掉或者响应失败;单节点仅能保护好自身的请求,限流:1、应对热点业务带来突发请求;2、外部的恶意请求;3、突发BUG导致的恶意请求2、几种常见的限流算法1、固定窗口计数器算法:划分多个时间窗口,当请求到达请求数加一,如请求数量到达限制数量,则所有多余请求全部...

2019-11-13 15:33:50 208

原创 【笔记】guava之RateLimiter限流算法

1、漏桶算法请求进入漏桶里,漏桶以一定速度响应,请求速度过大直接溢出,拒绝服务。1.png2、令牌桶算法请求获取token,直到没有token可拿,阻塞或者拒绝服务。2.png3、RateLimiter工具类之令牌桶算法配置10个令牌测试2.png boolean try...

2019-04-15 18:29:27 590

原创 Docker初识之基本概念和安装(一)

虚拟化技术与Docker区别 1、虚拟化技术:将服务,网络,内存,存储等硬件抽象出来运行的一整套完整操作系统。运行进程属于虚拟系统。 2、Docker:通过一些linux内核技术,对进程进行封装、文件系统,网络隔离等,没有独立的存储空间以及硬件资源,属于相对于虚拟化技术轻量级。 docker.png 虚拟化.png...

2018-11-29 22:08:55 278

原创 ElasticSearch初探之ES6整合SpringBoot2(五)

本案例使用springboot2.1.0,和ES6.5.0整合。 项目结构和maven配置如下: 111.png <dependencies> <dependency> <groupId>org.springframework.boot</groupId>...

2018-11-28 20:24:18 436

原创 ElasticSearch初探之ELK6.x日志系统搭建(四)

ELK(ElasticSearch,Logstash,Kibana)用于日志系统收集和搜索功能,其中Logstash负责收集、格式化、处理、过滤等操作,ES负责存储收集数据。Kibana是用node编写的可视化界面搜索工具。 ELK工作流程图大致如下: ELK工作流程 搭建过程 下载好的ELK6安装包放入同一目录下,这里是/opt/soft...

2018-11-24 16:46:44 125

原创 ElasticSearch初探之集群搭建(三)

官网下载ES6.5.0解压到/opt/soft下,并复制两份分别命名为elasticsearch-6.5.0-master 和 elasticsearch-6.5.0-slave01(暂时只搭建两个节点,注意:新增的节点路径记得赋予当前启动用户执行权限,否则报没有权限错误)。 分别对master和slave进行配置如下: master:config/elasticsearch.ymlclu...

2018-11-18 18:18:59 100

原创 ElasticSearch初探之基本概念和CRUD(二)

基本概念简介 index:索引,相当于关系数据库中的数据库databasetype:类型,类似关系数据库中tabledocument:文档,相当于表中行记录rowfield:列,相当于table中的columshard:分片,每个index包含多个shard,每个shard是保存数据的lucene实例。shard又分为:primary shard(ps) 和replica shard(rs...

2018-11-16 18:09:13 119

原创 ElasticSearch初探之配置和启动(一)

ElasticSearch(以下简称es) 是一款基于lucene的分布式全文搜索引擎服务器,它提供实时搜索,稳定,快速可靠等优势。下面基于centos7环境下安装部署es。查看linux环境下是否安装jdk(es启动必须java8以上环境),如果出现如下表示未安装jdk请先安装[root@Eden666 ~]# java -version-bash: java: command not...

2018-11-15 15:24:33 148

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除