自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 JJWT 实现JWT

JJWT 是一个提供端到端的 JWT 创建和验证的 Java 库。永远免费和开源 (Apache License,版本2.0),JJWT 很容易使用和理解。它被设计成一个以建筑为中心的流畅界面,隐藏了它的大部分复杂性。我们刚才的例子只是存储了 id 和 subject 两个信息,如果你想存储更多的信息(例如角色)可以自定义 claims。.setSubject("脑浆消融")}}System.out.println("用户ID:" + claims.getId());

2022-11-15 22:40:56 1016

原创 MySQL 表锁和行锁

1 InnoDB 支持表锁和行锁,使用索引作为检索条件修改数据时采用行锁,否则采用表锁。2 InnoDB 自动给修改操作加锁,给查询操作不自动加锁3 行锁可能因为未使用索引而升级为表锁,所以除了检查索引是否创建的同时,也需要通过explain执行计划查询索引是否被实际使用。4 行锁相对于表锁来说,优势在于高并发场景下表现更突出,毕竟锁的粒度小。5 当表的大部分数据需要被修改,或者是多表复杂关联查询时,建议使用表锁优于行锁。6 为了保证数据的一致完整性,任何一个数据库都存在锁定机制。

2022-11-08 21:04:36 1271

转载 RabbitMQ延迟队列

延时队列,首先,它是一种队列,队列意味着内部的元素是有序的,元素出队和入队是有方向性的,元素从一端进入,从另一端取出。其次,延时队列,最重要的特性就体现在它的延时属性上,跟普通的队列不一样的是,普通队列中的元素总是等着希望被早点取出处理,而延时队列中的元素则是希望被在指定时间得到取出和处理,所以延时队列中的元素是都是带时间属性的,通常来说是需要被处理的消息或者任务。简单来说,延时队列就是用来存放需要在指定时间被处理的元素的队列。

2022-10-28 23:09:26 202

原创 如何从100亿条URL中找出相同的URL

使用同样的方法遍历文件 b,把文件 b 中的 URL 分别存储到文件 b0, b1, b2, ..., b999 中。利用布隆过滤器来处理(存在误差),4GB的内存相当于340亿个bit,将a文件中的URL使用布隆过滤器映射到340亿bit上,然后读取b文件的URL,检查是否存在于布隆过滤器上,如果是,那么大概率是相同的url(有一定的错误率)然后遍历 对应的bi 中每个 URL,看在 HashSet 集合中是否存在,若存在,说明这就是共同的 URL,可以把这个 URL 保存到一个单独的文件中。

2022-10-24 11:30:01 415

转载 布隆过滤器

当你往简单数组或列表中插入新数据时,将不会根据插入项的值来确定该插入项的索引值。这意味着新插入项的索引值与数据值之间没有直接关系。这样的话,当你需要在数组或列表中搜索相应值的时候,你必须遍历已有的集合。若集合中存在大量的数据,就会影响数据查找的效率。针对这个问题,你可以考虑使用哈希表。利用哈希表你可以通过对 “值” 进行哈希处理来获得该值对应的键或索引值,然后把该值存放到列表中对应的索引位置。

2022-10-23 20:38:06 638

原创 HTTPS抓包连接过程

TLS分为单向认证和双向认证两种,顾名思义单向认证就是只需要客户端去验证服务端的身份,而双向认证需要服务端也要验证客户端的请求,但是十分消耗资源,导致性能低下,所以一般都不会开启双向认证。服务端在收到客户端的加密的pre - master后,通过自己的私钥解密,然后根据签名协商得到的随机数A和B生成协商秘钥,然后使用协商秘钥解密被加密的摘要,再将前面接收到的所有客户端发送过来的相关安全参数进行hash之后,比较两边的摘要是否相同,从而验证握手是否合法。至此TLS/SSL安全连接就已经建立。

2022-10-23 18:52:56 1047

原创 通过抓包研究TCP的连接、传输、断开

