首页
学习
活动
专区
工具
TVP
发布

一页一技术分享

java技术
专栏成员
12
文章
5248
阅读量
11
订阅数
Redisson源码(二)延迟队列RDelayedQueue的使用及原理分析
在工作中,我们有时候会遇到这样的场景,比如下单之后超过30分钟未支付自动取消订单,还有就比如过期/生效通知等等,这些场景一般有两种方法解决: 第一种可以通过定时任务扫描符合条件的去执行,第二种就是提前通过消息队列发送延迟消息到期自动消费。 本文我要介绍的就是通过第二种方式来实现这种业务逻辑,只不过这次不是使用MQ而是直接使用的是Redission提供的RDelayedQueue延迟队列。
用户2031163
2024-03-02
1.1K0
Redisson源码(一)RedissonLock加锁与解锁过程原理分析
在当今分布式微服务架构流行的情况下,显然在传统单体项目中使用的JDK自带的锁已经不能解决资源竞争的问题了, 进而出现的解决方案有1)利用数据库 2)redis 3)zookeeper,经过验证的是利用redis做分布式锁无论在可用性、可靠性上比较有优势。 而使用Redisson来做分布式锁很多人在熟悉不过了,它提供的Lock就是基于redis来做的。
用户2031163
2024-02-23
4250
基于springboot+vue快速搭建一个轻量级实用的博客系统
在去年七月份,看着自己有一台空闲的服务器放在那里也是浪费,刚好我也有域名备案了就想着在公网部署一个博客系统。于是我去Github上找用Java语言写的博客系统, 找到自己喜欢的博客系统后拉下来研究了一通,发现他这个项目的技术栈和现在主流的互联网应用架构一样,比如用SpringCloud微服务、中间件、ES等等。
用户2031163
2024-02-04
3600
RocketMQ源码(三)简单探索Producer和Consumer与Queue之间的负载均衡策略
在RocketMQ架构中,我们都知道一个topic下可以创建多个queue,生产者通过负载均衡策略可以将消息均匀的分发在各个queue中,而这些queue 可以通过负载均衡给多个消费者订阅从而提升消费效率,本文将从以下两个方面从源码角度分析producer和consumer的负载均衡原理:
用户2031163
2023-12-27
1180
RocketMQ源码(二)消息消费的模式到底是Push还是Pull?
RocketMQ为开发者提供了两种消息的消费模式,分别是Pull和Push,对应的实现是DefaultMQPullConsumer和DefaultMQPushConsumer; 接下来我将带大家通过以下几个方面了解这两种模式:
用户2031163
2023-11-29
5330
RocketMQ源码(一)RocketMQ消息生产及消费通信链路源码分析
RocketMQ的核心架构主要分为Broker、Producer、Consumer,通过阅读源码看到他们之间是通过Netty来通信的 ,具体来说Broker端是Netty服务器用来负责与客户端的连接请求处理,而Producer/Consumer端是Netty客户端用来负责与Netty服务器的通信及请求响应处理。
用户2031163
2023-10-20
3400
SpringOauth2(一):JwtTokenStore使用HMACSHA512算法令牌、与jjwt令牌互相可识别
在我们使用SpringOauth2过程中,一般情况下会使用JwtTokenStore来颁发及校验令牌字符串,相比较于JdbcTokenStore这种令牌存储形式来说性能要高很多。
用户2031163
2023-09-13
2100
SpringBoot(二):springboot自动装配之SPI机制
上篇文章我们介绍了springboot启动过程中涉及的核心类及其功能,我们知道springboot相较于spring的一大特性就是自动装配,那么自动装配是怎么具体实现的呢? 其实在实现自动装配上springboot采用了多种方案结合的,比如基于spring的扩展点的自动属性注入等,还有提供了一套SPI机制让程序自动可插拔的装配。 本文我带大家重点 了解一下SPI机制的实现原理。
用户2031163
2023-08-27
6150
SpringBoot(一):springboot应用程序启动过程核心分析
说起springboot大家很容易想到的就是自动装配、约定大于配置这个特点,的确这是springboot相比较于普通的spring web项目最大的亮点。
用户2031163
2023-08-27
2610
大厂是怎么用ThreadLocal?ThreadLocal核心原理分析
ThreadLocal是Java中的一个线程本地变量类。它可以让每个线程都有自己独立的变量副本,而不会相互影响。
用户2031163
2023-08-27
2382
架构师必备:如何基于springboot优雅的构建公共的starter
在我们平时的Springboot应用程序开发中,我们经常把我们需要的starter引入,这样程序启动时就会把这个starter的相关功能自动配置到spring的应用程序容器中 ,可以极大地简化我们的Spring应用程序开发和配置过程。
用户2031163
2023-08-27
2780
良心分享:基于Java+SpringBoot+Netty+WebSocket+Uniapp轻松搭建ChatGpt程序
本文将详细介绍如何基于你自己的开源项目搭建一个ChatGPT程序,包括微信小程序和H5网页版。 该项目服务端主要使用了Java + Spring Boot + Netty + WebSocket等技术栈,聊天客户端使用的是UniApp来轻松搭建微信小程序和H5网页端。
用户2031163
2023-08-27
7250
没有更多了
社区活动
【纪录片】中国数据库前世今生
穿越半个世纪,探寻中国数据库50年的发展历程
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档