Kafka基础

Kafka基础1. Kafka基础概念1.1. Kafka是什么Kafka是一个拥有流处理功能的消息引擎系统。主要有五大部分:Producer API,主要用来发送消息。Consumer API,主要用来消费消息。Streams API,Kafka流处理API,这是一个仅适用Kafka的轻量级流处理

#Kafka   #java  

基于Redis实现缓存系统的注意点与一些常见问题

基于Redis实现缓存系统的注意点与一些常见问题1. 从计算机系统的缓存开始在计算机系统中,默认有两种缓存:CPU 里面的末级缓存,即 LLC,用来缓存内存中的数据,避免每次从内存中存取数据;内存中的高速页缓存,即 page cache,用来缓存磁盘中的数据,避免每次从磁盘中存取数据。LLC一般几M

#redis   #java  

基于Redis实现分布式锁与Redis的ACID特性(以秒杀业务为例)

基于Redis实现分布式锁与Redis的ACID特性(以秒杀业务为例)1. 准备Redis实现秒杀业务,主要需要三块的知识储备:秒杀业务流程如何保证原子性(Redis能为我们做哪些ACID保证)Redis实现一个分布式锁下文会围绕这3块进行展开叙述。2. 秒杀业务流程分为三个阶段,秒杀阶段前,中,后

#redis   #java  

Redis的部分使用注意点

Redis的部分使用注意点1. 用SCAN命令代替KEYS等全数据返回命令SCAN命令是渐进式遍历,不会导致Redis的堵塞KEYS,SMEMBERS等命令是全量数据返回,会导致整个Redis实例的堵塞。2. 设置合适的AOF写回策略如果对数据持久化不敏感,可以不开启AOF。如果开启,就要设置合适的

#redis   #java  

Spring应用上下文生命周期

Spring应用上下文生命周期1. 前言本文基于Spring-framework.5.2.2.RELEASE版本进行论述,参考了小马哥在极客时间的课程(文章末尾有对应二维码)。2. Spring应用上下文刷新阶段刷新阶段主要是围绕 AbstractApplicationContext#refresh

#Spring   #java  

Redis基础相关

Redis基础1. 设计一个键值数据库SimpleKV1.1. 需要存哪些数据不同键值数据库支持的 key 类型一般差异不大,而 value 类型则有较大差别。我们在对键值数据库进行选型时,一个重要的考虑因素是它支持的 value 类型。例如,Memcached 支持的 value 类型仅为 Str

#redis   #java  

Spring Bean的生命周期(一图流+详细说明)

Spring Bean的生命周期1. 前言Spring是一个IOC(Inversion of Control,控制反转)容器框架,拥有DI(Dependency Injection,依赖注入),DL(Dependency Lookup,依赖查找 等功能。认为一个IOC框架最基本要有以下功能:配置解析

#Spring   #java  

HashMap源码的细节与启发

HashMap源码的细节与启发1.前言这些天心血来潮想认认真真过一遍JCF的源码实现,在阅读到HashMap的时候发现自己之前还是太肤浅,很多地方没能理解JDK作者的巧思,因此想记录下来自己学习过程中的收获。在正式开始之前先吹一波美团技术团队,之前看并发编程的时候也是搜到不少美团技术团队的文章,写的

#java  

分布式系统的一致性理论(CAP和BASE)

一致性模型强一致性当更新操作完成之后,任何多个后续进程或者线程的访问都会返回最新的更新过的值,直到这个数据被其他数据更新为止。但是这种实现对性能影响较大,因为这意味着,只要上次的操作没有处理完,就不能让用户读取数据。弱一致性系统并不保证进程或者线程的访问都会返回最新更新过的值。系统在数据写入成功之后

#分布式   #java