前言 MQ(Message Queue)就是消息队列,其有点有很多:解耦、异步、削峰等等,本文来聊一下RabbitMQ的一些概念以及使用。 RabbitMq 案例 Springboot整合RabbitMQ简单案例 基本概念 Exchange:消息交换机,它指定消息按什么规则,路由到哪个队列。 Queue:消息队列载体,每个消息都会被投入到一个或多个队列。 Binding:绑定,它的作用就是把exchange和queue按照路由规则绑定起来。 Routing Key:路由关键字,exchange根据这个关键字进行消息…

2022年11月24日 0条评论 331点热度 0人点赞 王谷雨 阅读全文

1. pom.xml引入jar包 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-amqp</artifactId> </dependency> 2. 配置application.yml 根据自己的配置填写即可 spring: rabbitmq: username: xxx password: xxx virtual…

2022年11月24日 0条评论 839点热度 0人点赞 王谷雨 阅读全文

前言 我在上一篇文章聊了Redisson的可重入锁,这次继续来聊聊Redisson的公平锁。下面是官方原话: 它保证了当多个Redisson客户端线程同时请求加锁时,优先分配给先发出请求的线程。所有请求线程会在一个队列中排队,当某个线程出现宕机时,Redisson会等待5秒后继续下一个线程,也就是说如果前面有5个线程都处于等待状态,那么后面的线程会等待至少25秒。 源码版本:3.17.7 这是我 fork 的分支,添加了自己理解的中文注释:https://github.com/xiaoguyu/redisson 公…

2022年11月8日 0条评论 445点热度 0人点赞 王谷雨 阅读全文

前言 Redisson是一个在Redis的基础上实现的Java驻内存数据网格(In-Memory Data Grid)。Redisson有一样功能是可重入的分布式锁。本文来讨论一下这个功能的特点以及源码分析。 前置知识 在讲Redisson,咱们先来聊聊分布式锁的特点以及Redis的发布/订阅机制,磨刀不误砍柴工。 分布式锁的思考 首先思考下,如果我们自己去实现一个分布式锁,这个锁需要具备哪些功能? 互斥(这是一个锁最基本的功能) 锁失效机制(也就是可以设置锁定时长,防止死锁) 高性能、高可用 阻塞、非阻塞 可重入…

2022年11月7日 0条评论 1245点热度 1人点赞 王谷雨 阅读全文

前言 如果你有自己的云服务器,并且需要用到内网穿透,那么可以考虑使用FRP搭建自己的内网穿透服务。 常用的内网穿透工具有:cpolar、natapp、向日葵…… 但是以上介绍的工具,如果使用免费版,都有诸多限制(毕竟要恰饭的嘛)。所以,干脆自己弄一个吧。 安装 我使用的版本是 V0.43.0,下面以 http 穿透举例。 下载 在Github的 Release 页面下载对应版本,下面是我下载的版本 服务器:frp_0.43.0_linux_amd64.tar.gz 本地win10:frp_0.43.0_window…

2022年11月1日 0条评论 510点热度 0人点赞 王谷雨 阅读全文