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

邢成的架构笔记

专栏作者
50
文章
89407
阅读量
17
订阅数
Redis使用pipeLine批量获取数据加快接口响应速度
Pipeling机制是怎样的呢: Redis Client->>Redis Server: 发送第1个命令(缓存在Redis Client,未即时发送) Redis Client->>Redis Server: 发送第2个命令(缓存在Redis Client,未即时发送) Redis Client->>Redis Server: 发送第n个命令(缓存在Redis Client,未即时发送) Redis Client->>Redis Server: 发送累积的命令 Redis Server->>Redis Client: 响应第1、2、n个命令
chinotan
2022-01-04
7200
what???领导让我实现一个redis Zset多维度排行榜
一:背景 实现一个多维度的排行榜(已自然周为一个周期),考虑得分和时间维度。当得分一样时,获得此排名越早的排名越靠前 需要监听原始数据,这里分为三个动作:收到、已读、通过。根据三个动作进行各项数据指标的统计 用户当前自然周收到、查看、标记的数量 根据三个动作等进行多条件过滤,准备出各个条件下的文案提示 二:方案设计 针对自然周的定义,可以参考雪花算法的实现。通过设计一个固定不可变基准开始日期A,来将某个日期B化为距离基准日A的周数X来作为周期数来表示 针对排行榜的实现,我们可以采用Redis的ZSe
chinotan
2022-01-04
1.8K0
缓存穿透问题分析压测
缓存穿透,是指查询一个数据库一定不存在的数据。正常的使用缓存流程大致是,数据查询先进行缓存查询,如果key不存在或者key已经过期,再对数据库进行查询,并把查询到的对象,放进缓存。如果数据库查询对象为空,则不放进缓存。
chinotan
2022-01-04
5480
spring_cloud config 配置中心及利用Github实现自动化热加载配置
spring_cloud有着强大的生态支持,其自带的分布式配置中心可以有效解决分布式环境中配置不统一的问题,提供一个中心化的配置中心。并且依靠其spring_bus(rabbitMq提供订阅)和github或者gitlab自带的webhook(钩子函数)可以实现将修改好后的配置push到远程git地址后,通过访问配置服务器的endPoints接口地址,便可将配置中心的变化推送到各个集群服务器中。
chinotan
2022-01-04
4260
rabbitMQ实现可靠消息投递
RabbitMQ消息的可靠性主要包括两方面,一方面是通过实现消费的重试机制(通过@Retryable来实现重试,可以设置重试次数和重试频率,但是要保证幂等性),另一方面就是实现消息生产者的可靠投递(注意消费单幂等),下面主要讲下生产者实现的可靠消息投递。
chinotan
2022-01-04
4950
线程池参数原理及应用
Java创建一个线程很方便,只需new Thread()就可以, 但是当有多个任务需要进行进行处理时,频繁的进行创建和启用线程同样需要系统开销,也不利于管理,于是同mysql的连接池一样,自然有对线程的管理池即线程池。
chinotan
2022-01-04
3720
redis实现简单延时队列
继之前用rabbitMQ实现延时队列,Redis由于其自身的Zset数据结构,也同样可以实现延时的操作
chinotan
2022-01-04
8190
不会状态机?不知道状态模式?不会利用它来减少if else并解耦?来看看这篇文章!!!
状态模式大家可能初听会很陌生,这种模式有什么用?我就是个CRUD BOY,面对不同的状态,我一个状态一个状态的判断,if else、if else...... 不断的来写不同的逻辑它不香吗?
chinotan
2022-01-04
4360
Java8并行http请求加快访问速度
1.通常我们在获取到一个list列表后需要一个挨着一个的进行遍历处理数据,如果每次处理都需要长时间操作,那整个流程下来时间就是每一次处理时间的总和。
chinotan
2022-01-04
9730
rabbitMq实现延时队列
rabbitMq是受欢迎的消息中间件之一,相比其他的消息中间件,具有高并发的特性(天生具备高并发高可用的erlang语言编写),除此之外,还可以持久化,保证消息不易丢失,高可用,实现集群部署,提供灵活的路由和可靠性,可视化管理等等的优点。
chinotan
2022-01-04
1.4K0
高并发下高效获取时间戳
Java获取当前时间戳一般是通过System.currentTimeMillis()来获取。这是一个native方法,用于获取当前时间与1970年1月1日0点之间的差,虽然返回值的时间单位是毫秒,但该值的粒度取决于基础操作系统
chinotan
2022-01-04
2.3K0
Undertow容器在Springboot中如何自定义修改文件名
发现server.handlers.accesslog下有相关的accesslog的处理的类
chinotan
2022-01-04
1.5K0
Mockito模拟进行单元测试
MOCK意思是模拟的意思,主要被用来进行数据的人工组织,不会真正地调用第三方服务器,类似redis,mysql等都不会调用,也不用关心数据底层是如何进行处理的,我们要做的只是将本单元的逻辑进行单元测试,验证数据的逻辑处理性,而其中mock较好的框架就是Mockito。
chinotan
2022-01-04
6.8K0
消息中间件的四连炮!
大家平时也有用到一些消息中间件(MQ),但是对其理解可能仅停留在会使用API能实现生产消息、消费消息就完事了。
chinotan
2022-01-04
2800
🔥不会状态机?不知道状态模式?不会利用它来减少if else?来看看这篇文章!!!
状态模式大家可能初听会很陌生,这种模式有什么用?我就是个CRUD BOY,面对不同的状态,我一个状态一个状态的判断,if else、if else...... 不断的来写不同的逻辑它不香吗?
chinotan
2020-05-11
1.3K0
Mockito模拟进行单元测试
    MOCK意思是模拟的意思,主要被用来进行数据的人工组织,不会真正地调用第三方服务器,类似redis,mysql等都不会调用,也不用关心数据底层是如何进行处理的,我们要做的只是将本单元的逻辑进行单元测试,验证数据的逻辑处理性,而其中mock较好的框架就是Mockito。
chinotan
2019-07-15
9.2K0
消息中间件的四连炮!
大家平时也有用到一些消息中间件(MQ),但是对其理解可能仅停留在会使用API能实现生产消息、消费消息就完事了。
chinotan
2019-07-09
5250
如何保证缓存与数据库的双写一致性?
只要用缓存,就可能会涉及到缓存与数据库双存储双写,你只要是双写,就一定会有数据一致性的问题
chinotan
2019-07-02
3.2K0
TransmittableThreadLocal在使用线程池等会缓存线程的组件情况下传递ThreadLocal
TransmittableThreadLocal 是Alibaba开源的、用于解决 “在使用线程池等会缓存线程的组件情况下传递ThreadLocal” 问题的 InheritableThreadLocal 扩展。若希望 TransmittableThreadLocal 在线程池与主线程间传递,需配合 TtlRunnable 和 TtlCallable 使用。
chinotan
2019-06-16
1.5K0
Elasticsearch如何做到亿级数据查询毫秒级返回
这个问题说白了,就是看你有没有实际用过 ES,因为啥?其实 ES 性能并没有你想象中那么好的。
chinotan
2019-06-16
6360
点击加载更多
社区活动
RAG七天入门训练营
鹅厂大牛手把手带你上手实战
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档