资料收集整理

Guide : 
小林coding

https://bugstack.cn/

基础-进阶-原理-总结-细节

1、网络

(1)图解网络介绍 | 小林coding

(2)

数字签名 及 数字证书 原理_哔哩哔哩_bilibili

http与https的区别我真的知道吗 - 掘金

(3)TCP三次握手和四次挥手

(4)tcp 如何保证数据传输可靠性:

4.2 TCP 重传、滑动窗口、流量控制、拥塞控制 | 小林coding

网络基础:TCP协议-如何保证传输可靠性_Chenxi13-CSDN博客_tcp如何保证数据传输的可靠性

TCP如何保证传输的可靠性?_数据传输的可靠性_Sofiax的博客-CSDN博客

(5)TCP缓存_菜瓜_牛顿的博客-CSDN博客_tcp缓存

(6)Socket缓冲区_summer_west_fish的博客-CSDN博客_socket缓冲区

(7)HTTP与TCP长连接区别及基本原理_tcp长连接和http长连接_勇敢小鱼的博客-CSDN博客

(8)Socket发送数据的处理过程主要包括以下步骤:

  1. tcp建立连接
  2. 将数据从用户应用空间Buffer复制到内核空间的Socket Buffer中。
  3. 在Kernel空间中添加数据包头,进行数据封装。
  4. 通过一系列多层网络协议(如TCP、UDP、IP等)的数据包处理工作,数据被Push到NIC(网络接口控制器,也叫网卡)中的Buffer进行网络传输。
  5. 消息接收方从远程机器接收数据包后,将数据包从NIC Buffer中复制数据到Socket Buffer。当NIC接收到数据包后,它会将数据包放入自己的缓冲区中,然后通知内核有数据到达。内核在收到通知后,会经过一系列的多层网络协议进行数据包的解析工作。解析后的数据被复制到Socket Buffer中,这个过程被称为“数据接收”。
  6. epoll会监听Socket Buffer的状态,一旦有数据可读,就会将对应的socket描述符加入可读队列,并通知应用程序进行读取。应用程序在读取数据时,可以直接从Socket Buffer中读取,而不需要再次从NIC Buffer中复制数据
  7. 进行系统上下文切换,调用用户应用程序。

 2、操作系统

(1)图解系统介绍 | 小林coding

(2)操作系统总结(上) | JavaGuide

(3)操作系统总结(下) | JavaGuide

(4)select、poll、epoll:

9.2 I/O 多路复用:select/poll/epoll | 小林coding

IO多路复用的三种机制Select,Poll,Epoll - 简书

如果这篇文章说不清epoll的本质,那就过来掐死我吧! (1) - 知乎

NIO效率高的原理之零拷贝与直接内存映射

Java NIO学习笔记四(零拷贝详解)_拿笔小星Z的博客-CSDN博客

(5)虚拟内存:虚拟内存 - 简书

操作系统:详解物理内存与虚拟内存,用户空间与内核态空间_操作系统 用户空间_好奇的7号的博客-CSDN博客

(6)缓存--伪共享问题_缓存伪共享_zpv2jdfc的博客-CSDN博客

3、mysql

(1)MySQL架构原理

(2)图解MySQL介绍 | 小林coding:基础、索引、事务、日志、锁

explain 字段解析

(3)MySQL总结 | JavaGuide:总结、优化建议、索引、日志、MVCC

(4)MVCC:

(5)日志:

浅析MySQL事务中的redo与undo - 简书

MySQL 日志:undo log、redo log、binlog 有什么用? | 小林coding

(6)隔离级别:

为什么mysql默认隔离级别设置为RR(可重复读)_乌梅子酱~的博客-CSDN博客

为啥mysql的默认隔离级别是RR? - 简书

MySQL到底在RR层面解决幻读了吗?_编了个程的博客-CSDN博客

(7)mysql锁:Mysql锁详解(行锁、表锁、意向锁、Gap锁、插入意向锁)_Hello,C++!的博客-CSDN博客_意向锁

MySQL锁详解_邋遢的流浪剑客的博客-CSDN博客_mysql锁

MySQL锁详解_csdcit的博客-CSDN博客_mysql锁

InnoDB的行锁,原来为你做了这么多!

(8) mysql 死锁产生原因
mysql 死锁分析_夕阳下的家乡的博客-CSDN博客_mysql死锁分析

MySQL——并发insert on duplicate key update遇见死锁 - 简书

这六个 MySQL 死锁案例,能让你理解死锁的原因_Java小果的博客-CSDN博客_数据库死锁例子

mysql insert锁机制_和代码去流浪的博客-CSDN博客_insert 行锁

(9)mysql 的null值如何存储&行格式 

