• 2024-11-01高并发场景下的抢红包系统设计:实时拆分与预先生成方案的比较与优化
    引言在之前面试中经常会问到的一个经典场景问题是如何设计一个抢红包系统。我之前的项目场景中也会涉及到群红包的业务逻辑。今天我们来一起讨论下这个业务场景设计。这个问题不仅考察我们对高并发处理的理解,还涉及到数据库设计、缓存优化、分布式锁控制等技术细节。在“
  • 2024-10-31SpringBoot调用外部接口的几种方式
    使用FeignClient调用FeignClient调用大多用于微服务开发中,各服务之间的接口调用。它以Java接口注解的方式调用HTTP请求,使服务间的调用变得简单1、在使用方引入依赖<!--Feign注解这里openFeign的版本要和自己使用的SpringBoot匹配--><dependency><groupId>org.springfr
  • 2024-10-30KMC数据库设计
    存一下密钥管理中心数据库,免得找不到了具体表格:表名列名数据类型主键外键KeysKeyIDINTPKKeyValueVARBINARY(256)KeyTypeVARCHAR(50)CreatedAtDATETIMEExpirationDateDATETIMEStatusENUMKey_PoolsPoolIDINTPKPoo
  • 2024-10-30springboot简单的项目
    项目结构用到的pom.xml配置(1)springdata-jpa操作数据库:<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-jpa</artifactId></dependency>(2)springmvc<dependency><g
  • 2024-10-30react.js中何时使用useCallback
    useMemo用于记住值,减少重新渲染组件所需的时间。useCallback用于记住函数,通常是为了防止组件的重新渲染举例子组件接收回调函数作为 props父组件引入子组件:constgetList=useCallback(()=>fetch(`http://example.com/api/${userId}`),[userId],);return(<buttonon
  • 2024-10-25mybatis存储过程返回list
    在MyBatis中,要想通过调用存储过程返回一个List集合,你需要在Mapper接口中定义一个方法,并使用@Param注解来传递存储过程的参数。同时,你需要在MapperXML文件中配置相应的标签,并指定statementType="CALLABLE"来表明这是一个调用存储过程的语句。以下是一个简单的例子:假设你有一个存
  • 2024-10-20JMeter 动态参数赋值实践
    目录前言单线程+用户参数场景说明实战结果配置明细单线程+CSVDataSetConfig场景说明实践结果配置明细多线程循环单次执行场景说明实践结果配置明细单线程+控制器+用户自定义变量+用户参数场景说明实战结果配置明细多并发+多接口+同步定时器
  • 2024-10-17Springboot缓存+定时提交优化频繁数据库表修改
    缘起最近在弄一个答题小程序,当用户选择的时候需要把用户选择的选项提交到服务器上,然后整个字段是个json格式的,更新的方法也就是解析json后添加选项进入json中。于是其中就涉及到频繁的数据库修改,因为用户答题速度根据题目不同嘛,所以我就寻思这样频繁的修改,数据量上来速度就会受
  • 2024-10-142024.10.14
    刷新页面后,Vuex中的数据被重置的原因是Vuex状态存储在内存中,当页面刷新时,整个JavaScript运行环境会重新加载,Vuex中的数据也会丢失。因此,this.$store.state.user.userId在页面刷新后可能会变成null或undefined。要解决这个问题,你可以将用户数据(如userId)持久化到浏览器
  • 2024-10-14Spring 实现 3 种异步流式接口,干掉接口超时烦恼
    大家好,我是小富~如何处理比较耗时的接口?这题我熟,直接上异步接口,使用Callable、WebAsyncTask和DeferredResult、CompletableFuture等均可实现。但这些方法有局限性,处理结果仅返回单个值。在某些场景下,如果需要接口异步处理的同时,还持续不断地向客户端响应处理结果,这些方法就不
  • 2024-10-12MongoDB
    MongoDB快速上手文章目录MongoDB快速上手前言一、环境搭建二、MongoDB操作1.数据库操作1.1选择和创建数据库1.2数据库的删除2.集合操作2.1集合的显式创建(了解)2.2集合的隐式创建2.3集合的删除3.文档基本CRUD3.1文档的插入(1)单个文档插入(2)批量插入3.2文档的基本
  • 2024-10-12useQuery 使用
    `useQuery`是`react-query`库中的一个核心钩子(Hook),它用于从异步数据源(如API服务器)获取数据,并在React组件中管理这些数据的状态。`useQuery`不仅提供了数据获取的功能,还内置了数据缓存、状态更新、错误处理和数据刷新等功能。这使得开发者能够更加方便地在应用中处理和展示
  • 2024-10-11list过滤
    importjava.math.BigDecimal;importjava.util.ArrayList;importjava.util.List;importjava.util.stream.Collectors;publicclassTest{@org.junit.Testpublicvoidtest1(){List<Order>orderList=newArrayList<>();
  • 2024-09-29接上文实现SpringSecurity,拦截器的实现
    实现拦截器有图片可知,在上篇文章我们重写了UserDetailsManager,现在我们来进行之后的操作在UserDetailsManager中我们可以调动数据库去进行一个账号密码的校验之后我们这样设置拦截器进行一个token获取存储在usernamePasswordAuthenticationFilter这一层中,有,则存储在Secur
  • 2024-09-29大厂必问 · 如何防止订单重复?
    在电商系统或任何涉及订单操作的场景中,用户多次点击“提交订单”按钮可能会导致重复订单提交,造成数据冗余和业务逻辑错误,导致库存问题、用户体验下降或财务上的错误。因此,防止订单重复提交是一个常见需求。常见的重复提交场景网络延迟:用户在提交订单后未收到确认,误以为订
  • 2024-09-28超轻量的Orm工具
    简介注册和配置使用生成器(可选)用途使用查询(示例代码中使用的Db均为IExpressionContext对象)基础查询Join查询多表查询子查询Join子查询With(tempName)AS(...)查询Include查询Union查询已有查询Union新的查询使用IExpressionContext.Union更新
  • 2024-09-28237 Sending a Http Request to Store Coach Data(加入后端)
    步骤1、准备后端程序后端程序使用ASP.NETWebAPI编写,见如下源码链接中“237-CoachWebAPI”文件夹黄健华/Vue3用VS2022打开后,需要做如下操作:1)appsettings.json文件中的数据库连接字符串改成自己的(需要新建数据库);2)执行Update-DataBase命令;如下两个专栏可以帮助大家学
  • 2024-09-26.NetCore MySqlException 多线程中(There is already an open DataReader associated with this )错误解决方案
    问题描述:其实标题只是遇到问题的其中之一,遇到三种异常信息如下:Lockwaittimeoutexceeded;tryrestartingtransaction大概意思:超过锁定等待超时;尝试重新启动事务 ThereisalreadyanopenDataReaderassociatedwiththisConnectionwhichmustbeclosedfirst.大
  • 2024-09-25android 10 禁止通过adb命令的方式删除特定APK
    —a/frameworks/base/services/core/java/com/android/server/pm/PackageManagerShellCommand.java+++b/frameworks/base/services/core/java/com/android/server/pm/PackageManagerShellCommand.java@@-1636,84+1636,88@@classPackageManagerShellCommandextends
  • 2024-09-23Spring Cloud全解析:服务调用之Feign拦截器
    Feign拦截器通过实现RequestInterceptor接口来实现Feign的拦截器,实现apply方法publicclassFeignRequestInterceptorimplementsRequestInterceptor{@Overridepublicvoidapply(RequestTemplaterequestTemplate){HttpServletRequestrequest=((S
  • 2024-09-22WebSocket相关知识点
    文章目录一、数据实时推送实现1.轮询(Polling)2.长连接(LongPolling)3.WebSocket二、代码实现后端实现1.引入依赖2.配置类3.WebSocket服务类4.定时任务前端实现测试工具推荐三、常见错误及解决方案错误1:参数缺失或注解错误错误2:遍历集合时修改集合导致的并
  • 2024-09-18还在为毕业设计发愁吗?【Node.js Vue音乐推荐系统】帮你解决难题,如何通过大数据分析用户画像,提升推荐准确性
  • 2024-09-18Java结合WebSocket 实现简单实时双人协同 pk 答题
    引入实现过程WebSocket后端1、实体类2、异常处理类3、游戏状态枚举类4、ws主类5、配置类及工具类引入引入与技术选型:在实时互动应用中,实现流畅的多人协同对战功能是一大挑战。WebSocket技术,以其全双工通信能力,提供了解决方案。不同于传统HTTP请求的短连接,WebSocket建立持久连接,极
  • 2024-09-12mybatis in中超过1000个值解决办法(超简单)
    众所周知sql中条件in的值是不能超过1000个的,而mybatis可以使用动态sql拼接的方式绕开这个限制,网上看了很多例子,我感觉都不太好理解,下面介绍一个超简单的例子。select*fromuser_infowhere1=1<iftest="userList!=nullanduserList.size()>0">and(userIdin<f
  • 2024-09-11sql-server公用表表达式
    视图是作为数据库对象存储在数据库中的,如果这个结果集仅仅要使用一次,那么建立视图就太奢侈了。在SQLServer中,公共表表达式(CommonTableExpression,简称CTE)是一种临时的结果集,可以在一个查询块中多次引用。CTE可以用来简化复杂的查询,特别是那些需要多步操作或者递归查询的情况