logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

lua脚本实现滑动窗口的分布式全局限流器, 控制api接口qps

限流器, 从算法实现的角度来说, 就我知道的常见的有 滴漏桶, 令牌桶, 滑动窗口计数,固定窗口计数法从实现的工具来说, 常见的有 guava的 RateLimiter (令牌桶)redis的每秒或者每一分钟过期时间的incr(固定窗口计数)但是这些大多数时候都被我们用来当做单个机器上的限流措施, 尤其是guava这种单体框架. redis的incr虽然能控制全局, 但是还是有问题.

文章图片
#lua#分布式#redis
试玩RocketMQ, 事务消息, 以及NOT_CONSUME_YET消息不能被消费等问题

试玩RocketMQ, 事务消息, 以及NOT_CONSUME_YET消息不能被消费等问题一. 代码生产者代码消费者代码二. 笔记2.1 生产者2.1.1 事务消息2.1.1.1 事务消息回查2.1.1.2 消息重复问题2.2 消费者2.2.1 消费重试2.2.2 批量拉取2.2.3 无法消费消息, 消息的状态是`NOT_CONSUME_YET`rocketmq版本是4.9.2, rocketmq

#java#开发语言
【踩坑】解决maven的编译报错Cannot connect to the Maven process. Try again later

annot connect to the Maven process. Try again later. If the problem persists, check the Maven Importing JDK settings and restart IntelliJ IDEA

#java#idea#maven
maven使用插件打包, 想使用时间戳作为变量, 时间戳有时差, 变量不生效的问题

在使用maven的时候, 有时候打包需要加时间日期的后缀.每次打tag要手动改很麻烦, 还有一种办法就是使用maven的时间戳生成<properties><maven.build.timestamp.format>yyyyMMddHHmm</maven.build.timestamp.format></properties>然后用变量来使用${mav

#maven#docker
使用guava和redis两种方式来实现限流器

使用guava和redis两种方式来实现限流器1. redis方式2. guava限流器3. 两者整合切换yml配置aop注解aop切面两个限流器,实现一个接口1. redis方式redis方式主要是靠incr这个操作,通过过期时间和递增数来判断是否允许通过请求。public void apply(String key, int limitCount, int limitPeriod, ...

mysql8.XXX版本以后重置密码,修改加密方式解决Authentication plugin 'XXX' cannot be loaded问题

在经过千辛万苦终于把mysql8装到linux上,发现登录不知道密码,很尴尬这里需要将密码重置一下.但是都不知道密码是啥怎么登录mysql操作修改呢?还是回到/etc/my.cnf增加skip-grant-tables这样就可以跳过登陆的密码了,但是能操作的也很有限,所以还是需要密码然后我们mysql -uroot -p直接回车不输入任何东西成功的进来了.接下来...

#mysql#linux
几种消息中间件的比较-activemq,robbitmq,rocketmq,kafka

1.activemqactivemq是Apache出品的,完全支持一个完全支持JMS1.1和J2EE 1.4规范的框架.⒈ 多种语言和协议编写客户端。语言: Java,C,C++,C#,Ruby,Perl,Python,PHP。应用协议: OpenWire,Stomp REST,WS Notification,XMPP,AMQP⒉ 完全支持JMS1.1和J2EE 1.4规范 (持久化,...

#activemq#rocketmq#rabbitmq
Mybatis-plus批量插入、批量修改数据saveBatch等速度缓慢

[转]Mybatis-plus批量插入、批量修改数据saveBatch等速度缓慢背景处理Arebirth博客园: 原文链接背景使用mysqlPlus. 不管是updateBatch, 还是saveBatch, 800条左右的数据,耗时都超过1s以上尝试更改每次批量处理的数量, 比如:super.updateBatchById(list,1000);如果不传第二个参数, mysqlPlus默认是10

#mysql
git 将项目迁移到另一个仓库

有时候在用github管理项目的时候, 同一个项目,可能需要分成多个仓库进行管理, 这时候就需要迁移项目了1 . 克隆原仓库oldProject的镜像git clone –mirror https://github.com/zzzgd/oldProject.git2 . 然后我们进入这个目录cd oldProject.git3 . 在github上创建一个新仓库 newProj...

#git
    共 28 条
  • 1
  • 2
  • 3
  • 请选择