(10)mysql的LRU:https://www.jianshu.com/p/10bd165a6a48

(11)mysql性能优化:一文搞定MySQL性能调优 - 简书

(12)对比redis、mysql、es、hive、hbase:https://blog.csdn.net/a790439710/article/details/103478694

(13)MySQL主从延迟解决方案 - 墨天轮

Mysql主从复制的三种同步方式和半同步复制配置(在你之后,人人都像你,人人都不是你。)_mysql 主从同步复制_Seven 7 Chihiro的博客-CSDN博客

(14)临时表

MYSQL——临时表的相关原理_51CTO博客_mysql 临时表

select id%10 as m, count(*) as c from t1 group by m order by null;

只分组不排序,tmp_table_size 控制内存临时表大小,如果超出,使用磁盘临时表,

union 使用临时表,要去重,临时表会创建唯一索引

generated column 机制,用来实现列数据的关联更新

SQL_BIG_RESULT 数据量大,走磁盘临时表

MySQL在什么情况下会使用到临时表(mysql在什么情况下会使用到临时表中)_MySQL_海南梓涵恤

(15)join算法

拒绝慢查询!深入探究MySQL Join底层原理和实用优化技巧

数据库基础(七)Mysql Join算法原理 - 知乎

(16)其他

【内存分配器】glibc、jemalloc、tcmalloc 几种内存分配器的优缺点 - 简书

MySQL进程内存一直在涨,怎么办?

MySQL 子查询_mysql子查询_梁辰兴的博客-CSDN博客

Redis 缓存和 MySQL 数据保持一致性的方法有哪些? - 知乎

4、redis

(1)基础:  小林coding-redis 

(2)redis常见数据类型和底层设计:

Redis 常见数据类型和应用场景 | 小林coding

面试杀手锏:Redis源码之SDS

Redis - ziplist (压缩列表) 图文详解_mooddance的博客-CSDN博客

Redis源码剖析和注释(七)--- 快速列表(quicklist)_e-quick-cclist_men_wen的博客-CSDN博客

Redis - listpack(紧凑列表)图文详解_redis listpack_mooddance的博客-CSDN博客

Redis为什么使用跳表

Sentinel vs Hystrix 限流对比,到底怎么选?_公众号:方志朋的博客-CSDN博客

阿里Sentinel原理解析 - 知乎

(3)缓存那些事:缓存那些事 - 美团技术团队

(5)Redis 16 个常见使用场景_Young丶的博客-CSDN博客_redis使用场景

(6)如何快速定位 Redis 热 key_架构_韩亮_InfoQ精选文章

(7)京东毫秒级热key探测框架设计与实践,已实战于618大促

(8)Zset榜单多维度排序

(9)数据库和缓存如何保证一致性? | 小林coding

(10)Redis 常见面试题 | 小林coding

(11)阿里三面:说一说你在上家公司都用过哪些限流方案? - 知乎

关于Redis分布式锁的8个问题_redis分布式锁可能出现的问题_coreyhsu2020的博客-CSDN博客

架构:集群、单机限流策略。-蒲公英云

基于Redis的限流实现方案_redis限流实现方式_肥波Plus的博客-CSDN博客

限流算法(计数器、滑动时间窗口、漏斗、令牌)原理以及代码实现_java时间窗口计数器-CSDN博客

6种限流实现,附代码![通俗易懂] - 知乎

基于 Redis 实现分布式限流_redis实现分布式限流_格林希尔的博客-CSDN博客

5种限流算法,7种限流方式,挡住突发流量? - 知乎

【解决令牌桶欠账问题】逐行拆解Guava限流器RateLimiter - 知乎

(12)集群方案

Redis—主从配置_redis主从模式配置_xiayping的博客-CSDN博客

Redis常见集群方案_redis集群方案有哪些_CoLiuRs的博客-CSDN博客

(13)java客户端

Jedis、RedisTemplate、Redisson 详解和实例_redisson和redistemplate_Doker 多克 技术人的数码品牌的博客-CSDN博客

最强分布式锁工具:Redisson

Redis中的几种java客户端对比-CSDN博客

Sentinel面试题_sentinel 的面试题_村上春树老sp的博客-CSDN博客

Redis中的Reactor 模型的工作机制 - 知乎

Redis实现高效的秒杀活动设计(redis设计秒杀活动)-数据库运维技术服务

5、clickhouse

(1)OLAP和OLTP_olap oltp_爱吃鱼的小乖乖的博客-CSDN博客

(2)什么是ClickHouse? | ClickHouse Docs

(3)有必要了解下ClickHouse的索引原理 - 知乎【重要】

(3)ClickHouse基本原理_clickhouse原理_知知之之的博客-CSDN博客

