![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计
文章平均质量分 85
莫轻言舞
莫笑少年江湖梦,谁不少年梦江湖。曾经年少立志三千里,如今踌躇百步无寸功。儿女蹒跚学堂中。碎银几两催人老。心仍少,皱纹却上眉目中,浮生醉酒回梦里。青春人依旧,只叹时光太匆匆!
展开
-
提高接口响应
在现代的互联网应用中,用户对响应速度的要求越来越高,一个快速的响应可以大大提升用户体验和满意度。当接口查询耗时过长时,用户可能会面临等待时间过长、页面无响应等问题,这不仅影响了用户的正常使用,还可能导致用户流失。接下来通过异步的方式优化上面的代码。在上面的代码中通过join操作来获取最终执行的结果,它会阻塞当前主线程(Tomcat线程)直到所有任务完成。这样一来,tomcat整体的吞吐量将会明显的提高。上面代码中,如果有任何一个接口发生异常,那么将会导致该业务接口返回异常。接口查询成功,但是总耗时达到了。原创 2024-06-27 15:24:06 · 776 阅读 · 0 评论 -
SpringBoot-Starter 自动锁组件
一个锁需要有的信息有,key,加锁的时间,时间单位,是否尝试加锁,加锁等待时间 等等。(如果还有其他的业务需要,可以添加一个扩展内容,自己去解析处理) 那么这个注解的属性就可以知道有哪些了/*** 锁的基本信息*//*** 锁前缀*//*** 加锁时间*//*** 是否尝试加锁*//*** 等待时间,-1 不等待*//*** 锁时间类型*/重点就在这个切面里面,我们需要在这里完成key的合成,锁的获取与释放。整个过程可以分为以下几步。原创 2024-01-16 17:07:15 · 1013 阅读 · 0 评论 -
在SpringBoot中重试调用第三方API
Spring Retry是Spring框架提供的一个模块,它通过提供注解或编程方式的方式,帮助我们实现方法级别的重试机制。在Spring Boot中,可以很方便地集成并使用Spring Retry。在Spring Boot项目中,通过集成Spring Retry模块,我们可以优雅地实现对第三方API调用的重试机制。通过@Retryable注解,我们能够很方便地在方法级别上添加重试策略。同时,异步方法和异常类型的支持使得我们能够更灵活地应对不同的业务场景。原创 2024-01-02 09:57:34 · 1213 阅读 · 1 评论 -
SpringBoot 项目部署方案
分享的是springboot打包并结合shell脚本命令部署,重点在分享一个shell程序启动工具,希望能便利工作;profiles指定不同环境的配置maven-assembly-plugin打发布压缩包分享 shenniu_publish.sh程序启动工具linux上使用 shenniu_publish.sh启动程序。原创 2024-01-02 09:53:48 · 973 阅读 · 0 评论 -
项目接口请求合并
请求合并到底有什么意义呢?我们来看下图。假设我们3个用户(用户id分别是1、2、3),现在他们都要查询自己的基本信息,请求到服务器,服务器端请求数据库,发出3次请求。我们都知道数据库连接资源是相当宝贵的,那么我们怎么尽可能节省连接资源呢?这里把数据库换成被调用的远程服务,也是同样的道理。我们改变下思路,如下图所示。我们在服务器端把请求合并,只发出一条SQL查询数据库,数据库返回后,服务器端处理返回数据,根据一个唯一请求ID,把数据分组,返回给对应用户。原创 2023-10-09 15:50:35 · 300 阅读 · 0 评论 -
Post为什么会发送两次请求?
同源策略是一个重要的安全策略,它用于限制一个源的文档或者它加载的脚本如何能与另一个源的资源进行交互。如果两个 URL 的协议、主机和端口都相同,我们就称这两个 URL 同源。协议:协议是定义了数据如何在计算机内和之间进行交换的规则的系统,例如 HTTP、HTTPS。主机:是已连接到一个计算机网络的一台电子计算机或其他设备。网络主机可以向网络上的用户或其他节点提供信息资源、服务和应用。使用 TCP/IP 协议族参与网络的计算机也可称为 IP 主机。端口。原创 2023-10-09 15:34:37 · 101 阅读 · 0 评论 -
SpringBoot 该如何预防 XSS 攻击
*** Filter 过滤器,拦截请求转换为新的请求*//*** 初始化方法*/@Override/*** 过滤方法*/@Override} else {@Override/*注入自定义的序列化工具,将RequestBody的参数进行转译后传输*/// XSS序列化就是注意要分情况处理。拦截器处理一部分,并注意拦截器的注册方式Jackson的方式处理另一部分,也是注意配置方式。原创 2023-08-10 10:44:33 · 1155 阅读 · 0 评论 -
多租户的低代码平台,Saas开发平台:MateCloud
MateCloud是一款基于Spring Cloud Alibaba的微服务架构。目前已经整合Spring Boot 2.7.0、 Spring Cloud 2021、Spring Cloud Alibaba 2021、Spring Security Oauth2、Feign、Dubbo、JetCache、RocketMQ等,支持多租户的低代码平台,Saas平台开发套件。原创 2023-07-27 18:55:52 · 417 阅读 · 0 评论 -
SpringBoot 实现 PDF 添加水印
PDF(Portable Document Format,便携式文档格式)是一种流行的文件格式,它可以在多个操作系统和应用程序中进行查看和打印。在某些情况下,我们需要对 PDF 文件添加水印,以使其更具有辨识度或者保护其版权。本文将介绍如何使用 Spring Boot 来实现 PDF 添加水印的方式。原创 2023-07-27 18:50:16 · 832 阅读 · 0 评论 -
风控系统设计
自然日+自然小时计数 这里并不能单纯地串联两个判断,因为如果自然日的判定通过,而自然小时的判定不通过的时候,需要回退,自然日跟自然小时都不能计入本次调用!mysql/redis+分布式事务 需要上锁,实现复杂,能做到比较精确的计数,也就是真正等到代码块执行成功之后,再去操作计数。这里给的是比较粗糙的写法,主要需要表达的就是,进行两个条件判断时,有其中一个不满足,另一个都需要进行回退.目前没有很精确技术的要求,代价太大,也没有持久化的需求,因此选用 redis+lua 即可。是日/小时关联的key,原创 2023-06-08 10:55:21 · 1289 阅读 · 0 评论 -
支付系统设计
支付永远是一个公司的核心领域,因为这是一个有交易属性公司的命脉。那么,支付系统到底长什么样,又是怎么运行交互的呢?抛开带有支付牌照的金融公司的支付架构,下述链路和系统组成基本上符合绝大多数支付场景。其实整体可以看成是交易核心+支付核心 两个大系统。交易系统关联了业务场景和底层支付,而支付系统完成了调用支付工具到对账清算等一系列相关操作。下面我们就来一起看下 各个系统的核心组成和交互。原创 2023-06-08 10:48:40 · 1516 阅读 · 0 评论 -
权限系统设计方案
用户和角色,角色和权限都是多对多的关系,这种模型是最通用的权限管理模型,节省了很大的权限维护成本, 但是实际的业务千变万化,权限管理的模型也需要根据不同的业务模型适当的调整,比如一个公司内部的组织架构是分层级的,层级越高权限越大,因为层级高的人不仅要拥有自己下属拥有的权限,二期还要有一些额外的权限。这种模型能够满足权限的基本分配能力,但是随着用户数量的增长,这种模型的弊端就凸显出来了,每一个用户都需要去分配权限,非常的浪费管理员的时间和精力,并且用户和权限杂乱的对应关系会给后期带来巨大的维护成本。原创 2023-06-08 10:17:30 · 1574 阅读 · 0 评论 -
接口优化技巧
接口设计及优化方案原创 2023-06-08 10:14:05 · 966 阅读 · 0 评论