其中PSH代表数据包,Win代表窗口,Len为数据的长度(不包括TCP首部),Client发送数据到Server后,确认收到之后发送一个ACK给Client代表已经收到,确认块的Ack为 client发送包中的Ack=Seq+Len,代表Server确实收到了。首先我们要明白TCP是面向字节流的可靠连接,UDP是面向报文的不可靠连接。TCP是如何保证可靠性的。SYN和ACK是TCP包的标志位。SYN为建立连接请求标志位,FIN为断开请求标志位。9718为Client,8888为Server。

2022-10-20 15:10:36 2090

转载 优雅的缓存解决方案--SpringCache和Redis集成(SpringBoot)

1. 前言一个系统在于数据库交互的过程中,内存的速度远远快于硬盘速度,当我们重复地获取相同数据时,我们一次又一次地请求数据库或远程服务,者无疑时性能上地浪费(这会导致大量时间被浪费在数据库查询或者远程方法调用上致使程序性能恶化),于是有了“缓存”。 本文将介绍在spring boot项目开发中怎样使用spring提供的Spring Cache 与最近很火的 Redis 数据库来实现数据的缓存。Git源码2. SpringCache简介Spring Cache是Spring框架提供的对缓存使用的

2022-04-20 22:35:34 940

转载 MySQL HAVING用法

为聚合结果指定条件如果想要从 GROUP BY 分组中进行筛选的话,不是用 WHERE 而是使用 HAVING 来进行聚合函数的筛选。比如之前问过的问题,如何从商品分类汇总中找到条数为2的商品种类呢?1. HAVING子句HAVING 子句写法:SELECT <列名1>, <列名2>, <列名3>, ……FROM <表名>GROUP BY <列名1>, <列名2>, <列名3>, ……HA

2022-04-18 14:02:59 9902

原创 Docker部署项目更改Mysql端口号

问题情景:师弟在阿里云服务器上通过Tomcat部署java Web项目 程序端口8080 mysql端口3306我通过Dokcer部署了前后端分离项目,为了避免端口冲突,服务器6612:3306映射端口。本以为需要在java后端配置文件中更改url为: url: jdbc:mysql://localhost:6612/liquid?useUnicode=true&useSSL=false&characterEncoding=utf8&serverTimezone=A

2022-04-16 14:39:54 3739

转载 SpringBoot+Vue前后端分离跨域问题

什么是跨域问题说到跨域,首先需要解释下为什么会出现这样的跨域问题。这其实都源于浏览器的同源策略。同源策略是浏览器中的一个重要的安全策略,是Netscape公司在1995年引入。同源策略的作用就是为了限制不同源之间的交互,从而能够有效避免XSS、CSFR等浏览器层面的攻击。同源指的是两个请求接口URL的协议(protocol)、域名(host)和端口(port)一致。同源策略比如以下例子:同源与非同源接口说到浏览器的攻击手段,XSS指的是恶意攻击者往Web页面里插入恶意HT

2022-04-15 19:58:56 1128

原创 解决出现Node Sass version 7.0.0 is incompatible with 4.0.0错误

Node Sass版本不一致问题解决方法:卸载本地原有的node-sass npm uninstall node-sass安装匹配的sass npm i -D sass

2022-04-14 15:51:17 315

原创 Spring security和CSRF相关问题

什么是CSRFCSRF(Cross-site request forgery)跨站请求伪造:攻击者诱导受害者进入第三方网站,在第三方网站中,向被攻击网站发送跨站请求。利用受害者在被攻击网站已经获取的注册凭证,绕过后台的用户验证,达到冒充用户对被攻击的网站执行某项操作的目的。一个典型的CSRF攻击有着如下的流程:受害者登录a.com,并保留了登录凭证(Cookie)。 攻击者引诱受害者访问了b.com。 b.com 向 a.com 发送了一个请求:a.com/act=xx。浏览器会默认携带a.

2022-04-14 15:42:09 764

原创 Node-sass问题

从github下载前端项目执行 npm i 安装依赖时,出现安装失败的问题。> node-sass@4.13.0 install D:\MyCode\项目学习\vhr\vuehr\node_modules\node-sass> node scripts/install.jsDownloading binary from https://github.com/sass/node-sass/releases/download/v4.13.0/win32-x64-83_binding.no

2022-04-14 15:23:23 152

空空如也

空空如也

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

TA关注的人

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