后端高级
文章平均质量分 69
qq_44601070
这个作者很懒,什么都没留下…
展开
-
通过URL请求tomcat服务器直接下载文件
通过URL请求tomcat服务器直接下载文件转载 2021-12-17 09:50:07 · 734 阅读 · 0 评论 -
到底什么是中台?
到底什么是中台?转载 2021-12-15 21:35:38 · 190 阅读 · 0 评论 -
Service Mesh是什么,为我们解决了什么问题?
Service Mesh是什么,为我们解决了什么问题?转载 2021-12-15 21:10:40 · 211 阅读 · 0 评论 -
Service Mesh框架选型对比分析:Linkerd、Envoy、Istio、Conduit
Service Mesh框架选型对比分析:Linkerd、Envoy、Istio、Conduit转载 2021-12-15 20:40:42 · 430 阅读 · 0 评论 -
SpringBoot2.0企业中台实战之权限统一管理与应用统一授权(dubbo+zookeeper分布式系统实战)
SpringBoot2.0企业中台实战之权限统一管理与应用统一授权(dubbo+zookeeper分布式系统实战)转载 2021-11-20 15:55:29 · 353 阅读 · 0 评论 -
JWT(Json Web Token)实现token认证 ~ 简介
JWT(Json Web Token)实现token认证 ~ 简介转载 2021-11-20 15:22:49 · 170 阅读 · 0 评论 -
熬夜整理的RabbitMQ知识点相当齐全的文章
熬夜整理的RabbitMQ知识点相当齐全的文章转载 2021-11-20 11:42:02 · 182 阅读 · 0 评论 -
Java面试题~判断字符串常量值出现的次数(附代码实现)
Java面试题~判断字符串常量值出现的次数(附代码实现)转载 2021-11-20 11:00:14 · 166 阅读 · 0 评论 -
Java面试题~基于注解+Enum+策略模式优化switch case
Java面试题~基于注解+Enum+策略模式优化switch case转载 2021-11-20 10:20:37 · 803 阅读 · 0 评论 -
Java面试题~从一个线程并发安全场景谈谈Java的锁、CAS算法以及ABA问题
Java面试题~从一个线程并发安全场景谈谈Java的锁、CAS算法以及ABA问题转载 2021-11-19 11:50:21 · 126 阅读 · 0 评论 -
Java面试题~Java线程池实战总结一之百万数据的批量插入
Java面试题~Java线程池实战总结一之百万数据的批量插入转载 2021-11-19 11:20:42 · 1833 阅读 · 0 评论 -
Java面试题~消息中间件RabbitMQ如何保证消息不丢失且100%投递成功
Java面试题~消息中间件RabbitMQ如何保证消息不丢失且100%投递成功转载 2021-11-19 10:48:59 · 442 阅读 · 0 评论 -
Java面试题~MySQL实战系列之4种事务隔离级别
Java面试题~MySQL实战系列之4种事务隔离级别转载 2021-11-18 20:49:04 · 119 阅读 · 0 评论 -
Java面试题~Java如何防止接口重复提交
Java面试题~Java如何防止接口重复提交转载 2021-11-18 19:51:07 · 858 阅读 · 0 评论 -
Java面试题~面试官:你是怎么定位、排查、诊断生产环境的Bug的?
Java面试题~面试官:你是怎么定位、排查、诊断生产环境的Bug的?转载 2021-11-18 19:00:22 · 731 阅读 · 0 评论 -
Java面试系列之并发编程专题-Synchronized灵魂拷问
Java面试系列之并发编程专题-Synchronized灵魂拷问转载 2021-11-18 18:30:40 · 81 阅读 · 0 评论 -
Java面试系列之并发编程专题-Java线程池灵魂拷问
Java面试系列之并发编程专题-Java线程池灵魂拷问转载 2021-11-18 17:56:08 · 66 阅读 · 0 评论 -
Redis实战(1)-SpringBoot2.0整合Redis自定义注入模板操作Bean组件
Redis实战(1)-SpringBoot2.0整合Redis自定义注入模板操作Bean组件转载 2021-11-18 17:25:48 · 763 阅读 · 0 评论 -
Redis实战(2)-数据结构之字符串String实战之存储对象
Redis实战(2)-数据结构之字符串String实战之存储对象转载 2021-11-18 16:59:13 · 297 阅读 · 0 评论 -
Redis实战(3)-数据结构List实战一之商品信息的有序存储
Redis实战(3)-数据结构List实战一之商品信息的有序存储转载 2021-11-17 20:13:16 · 753 阅读 · 0 评论 -
Redis实战(4)-数据结构List实战之队列特性实现消息多线程 广播通知
Redis实战(4)-数据结构List实战之队列特性实现消息多线程 广播通知转载 2021-11-17 19:44:38 · 242 阅读 · 0 评论 -
Redis实战(5)-数据结构Set实战之过滤用户注册重复提交的信息
Redis实战(5)-数据结构Set实战之过滤用户注册重复提交的信息转载 2021-11-17 18:46:18 · 136 阅读 · 0 评论 -
Redis实战(6)-数据结构Set实战之获取随机乱序唯一的试卷题目
Redis实战(6)-数据结构Set实战之获取随机乱序唯一的试卷题目转载 2021-11-17 11:49:26 · 208 阅读 · 0 评论 -
Redis实战(7)-SortedSet之认识有序集合(命令行与代码实战)
Redis实战(7)-SortedSet之认识有序集合(命令行与代码实战)转载 2021-11-17 11:15:58 · 93 阅读 · 0 评论 -
Redis实战(8)-SortedSet典型应用场景实战之游戏充值排行榜
Redis实战(8)-SortedSet典型应用场景实战之游戏充值排行榜转载 2021-11-17 10:35:52 · 158 阅读 · 0 评论 -
Redis实战(9)-SortedSet实战之再谈游戏充值排行榜(如何处理历史与异常的充值记录)
摘要:每当我们谈起缓存中间件Redis的应用场景时,我们一般都会根据其数据结构联想到对应的应用场景,有序集合SortedSet也不例外,“排行榜”一直都是与其紧密挂钩、不得不谈的其中一种实战场景!本文我们将继续再谈“游戏充值排行榜”,介绍如何去处理历史已经存在的充值记录 或者 在将充值记录塞入缓存Cache失败时如何开启后续的补偿处理措施!内容:在上篇文章中,我们已经给各位小伙伴介绍了如何基于Spring Boot2.0 + 缓存Redis的SortedSet以实际的代码实战一种典型的业务场景“游戏充值转载 2021-11-15 21:28:14 · 146 阅读 · 0 评论 -
Redis实战(10)-Hash实战之借助命令行和代码形式认识一下哈希
摘要:对于哈希数据类型Hash,有些小伙伴在实际的项目开发中相对于Redis其他的数据结构而言,可能用得并不多。然而,从“道”的层面上看,这丝毫不影响一个客观事实、规律的存在,那就是哈希Hash本身也很强大,从本文开始我们将介绍数据类型~哈希Hash的相关特性及其相应的API和命令行层面上的操作!内容:对于数据类型哈希Hash,可能有些小伙伴在实际的项目开发中用得并不是很多,而更多的替代性方案是采用前面篇章介绍的:字符串String、列表List、集合Set、有序集合SortedSet等数据结构。然转载 2021-11-15 20:52:32 · 109 阅读 · 0 评论 -
Redis实战(11)-哈希Hash典型应用场景实战之系统数据字典实时触发缓存存储
摘要:前文我们已经介绍并实战了Redis的数据类型哈希Hash的相关命令行及其对应的Java单元测试的实战代码,本文我们将以实际项目中典型的应用场景“系统数据字典模块的实时触发存储”为案例,学以致用,一起践行哈希Hash在实际项目下的实战应用,感受感受其在实际业务场景下的作用!内容:在前文我们已经简单介绍了Redis的数据类型~哈希Hash的底层存储结构,很显然,哈希Hash跟其他的数据结构还是有诸多不同之处的。其他的据结构几乎都是:Key-Value的存储,而Hash则是:Key – [Field-V转载 2021-11-15 19:54:29 · 208 阅读 · 0 评论 -
Redis实战(12)-基于Redis的Key失效和定时任务调度实现订单支付超时自动失效(延时队列)
摘要:“商城平台用户下单”这一业务场景相信很多小伙伴并不陌生,在正常的情况下,用户在提交完订单/下完单之后,应该是前往“收银台”选择支付方式进行支付,之后只需要提供相应的密码即可完成整个支付过程;然而,“非正常的情况”也总是会有的,即用户在提交完订单之后在“规定的时间内”迟迟没有支付,这个时候我们就需要采取一些措施了,本文就是讲解如何基于Redis的Key失效,即TTL + 定时任务调度 实现这一业务场景的功能。内容:前面篇章中,我们基本上给各位小伙伴介绍完了缓存中间件Redis各种典型且常见的数据结构转载 2021-11-15 19:13:46 · 529 阅读 · 0 评论 -
Redis实战(13) - 手把手搭建Redis集群环境 (3主3从)
摘要:在微服务、分布式系统架构盛行的时代,我们几乎阔以在项目中见到缓存中间件Redis的身影,作为一款具有高性能、高可用、扩展性强的中间件,Redis可以说是出尽了风头!本文我们将介绍如何在本地Windows系统下搭建Redis的集群环境(采用Master-Slave的模式,即3主3从),并在文末提供如何基于Spring Boot2.0搭建的项目以集群的方式连接至Redis服务,进一步多掌握一项运维层面的硬技能!内容:Redis集群的搭建,可以说是保证Redis对外提供服务“可靠性、高可用性”的保证,故转载 2021-11-15 18:26:59 · 140 阅读 · 0 评论 -
Java秒杀系统(一):Java商城秒杀系统设计与实战视频教程(SpringBoot版)
概要介绍:历经一个多月的时间,debug亲自录制的“Java商城秒杀系统的设计与实战视频教程(SpringBoot版)”终于完成了!在本课程中,debug真正的将之前所讲解的相关技术融入到了本课程中,即本课程所介绍的“秒杀系统”是一个真正意义上的项目,主要介绍了商城平台举办商品秒杀活动期间所涉及的相关业务。值得介绍的是,本课程在技术栈层面涵盖了前端和后端的大部分常用技术,包括Spring Boot、Spring MVC、Mybatis、Redis、ZooKeeper、RabbitMQ、Redisson、分转载 2021-11-15 17:47:32 · 224 阅读 · 0 评论 -
Java秒杀系统(二):构建SpringBoot多模块项目
摘要:本篇博文是“Java秒杀系统实战系列文章”的第二篇,主要分享介绍如何采用开发工具IDEA和Maven,基于SpringBoot+SpringMVC+Mybatis+分布式中间件构建一个多模块的项目,即“秒杀系统”!。内容:传统的基于IDEA构建SpringBoot的项目,是直接借助Spring Initializr插件进行构建,但是这种方式在大部分情况下,只能充当“单模块”的项目,并不能很好的做到“分工明确、职责清晰”的分层原则!故而为了能更好的管理项目代码以及尽量做到“模块如名”,快速定位给转载 2021-11-14 18:50:21 · 117 阅读 · 0 评论 -
Java秒杀系统(三):整体业务流程介绍与数据库设计
摘要:本篇博文是“Java秒杀系统实战系列文章”的第三篇,本篇博文将主要介绍秒杀系统的整体业务流程,并根据相应的业务流程进行数据库设计,最终采用Mybatis逆向工程生成相应的实体类Entity、操作Sql的接口Mapper以及写动态Sql的配置文件Mapper.xml。内容:对于该秒杀系统的整体业务流程,相信机灵的小伙伴在看完第二篇博文的时候,就已经知道个大概了!因为在提供的源码数据库下载的链接中,Debug已经跟各位小伙伴介绍了该秒杀系统整体的业务流程,而且还以视频形式给各位小伙伴进行了展示!该源码转载 2021-11-14 17:50:12 · 755 阅读 · 0 评论 -
Java秒杀系统(四):待秒杀商品列表与详情功能开发
摘要:本篇博文是“Java秒杀系统实战系列文章”的第四篇,从这篇文章开始我们将进入该秒杀系统相关业务模块的代码实战!本篇博文将首先从最简单的业务模块入手,即如何实现“获取待秒杀商品的列表以及查看待秒杀的商品详情”功能!内容:对于“待秒杀商品列表及其详情的展示”这一功能,我们将采用目前比较流行的mvc开发模式来实现!值得一提的是,这一功能模块涉及的主要数据库表为“商品信息表item”、“待秒杀商品信息item_kill”。一、“待秒杀商品列表”代码实战(1)首先是在 ItemController.转载 2021-11-14 17:20:06 · 179 阅读 · 0 评论 -
Java秒杀系统(五):整合Shiro实现用户登录认证
摘要:本篇博文是“Java秒杀系统实战系列文章”的第五篇,在本篇博文中,我们将整合权限认证-授权框架Shiro,实现用户的登陆认证功能,主要用于:要求用户在抢购商品或者秒杀商品时,限制用户进行登陆!并对于特定的url(比如抢购请求对应的url)进行过滤(即当用户访问指定的url时,需要要求用户进行登陆)。内容:对于Shiro,相信各位小伙伴应该听说过,甚至应该也使用过!简单而言,它是一个很好用的用户身份认证、权限授权框架,可以实现用户登录认证,权限、资源授权、会话管理等功能,在本秒杀系统中,我们将主要采转载 2021-11-14 16:40:11 · 181 阅读 · 0 评论 -
Java秒杀系统(六):商品秒杀代码实战
摘要:本篇博文是“Java秒杀系统实战系列文章”的第六篇,本篇博文我们将进入整个秒杀系统核心功能模块的代码开发,即“商品秒杀”功能模块的代码实战。内容:“商品秒杀”功能模块是建立在“商品详情”功能模块的基础之上,对于这一功能模块而言,其主要的核心流程在于:前端发起抢购请求,该请求将携带着一些请求数据:待秒杀Id跟当前用户Id等数据;后端接口在接收到请求之后,将执行一系列的判断与秒杀处理逻辑,最终将处理结果返回给到前端。其中,后端接口的这一系列判断与秒杀处理逻辑还是挺复杂的,Debug将其绘制成了如下转载 2021-11-14 16:11:38 · 1258 阅读 · 0 评论 -
Java秒杀系统(七):分布式唯一ID生成订单编号
摘要:本篇博文是“Java秒杀系统实战系列文章”的第七篇,在本博文中我们将重点介绍 “在高并发,如秒杀的业务场景下如何生成全局唯一、趋势递增的订单编号”,我们将介绍两种方法,一种是传统的采用随机数生成的方式,另外一种是采用当前比较流行的“分布式唯一ID生成算法-雪花算法”来实现。内容:在上一篇博文,我们完成了商品秒杀业务逻辑的代码实战,在该代码中,我们还实现了“当用户秒杀成功后,需要在数据库表中为其生成一笔秒杀成功的订单记录”的功能,其对应的代码如下所示://通用的方法-记录用户秒杀成功后生成的订转载 2021-11-14 15:24:37 · 500 阅读 · 0 评论 -
Java秒杀系统(八):整合RabbitMQ实现消息异步发送
摘要:本篇博文是“Java秒杀系统实战系列文章”的第八篇,在这篇文章中我们将整合消息中间件RabbitMQ,包括添加依赖、加入配置信息以及自定义注入相关操作组件,比如RabbitTemplate等等,最终初步实现消息的发送和接收,并在下一篇章将其与邮件服务整合,实现“用户秒杀成功发送邮件通知消息”的功能!内容:对于消息中间件RabbitMQ,想必各位小伙伴没有用过、也该有听过,它是一款目前市面上应用相当广泛的消息中间件,可以实现消息异步通信、业务服务模块解耦、接口限流、消息分发等功能,在微服务、分布式系转载 2021-11-14 12:27:13 · 867 阅读 · 0 评论 -
Java秒杀系统(九):开发通用的发送邮件服务
摘要:本篇博文是“Java秒杀系统实战系列文章”的第九篇,在这篇文章中我们将继续完善秒杀系统中的核心处理逻辑,即“用户秒杀~抢单”的业务逻辑!本文我们将基于JavaMail服务,开发一个通用的发送邮件服务,用于发送邮件通知消息,并与上一篇章中已经实现的RabbitMQ异步发送消息的逻辑进行整合,彻底实现“用户秒杀成功后,异步发送邮件通知消息给到用户邮箱,告知用户尽快进行付款”的功能!内容:对于发送邮件服务,相信各位小伙伴并不陌生,本篇博文我们将开发一个通用的发送邮件服务,用于“用户秒杀成功之后异步发送邮转载 2021-11-14 11:47:03 · 164 阅读 · 0 评论 -
Java秒杀系统(十):RabbitMQ死信队列处理超时未支付的订单
摘要:本篇博文是“Java秒杀系统实战系列文章”的第十篇,本篇博文我们将采用RabbitMQ的死信队列的方式处理“用户秒杀成功生成订单后,却迟迟没有支付”的情况,一起来见识一下RabbitMQ死信队列在实际业务环境下的强大之处!内容:对于消息中间件RabbitMQ,Debug其实在前面的篇章中已经简单分享介绍过了,在这里就不再赘述了!在本文我们将采用RabbitMQ的死信队列实现这样的业务需求:“用户在秒杀成功并成功创建一笔订单记录后,理论上应该是执行去支付的操作,但是却存在着一种情况是用户迟迟不肯去支转载 2021-11-14 11:00:04 · 591 阅读 · 0 评论