(4)主流开源OLAP对比分析-CSDN博客

(5)战斗民族开源神器。ClickHouse为什么能够征服各个大厂

(6)行式存储和列式存储的区别_正在沿着IT树往上爬的博客-CSDN博客

(7)mergeTree表引擎

(8)LSM 算法的原理(通俗,详细)_大叶子不小的博客-CSDN博客

Clickhouse数据实时去重_clickhouse 去重-CSDN博客

 6、kafka

(1)架构基础:

Kafka详解(包括kafka集群搭建)_毫无感情的dj的博客-CSDN博客

Kafka 架构原理

(2)发送端:

发送端内存池

kafka 内存管理 BufferPool - 简书

(3)broker:

日志设计

日志优化-高性能相关

(4)消费端

图解Kafka消费者客户端分区分配策略_kafka分区消费策略_石臻臻的杂货铺的博客-CSDN博客

十一、kafka消费者之joinGroup_kafka (re-)joining group_小飞侠fly的博客-CSDN博客

Kafka08——kafka的事务_kafka事务_如不來的博客-CSDN博客

(5)高性能【发送端、服务端、消费端】:

Apache Kafka内核深度剖析_数据库_Thoughtworks洞见_InfoQ精选文章

(6)高可用 or 数据不丢失

kafka 如何保证不重复消费又不丢失数据? - 知乎

(7)队列对比:

消息队列Kafka、RocketMQ、RabbitMQ的优劣势比较 - 知乎

KAFKA对比

(8)其他资料补充

     raft算法:Raft

     kafka3.0弃用zk:https://www.jianshu.com/p/94527f0f57f1?ivk_sa=1024320u

RocketMQ 架构设计和设计原理_rockermq 的架构图以及原理_小虚竹的博客-CSDN博客

RocketMQ与Kafka对比(18项差异)-CSDN博客

弥补延时消息的不足,RocketMQ 基于时间轮算法实现了定时消息!

7、es

(1)ES和ch对比区别

(2) mysql-to-es

Elasticsearch高频面试题_es面试题_在路上_JD的博客-CSDN博客

1、jvm

(1)JVM-强引用、软引用、弱引用、虚引用

(2)Guide:内存模型&voliate&sync&lock

(3)Guide:AQS&并发组件

(4)JVM常用性能调优工具详解1_jhat' 不是内部命令-CSDN博客

JVM性能调优工具2之jcmd详解(覆盖全网最全的jcmd命令与说明文档)-CSDN博客

实战总结|记一次 glibc 导致的堆外内存泄露 - 知乎https://blog.csdn.net/leesinbad/article/details/129135108实战总结|记一次 glibc 导致的堆外内存泄露 - 知乎

JDK监控和故障处理工具总结 | JavaGuide(Java面试 + 学习指南)

7 种 JVM 垃圾收集器详解_jvm垃圾收集器-CSDN博客

Java try/catch的实现原理与性能-CSDN博客

2、java

(1)synchronized 底层原理:synchronize底层实现原理以及相关的优化_淡定一生2333的博客-CSDN博客_synchronize底层

深入分析Synchronized原理(阿里面试题) - aspirant - 博客园

Java 中的偏向锁、轻量级锁和重量级锁

涨姿势啦!Java程序员装X必备词汇之Mark Word!_庆哥Java的博客-CSDN博客_java mark word

从Mark Word中看Java锁的升级_mob604756f16c66的技术博客_51CTO博客
(2)synchronized:synchronized底层原理(二) - 简书

Synchronized和Lock的区别 - 简书

(3)hashmap死循环:老生常谈,HashMap的死循环 - 简书

(4)java内存模型:深入理解Java内存模型 - 简书

java 方法区 元空间_JVM--方法区(元空间、永久代)_Lee General的博客-CSDN博客

https://www.cnblogs.com/mikechenshare/p/16562589.html

(5)线程池:Guide:Java 线程池详解

JDK8线程池-ThreadPoolExecutor动态调整corePoolSize与maximumPoolSize_setcorepoolsize_fenglllle的博客-CSDN博客

如何设置线程池参数?美团给出了一个让面试官虎躯一震的回答。

(6)线程学习(17)park,unpark_park unpark_前进人生的博客-CSDN博客

(7)高性能无锁并发框架Disruptor,太强了_disruptor框架为什么不流行_我有一头小花驴的博客-CSDN博客

(8)亲缘性线程池,这是什么鬼?

(9)高并发技巧-流量聚合和高并发写入处理技巧_buffertrigger_π大星的日常的博客-CSDN博客

【数据结构与算法】7、队列(Queue)的实现【用栈实现队列】_java用栈实现队列_JavaLearnerZGQ的博客-CSDN博客

