![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Web
文章平均质量分 59
seasonLai
站在巨人的肩膀上,粘贴复制...
github: https://github.com/seasonlai
展开
-
布隆过滤器优化内存占用过大问题
背景在平时开发需求中,用set集合在内存中做去重操作的场景经常会遇到,遇上大数据量的话,还用set集合来去重,会有内存不够用的风险。这时候就得换个数据结构来优化了,最先想到的是用字节来表示一个数据,来大大减少内存的使用。如redis的Bitmap、java工具类BitSet等。但去重的目标不一定都是数字,这时候可以使用布隆过滤器。简介布隆过滤器(英语:Bloom Filter)是1970年由布隆提出的。它实际上是一个很长的二进制向量和一系列随机映射函数。布隆过滤器可以用于检索一个元素是否在一个集合中。原创 2021-09-03 17:03:26 · 4570 阅读 · 0 评论 -
一次内存快溢出问题复盘
背景服务其中一个实例健康检查一直频繁上下线告警,jvm内存几乎达到原创 2021-09-03 15:28:24 · 163 阅读 · 0 评论 -
RoaringBitmap应用场景
背景信息几乎所有行业(如互联网、游戏、教育等)都有实时精准营销的需求。通过系统生成用户画像,在营销时通过条件组合筛选用户,快速提取目标群体,例如:电商行业中,商家在运营活动前,需要根据活动的目标群体的特征,圈选出一批目标用户进行广告推送或进行活动条件的判断。游戏行业中,商家需要根据玩家的某些特征进行圈选,针对性地发放大礼包,提高玩家活跃度。教育行业中,需要根据学生不同的特征,推送有针对性的习题,帮助学生查缺补漏。搜索、门户、视频网站等业务中,根据用户的关注热点,推送不同的内容。这些行业都有一原创 2021-08-25 19:58:36 · 1086 阅读 · 0 评论 -
定期删除es的数据
随着es的数据越来越多,占用磁盘容量越大,需要扩容,要花money就越多,实际上可以定期删除一些时间久远不常用的数据可以在服务器上定期执行以下脚本#!/bin/sh# example: sh ./delete_es_by_day.sh chat create_time 365index_name=$1daycolumn=$2savedays=$3format_day=$4if [ ! -n "$savedays" ]; then echo "the args is not right,原创 2021-08-23 14:33:51 · 3658 阅读 · 2 评论 -
利用Redis实现时间滑动窗口限流
利用Redis实现时间滑动窗口限流背景实现背景redisson开源框架已经提供了限流的功能,但由于项目较旧,没引入redisson,为了降低风险,用spring-redis的RedisTemplate来自行实现一个限流工具类。实现用sortSet来存储时间窗口数据,命令是ZADD,score的值为当前时间戳利用sortSet的ZREMRANGEBYSCORE命令删除时间窗口外的数据用sortSet的ZCARD来判断是否超过限流阈值代码实现@Component@Slf4jpublic原创 2021-08-15 13:29:49 · 2478 阅读 · 0 评论 -
改造otter
目前公司在一些不是很重要的业务场景,需要数据同步功能,会使用Otter来实现(毕竟是开源软件,重要的业务还是尽量用商用的软件)。但有些功能Otter没有实现,需要改造一下以满足业务需求。现已改造支持发送数据到RabbitMQ,支持下载腾讯云备份binlog文件。原创 2021-01-12 17:50:27 · 278 阅读 · 0 评论 -
本地用docker快速搭建RocketMQ
本文旨在本地电脑使用docker快速搭建RocketMQ环境,用于调试,需要对docker有一定的认识。概要基本流程拉取rocketmq镜像配置文件broker配置文件stack.yml快速启动访问控制台参考文章基本流程拉取rocketmq镜像 -> 启动namesrv -> 启动broker -> 启动web控制台拉取rocketmq镜像docker pull ro...原创 2020-01-19 10:42:17 · 671 阅读 · 1 评论 -
CORS简介(转)
在本文中,我们就将对一种跨域访问技术CORS(Cross-Origin Resource Sharing)进行介绍。为什么要用CORS在需要做出一个技术决定时,我们常常需要给出适当的理由。就CORS而言,使用它的根本原因就是要完成资源的跨域访问,也就是如何绕过Same-origin Policy。那么什么是Same-origin Policy呢?简单地说,在一个浏览器中访问的网站不能访问另一...转载 2018-09-21 11:27:59 · 431 阅读 · 0 评论