- 博客(17)
- 收藏
- 关注
原创 GC调优记录
工作当中,非功能测试时,我们经常会遇到FullGC频繁的问题(通常在4C的服务器上FullGC 15分钟内触发一次视作频繁)。所以需要对JVM进行调优,这里记录一下使用的命令和工具,以及场景。
2025-01-21 15:39:01
806
原创 分布式锁-解决缓存击穿
分布式系统多个微服务需要同步控制时,本地锁无法控制多个服务之间的同步。这时需要使用分布式锁,它能控制多个Java虚拟机之间多线程的同步,而不局限于当前某个虚拟机的多个线程。本地锁只能控制所在虚拟机中的线程同步执行,现在要实现分布式环境下所有虚拟机中的线程去同步执行就需要让多个虚拟机去共用一个锁,虚拟机可以分布式部署,锁也可以分布式部署。
2024-12-31 16:31:29
1006
原创 支付-支付宝沙盒开发测试
接口交互流程如下:1)用户在商户的H5网站下单支付后,商户系统按照手机网站支付接口alipay.trade.wap.payAPI的参数规范生成订单数据2)前端页面通过Form表单的形式请求到支付宝。此时支付宝会自动将页面跳转至支付宝H5收银台页面,如果用户手机上安装了支付宝APP,则自动唤起支付宝APP。3)输入支付密码完成支付。
2024-12-30 15:01:38
1126
原创 基于SpringSecurity的认证授权(JWT、第三方登录、单点登录等)
几乎所有的系统都需要认证授权才能访问本应用的资源。本文将通过具体的例子详细介绍如何使用SpringSecurity做认证授权,涉及单点登录,JWT,第三方认证等等。
2024-12-27 10:41:47
2238
原创 elasticsearch-课程搜索设计
搜索功能是一个系统的重要功能,是信息查询的方式。本文通过课程搜索的例子来展示如何设计搜索功能。课程搜索是课程展示的渠道,用户通过课程搜索找到课程信息,进一步去查看课程的详细信息,进行选课、支付、学习。课程搜索支持全文检索技术。全文检索是指计算机索引程序通过扫描文章中的每一个词,对每一个词建立一个索引,指明该词在文章中出现的次数和位置,当用户查询时,检索程序就根据事先建立的索引进行查找,并将查找的结果反馈给用户的检索方式。这个过程类似于通过字典中的检索字表查字的过程。全文检索可以简单理解为通过索引搜索文章。
2024-12-24 10:20:10
682
原创 熔断降级处理
微服务中难免存在服务之间的远程调用,比如:内容管理服务远程调用媒资服务的上传文件接口,当微服务运行不正常会导致无法正常调用微服务,此时会出现异常,如果这种异常不去处理可能导致雪崩效应。微服务的雪崩效应表现在服务与服务之间调用,当其中一个服务无法提供服务可能导致其它服务也死掉,比如:服务B调用服务A,由于A服务异常导致B服务响应缓慢,最后B、C等服务都不可用,像这样由一个服务所引起的一连串的多个服务无法提供服务即是微服务的雪崩效应。
2024-12-23 14:55:14
329
原创 消息处理SDK设计
很多业务使用任务调度(xxl-job)+消息表的方式来处理一些特定的业务逻辑来实现最终一致性,这种业务一般满足AP即可。这种模式可能在项目中很多地方都会用到,如果每个设计的业务单独去做一套消息表明显是不合适的,所以这里可以考虑把它设计成SDK供业务模块来使用。
2024-12-23 14:20:49
555
原创 分布式事务技术方案
首先理解什么是本地事务?平常我们在程序中通过spring去控制事务是利用数据库本身的事务特性来实现的,因此叫数据库事务,由于应用主要靠关系数据库来控制事务,此数据库只属于该应用,所以基于本应用自己的关系型数据库的事务又被称为本地事务。本地事务具有ACID四大特性,数据库事务在实现时会将一次事务涉及的所有操作全部纳入到一个不可分割的执行单元,该执行单元中的所有操作 要么都成功,要么都失败,只要其中任一操作执行失败,都将导致整个事务的回滚。理解了本地事务,什么是分布式事务?
2024-12-19 16:28:09
633
原创 分布式任务调度
XXL-JOB是一个轻量级分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。
2024-12-16 15:31:43
1784
原创 视频断点续传
项目中很多时候需要处理视频,如视频的上传,浏览等。在上传时假设网断了,从头开始下载用户体验非常不好,那么断点续传可以大大提升上传的效率。
2024-12-13 15:47:38
544
原创 事务失效记录
我们在写一个方法A时可能会在方法中调用另一个方法B,并且这个方法B是操作数据库的,需要事务的控制。这两个方法都在同一个service的实现类中时,如果A直接调用B,事务控制将会失效。当一个非事务方法调同类一个事务方法时,需要通过注入自身并且将事务方法提升为接口来调用,否则事务控制将失效。
2024-12-13 14:42:36
306
原创 MinIO介绍和使用
MinIO 是一个非常轻量的服务,可以很简单的和其他应用的结合使用,它兼容亚马逊 S3 云存储服务接口,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等。它一大特点就是轻量,使用简单,功能强大,支持各种平台,单个文件最大5TB,兼容 Amazon S3接口,提供了 Java、Python、GO等多版本SDK支持。官网:https://min.io。
2024-12-13 11:15:40
2670
原创 Spring Cloud Gateway整合Nacos
由于微服务项目里包含了众多的服务,每个服务都有自己的IP地址和端口,当前端想要调用服务时极其不方便,需要知道每个服务的ip。如果在前端对每个请求地址都配置绝对路径,非常不利于系统维护。这时可以用网关解决问题,当然网关的作用不止解决服务调用问题,它还有路由转发,过滤器功能,集成断路器,集成服务发现,集成服务发现,请求转发等功能。路由转发:Spring Cloud Gateway 可以根据请求的特定条件(如 URL路径、请求参数、请求头等)来将请求转发到后端的多个服务,并支持动态路由配置。
2024-12-12 17:04:06
749
原创 树形表的查询
树形表,顾名思义,表的数据结构像一个树的数据结构。通过父结点id将各元素组成一个树。本文都以一个课程的类别作为例子说明。目标:要返回全部课程分类,以树型结构返回。
2024-12-12 14:53:53
596
转载 # CROS(cross origin resource share)跨域请求解决方案
在做项目时,我们经常会遇到跨域的问题。什么是跨域?如何解决?这是我们应该了解并且掌握的一个知识点。下面的图就是我们经常在浏览器会遇到的报错信息。已拦截跨源请求:同源策略禁止读取位于 http://localhost:63110/system/dictionary/all 的远程资源。(原因:CORS 头缺少 'Access-Control-Allow-Origin' )。状态码:200。
2024-12-12 11:20:02
150
原创 Nacos注册中心&配置中心
Nacos官方介绍:一个更易于构建云原生应用的动态服务发现(Nacos Discovery )、服务配置(Nacos Config)和服务管理平台。
2024-12-12 10:48:47
1058
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人