(10)本地缓存框架对比_喝醉的咕咕鸟的博客-CSDN博客

https://blog.csdn.net/java_cpp_/article/details/131510809

 

25000 字详解 23 种设计模式(多图 + 代码) - 知乎

23种设计模式详解与示例代码(详解附DEMO)-CSDN博客

3、spring

(1)bean加载过程:

bean的构造方法-----》属性赋值-----》BeanPostProcessor的postProcessBeforeInitialization方法-----》@PostConstruct注解修饰的方法-----》InitializingBean接口afterPropertiesSet方法---》Init-method方法----》BeanPostProcessor的postProcessAfterInitialization方法。
 

(2)如何解决循环依赖:spring中的循环依赖解决方案 - 简书

spring 三级缓存必要性,结论在最下方

关于Spring中一级缓存、二级缓存和三级缓存的那些事_java_脚本之家

(3)事务不生效场景:【小家java】Spring事务不生效的原因大解读_Java方向盘-CSDN博客_事务不生效

(4)Spring核心思想&bean周期&注解区别

面试被问了几百遍的 IoC 和 AOP ,还在傻傻搞不清楚?

Spring 框架之 AOP 原理深度剖析_进阶的架构师的博客-CSDN博客

比较Spring AOP和AspectJ_aspectj和springaop区别-CSDN博客

4、mybatis

【MyBatis】执行原理(三):获取代理对象(MapperProxy) 源码分析_mapperproxy原理_槑!的博客-CSDN博客

10、算法

1、接雨水:【Leetcode每日打卡】接雨水问题的超完全手册 

2、跳跃问题:力扣力扣

3、加密算法比较

4、链表【特别注意 遍历、递归、头插法】:

反转​​​​​,指定位置反转K个一组反转

删除链表重复元素

5、数组:

(1)最大子数组和  【练手】

(2)和为 K 的子数组【取巧 map.put(0,1)】

(3)最长连续序列 【左右开工】

(4)最长有效括号【取巧 stack.push(-1) 和左右接雨水一样的套路】

(5)在排序数组中查找元素的第一个和最后一个位置【左右二分判断】

11、网关

(1)为什么微服务一定要有网关:为什么微服务一定要有网关? | 芋道源码 —— 纯源码解析博客
(2)微服务网管是什么鬼?:大公司为什么都有API网关?聊聊API网关的作用 | 芋道源码 —— 纯源码解析博客

(3)一文带你api网关从入门到放弃:一文带你 API 网关从入门到放弃 | 芋道源码 —— 纯源码解析博客
(4)服务编排:如何通过网关做服务编排? - 隔壁王书 - 博客园

12、定时任务

分布式任务调度 - 简书

java定时任务框架quartz、elastic-job和xxl-job的分析对比

xxl-job的使用及简述原理_xxl-job原理_米二的博客-CSDN博客

XXL-JOB原理--定时任务框架简介(一)_xxljob_军伟@的博客-CSDN博客

Java 定时任务详解 | JavaGuide(Java面试 + 学习指南)

11、思考

(1)微服务:文章正在审核中... - 简书

(2)技术短板

(3)服务稳定性可用性保证
(4)服务架构演进:阿里巴巴为什么能抗住90秒100亿?看完这篇你就明白了! - 简书

(5)soa和微服务架构的区别:SOA架构和微服务架构的区别_吾生也有涯,而学也无涯,以有涯随无涯-CSDN博客_soa架构
(6)ddd
DDD 模式从天书到实践 - 知乎

微服务与RPC思想总结 - 简书

https://www.xjx100.cn/news/105240.html

12、杂项 :自己制作https/ssl证书for nginx/lighttpd/apache(chrome不会报错)

架构图如何画

13、系统设计

(1)秒杀:面试必考:秒杀系统要如何设计? - 知乎

(2)feed流:

别瞎搞了!微博、知乎就是这么设计Feed流系统的~_hello-java-maker的博客-CSDN博客

Feed流系统设计-总纲-阿里云开发者社区

(3)大文件上传:

JELLY DESIGN | 京东零售官方设计共享平台

GitHub - niumoo/down-bit: 一个 Java 实现的,多线程,断点续传下载器

(4)定时任务设计

(5)内存文件管理

英文系统设计:https://github.com/checkcheckzz/system-design-interview

常见的规则引擎(Drools,RuleBook,Easy Rules等)对比_规则引擎对比_风情客家__的博客-CSDN博客

规则引擎基本原理及应用架构简介 - 知乎

mvel groovy Aviator

Java 各大引擎 - 忍住的个人空间 - OSCHINA - 中文开源技术交流社区

14、架构设计

聊聊通用的架构设计 - 知乎

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值