摘要:
Bean组件 Bean组件定义在Spring的org.springframework.beans包下:是典型的工厂模式(BeanFactory) 这个包下的所有类主要解决了三件事: Bean的定义: Bean的创建: Bean的赋值及初始化: 例子 使用@Configuration 或@Bean注解 阅读全文
摘要:
1. Spring架构设计 Spring框架是一个分层架构,他包含一系列的功能要素,并被分为大约20个模块 2. 设计理念 Spring是面向Bean的编程(BOP:Bean Oriented Programming),Bean在Spring中才是真正的主角。Bean在Spring中作用就像Obje 阅读全文
摘要:
Kafka消费安全问题 消费者线程安全问题 首先,kafka 的 Java consumer是单线程的设计,准确来说是双线程,从kafka 0.10.1.0版本开始kafkaConsumer变成了用户主线程和心跳线程的双线程设计 所谓用户主线程,就是你启动Consumer应用程序的main方法的 阅读全文
摘要:
消费者分配策略 一个consumer group中有多个consumer,一个topic有多个partition,所以必然会涉及到partition的分配问题,即确定哪个partition由哪个consumer来消费,Kafka提供了3种消费者分区分配策略:RangeAssigor、RoundRob 阅读全文
摘要:
概述 Kafk定义 传统上定义是一个分布式的基于发布/订阅模式的消息队列,主要应用在大数据实时处理场景,现在Kafka已经定义为一个分布式流平台,用于数据通道处理,数据流分析,数据集成和关键任务应用 Kafka历史 Kafka最初是由LinkedIn公司采用Scala语言开发,基于ZooKe 阅读全文
摘要:
一、JVM内存结构 主要讲述JVM内存结构,以及线上简单的调优场景。 垃圾回收算法 如何确定对象已死? 通常,判断一个对象是否被销毁有两种方法: 1.引用计数算法:为对象添加一个引用计数器,每当对象在一个地方被引用,则该计数器加1;每当对象引用失效时,计数器减1。但计数器为0的时候,就表明该对象没有 阅读全文
摘要:
redis数据类型的不同使用场景 在Redis中有这些数据类型。 String、Hash、List、Set、Zset、GEO、Stream、HyperLogLog、BitMap。 排行榜 很多网站都有排行榜应用的,如京东的月度销量榜单、商品按时间的上新排行榜等。Redis提供的有序集合数据类构能实现 阅读全文
摘要:
redis淘汰机制 淘汰策略 1.noeviction(默认策略):默认情况下,Redis 在使用的内存空间超过 maxmemory 值时,并不会淘汰数据,也就是设定的 noeviction 策略。对应到 Redis 缓存,也就是指,一旦缓存被写满了,再有写请求来时,Redis 不再提供服务,而是直 阅读全文
摘要:
秒杀常见问题 超卖 假如备货只有100个,但是最终超卖了200,超卖将影响公司的利益,因此首当其冲的就是解决商品的超卖问题。 高并发 秒杀具有时间短、并发量大的特点,一般公司会以极低的价格来吸引用户,因此参与抢购的用户会非常的多。 短时间内会有大量请求涌进来,后端需要防止并发过高造成缓存击穿或者失效 阅读全文
摘要:
什么是TIDB TiDB 是一个分布式 NewSQL 数据库,它支持水平弹性扩展、ACID 事务、标准 SQL、MySQL 语法和 MySQL 协议,具有数据强一致的高可用特性,是一个不仅适合 OLTP 场景还适合 OLAP 场景的混合数据库。 TiDB 是 PingCAP 公司自主设计、研发的 阅读全文