【技术总结大全】【用来快速查询的文章】技术总结大全

目录

 

 

JavaCore

多线程

对象的内存布局与Synchronized原理

线程的内存模型

Volatile底层实现原理

Netty

Cas & Atomic & LongAdder

Aqs

ReentrantLock

读写锁

【高并发】Java并发性能优化-双缓冲机制,缓冲分片机制 + 分段加锁机制

ConcurrentHashMap

【嗅探底层】你知道Synchronized作用是同步加锁,可你知道它在JVM中是如何实现的吗?

强软弱虚引用

JVM

架构设计

【高并发】内存双缓冲 + 批量刷磁盘

【高并发】如何优化你的缓存架构?

【高并发】高并发数据库架构

【高并发】如何设计其高并发架构?

中间件

【高并发】如何保持消息发布者不丢失数据

【原理】Reactor多路复用

【原理】select、poll和epoll

为什么要引入消息中间件?

引入消息中间件有什么缺点?

消息中间件在你们项目里是如何落地的?

消息中间件集群崩溃,如何保证百万生产数据不丢失?

如何保证消息中间件全链路数据100%不丢失(1)

如何保证消息中间件全链路数据100%不丢失(2)ack机制

消息中间件如何实现消费吞吐量的百倍优化?解决消息积压 prefetch count

消息中间件该如何实现高可用架构?

消息中间件如何实现每秒几十万的高并发写入? Kafka 的一些架构设计原理,零拷贝技术,页缓存技术,磁盘顺序写

写入消息中间件的数据,如何保证不丢失?写入Kafka的消息如何不丢失

如果让你设计一个消息中间件,如何将其网络通信性能优化10倍以上?batch机制 + request 机制

简历写了会Kafka,面试官90%会让你讲讲acks参数对消息持久化的影响

不了解这些“高级货”,活该你面试当炮灰。。。CopyOnWrite

Kafka如何通过精妙的架构设计优化JVM GC问题?内存缓冲池的机制,不回收的堆外内存

面试突击

分布式消息队列

【面试题】 为什么使用消息队列?消息队列有什么优点和缺点?

Kafka、ActiveMQ、RabbitMQ、RocketMQ 都有什么优点和缺点?

【面试题】 如何保证消息队列的高可用?

【面试题】 如何保证消息不被重复消费?或者说,如何保证消息消费的幂等性?

【面试题】 如何保证消息的可靠性传输?或者说,如何处理消息丢失的问题?

【面试题】 - 如何保证消息的顺序性?

【面试题】 - 如何解决消息队列的延时以及过期失效问题?消息队列满了以后该怎么处理?有几百万消息持续积压几小时,说说怎么解决?

【面试题】 - 如果让你写一个消息队列,该如何进行架构设计?说一下你的思路。

搜索引擎

lucene 和 es 的前世今生

【面试题】 - es 的分布式架构原理能说一下么(es 是如何实现分布式的啊)?

【面试题】 - es 写入数据的工作原理是什么啊?es 查询数据的工作原理是什么啊?底层的 lucene 介绍一下呗?倒排索引了解吗?

【面试题】 - es 在数据量很大的情况下(数十亿级别)如何提高查询效率啊?

【面试题】 - es 生产集群的部署架构是什么?每个索引的数据量大概有多少?每个索引大概有多少个分片?

分布式缓存

【面试题】 - 项目中缓存是如何使用的?为什么要用缓存?缓存使用不当会造成什么后果?

【面试题】 - redis 和 memcached 有什么区别?redis 的线程模型是什么?为什么 redis 单线程却能支撑高并发?

【面试题】 - redis 都有哪些数据类型?分别在哪些场景下使用比较合适?

【面试题】 - redis 的过期策略都有哪些?内存淘汰机制都有哪些?手写一下 LRU 代码实现?

【面试题】 如何保证 redis 的高并发和高可用?redis 的主从复制原理能介绍一下么?redis 的哨兵原理能介绍一下么?

Redis 主从架构

Redis 哨兵集群实现高可用

【面试题】 - redis 的持久化有哪几种方式?不同的持久化机制都有什么优缺点?持久化机制具体底层是如何实现的?

【面试题】 - redis 集群模式的工作原理能说一下么?在集群模式下,redis 的 key 是如何寻址的?分布式寻址都有哪些算法?了解一致性 hash 算法吗?

【面试题】 了解什么是 redis 的雪崩、穿透和击穿?redis 崩溃之后会怎么样?系统该如何应对这种情况?如何处理 redis 的穿透?

【面试题】 - 如何保证缓存与数据库的双写一致性?

【面试题】 - redis 的并发竞争问题是什么?如何解决这个问题?了解 redis 事务的 CAS 方案吗?

【面试题】 - 生产环境中的 redis 是怎么部署的?

分库分表

【面试题】 - 为什么要分库分表(设计高并发系统的时候,数据库层面该如何设计)?用过哪些分库分表中间件?不同的分库分表中间件都有什么优点和缺点?你们具体是如何对数据库如何进行垂直拆分或水平拆分的?

【面试题】 - 现在有一个未分库分表的系统,未来要分库分表,如何设计才可以让系统从未分库分表动态切换到分库分表上?

【面试题】 - 如何设计可以动态扩容缩容的分库分表方案?

【面试题】 - 分库分表之后,id 主键如何处理?

【面试题】 - 你们有没有做 MySQL 读写分离?如何实现 MySQL 的读写分离?MySQL 主从复制原理的是啥?如何解决 MySQL 主从同步的延时问题?

elasticsearch

微服务

Spring Cloud底层原理

微服务注册中心如何承载大型系统的千万级访问?Eureka核心原理,多级缓存机制

Spring Cloud 参数优化实战

微服务架构如何保障双11狂欢下的99.99%高可用 Hystrix参数设置 线程池配置

注册中心不开源了怎么办?Eureka不好用了

如何优化Spring Cloud微服务注册中心架构?Consul架构原理

分布式

TCC分布式事务的实现原理!

最终一致性分布式事务如何保障实际生产中99.99%高可用?分布式事务的高可用

 Redis 分布式锁的实现原理

分布式锁高并发优化实践

ZooKeeper分布式锁的实现原理

分布式系统容错架构设计

分布式搜索引擎的架构原理 ElasticSearch

分布式系统的唯一id生成算法你了解吗?snowflake算法

什么是分布式计算系统!

到底啥是分布式系统开发经验?

线上经验总结

扎心!线上服务宕机时,如何保证数据100%不丢失?

一次JVM FullGC的背后,竟隐藏着惊心动魄的线上生产事故!Quorum机制

【来自一线的血泪总结】你的系统上线时是否踩过这些坑?

老司机生产实践经验:线上系统的 JVM 内存是越大越好吗?

操作系统

IO流

系统IO与网络IO概要

算法

Quorum算法。数据不丢失算法

大数据技术栈

Hadoop

兄弟,用大白话告诉你小白都能看懂的Hadoop架构原理

Hadoop如何给文件上锁-契约机制

大规模集群下 Hadoop NameNode 如何承载每秒上千次的高并发访问

Hadoop如何将TB级大文件的上传性能优化上百倍?

看 Hadoop 底层算法如何优雅的将大规模集群性能提升 10 倍以上?【同上】

Spark

Spark如何处理数据倾斜

Spark广播变量【优化】

Spark性能优化原则【优化】【美团技术团队】

机器学习

Word2vec

N-gram

BERT

GPT2.0

PageRank

TextRank

TF-IDF

LFM

ALS

布隆过滤器

领导选举

倒排索引

评价推荐模型的好坏

超神文档

集群搭建

Standalone YarnHA

subtask划分及任务调度

协议

Raft 强一致协议

推荐系统

MySql

优化

MySQL底层实现机制

Mysql insert原理

Mysql 事务原理

组合索引原理

索引-部门技术分享

算法

迪杰斯特拉算法【最短路径算法之一】

加强堆

亿级流量架构

【架构演进】亿级流量系统架构之如何支撑百亿级数据的存储与计算

【架构演进】亿级流量系统架构之如何设计高容错分布式计算系统

【架构演进】亿级流量系统架构之如何设计承载百亿流量的高性能架构

【架构演进】亿级流量系统架构之如何设计每秒十万查询的高并发架构

【架构演进】亿级流量系统架构之如何设计全链路99.99%高可用架构

如何在上万并发场景下设计可扩展架构(上)?

亿级流量系统架构之如何在上万并发场景下设计可扩展架构(中)?

亿级流量系统架构之如何在上万并发场景下设计可扩展架构(下)?

亿级流量架构第二弹:你的系统真的无懈可击吗?

亿级流量系统架构之如何保证百亿流量下的数据一致性(上)

亿级流量系统架构之如何保证百亿流量下的数据一致性(中)?

亿级流量系统架构之如何保证百亿流量下的数据一致性(下)?

亿级流量电商详情页系统实战

面试官

互联网公司的面试官是如何360°无死角考察候选人的?(上篇)

互联网公司的面试官是如何360°无死角考察候选人的?(下篇)

面试经验

记一位朋友斩获 BAT 技术专家 Offer 的面试经历

职业发展

英语差的程序员如何才能无障碍阅读官方文档?

中小公司的Java工程师应该如何逆袭冲进BAT?

【码农打怪升级之路】行走江湖,你需要解锁哪些技能包?

三四十岁的大龄程序员,应该如何保持自己的职场竞争力?

如何阅读一个开源项目的源码?


 

JavaCore

 

多线程

对象的内存布局与Synchronized原理

https://www.cnblogs.com/aobing/p/12906927.html

https://www.cnblogs.com/jiangyang/p/11422732.html

https://blog.csdn.net/qq_26222859/article/details/53786134

线程的内存模型

https://blog.csdn.net/wenxindiaolong061/article/details/79744513

Volatile底层实现原理

https://blog.csdn.net/qq_38905818/article/details/105831893

https://zhuanlan.zhihu.com/p/133851347

https://shishan100.gitee.io/docs/#/./docs/page/page1【石衫笔记】

Netty

https://www.sohu.com/a/272879207_463994

Cas & Atomic & LongAdder

https://shishan100.gitee.io/docs/#/./docs/page/page2

Aqs

https://shishan100.gitee.io/docs/#/./docs/page/page3

ReentrantLock

https://shishan100.gitee.io/docs/#/./docs/page/page4

读写锁

https://shishan100.gitee.io/docs/#/./docs/page/page5

【高并发】Java并发性能优化-双缓冲机制,缓冲分片机制 + 分段加锁机制

https://shishan100.gitee.io/docs/#/./docs/page/page8

ConcurrentHashMap

https://blog.csdn.net/weixin_43185598/article/details/87938882

【嗅探底层】你知道Synchronized作用是同步加锁,可你知道它在JVM中是如何实现的吗?

为什么要自旋,重量级锁

https://shishan100.gitee.io/docs/#/./docs/jvm/page1

强软弱虚引用

JVM

 

架构设计

【高并发】内存双缓冲 + 批量刷磁盘

https://shishan100.gitee.io/docs/#/./docs/page/page6

【高并发】如何优化你的缓存架构?

https://shishan100.gitee.io/docs/#/./docs/page/page9

【高并发】高并发数据库架构

https://shishan100.gitee.io/docs/#/./docs/page/page10

【高并发】如何设计其高并发架构?

https://shishan100.gitee.io/docs/#/./docs/page/page11

中间件

【高并发】如何保持消息发布者不丢失数据

https://shishan100.gitee.io/docs/#/./docs/page/page7

【原理】Reactor多路复用

https://shishan100.gitee.io/docs/#/./docs/page/page11

【原理】select、poll和epoll

https://www.cnblogs.com/natian-ws/p/10785649.html

https://blog.csdn.net/davidsguo008/article/details/73556811

https://www.cnblogs.com/anker/p/3265058.html【精】

深度理解select、poll和epoll

https://blog.csdn.net/davidsguo008/article/details/73556811

为什么要引入消息中间件?

https://shishan100.gitee.io/docs/#/./docs/middleware/page1

引入消息中间件有什么缺点?

https://shishan100.gitee.io/docs/#/./docs/middleware/page2

消息中间件在你们项目里是如何落地的?

https://shishan100.gitee.io/docs/#/./docs/middleware/page3

消息中间件集群崩溃,如何保证百万生产数据不丢失?

https://shishan100.gitee.io/docs/#/./docs/middleware/page4

如何保证消息中间件全链路数据100%不丢失(1)

https://shishan100.gitee.io/docs/#/./docs/middleware/page6

如何保证消息中间件全链路数据100%不丢失(2)ack机制

https://shishan100.gitee.io/docs/#/./docs/middleware/page7

消息中间件如何实现消费吞吐量的百倍优化?解决消息积压 prefetch count

https://shishan100.gitee.io/docs/#/./docs/middleware/page8

消息中间件该如何实现高可用架构?

https://shishan100.gitee.io/docs/#/./docs/middleware/page9

消息中间件如何实现每秒几十万的高并发写入? Kafka 的一些架构设计原理,零拷贝技术,页缓存技术,磁盘顺序写

https://shishan100.gitee.io/docs/#/./docs/middleware/page10

写入消息中间件的数据,如何保证不丢失?写入Kafka的消息如何不丢失

https://shishan100.gitee.io/docs/#/./docs/middleware/page11

如果让你设计一个消息中间件,如何将其网络通信性能优化10倍以上?batch机制 + request 机制

https://shishan100.gitee.io/docs/#/./docs/middleware/page12

简历写了会Kafka,面试官90%会让你讲讲acks参数对消息持久化的影响

https://shishan100.gitee.io/docs/#/./docs/middleware/page13

不了解这些“高级货”,活该你面试当炮灰。。。CopyOnWrite

https://shishan100.gitee.io/docs/#/./docs/middleware/page14

Kafka如何通过精妙的架构设计优化JVM GC问题?内存缓冲池的机制,不回收的堆外内存

https://shishan100.gitee.io/docs/#/./docs/middleware/page15

面试突击

分布式消息队列

【面试题】 为什么使用消息队列?消息队列有什么优点和缺点?

Kafka、ActiveMQ、RabbitMQ、RocketMQ 都有什么优点和缺点?

为什么使用消息队列?,消息队列有什么优点和缺点?,Kafka、ActiveMQ、RabbitMQ、RocketMQ 都有什么区别,以及适合哪些场景?

https://shishan100.gitee.io/docs/#/./docs/high-concurrency/why-mq

【面试题】 如何保证消息队列的高可用?

https://shishan100.gitee.io/docs/#/./docs/high-concurrency/how-to-ensure-high-availability-of-message-queues

【面试题】 如何保证消息不被重复消费?或者说,如何保证消息消费的幂等性?

https://shishan100.gitee.io/docs/#/./docs/high-concurrency/how-to-ensure-that-messages-are-not-repeatedly-consumed

【面试题】 如何保证消息的可靠性传输?或者说,如何处理消息丢失的问题?

https://shishan100.gitee.io/docs/#/./docs/high-concurrency/how-to-ensure-the-reliable-transmission-of-messages

【面试题】 - 如何保证消息的顺序性?

https://shishan100.gitee.io/docs/#/./docs/high-concurrency/how-to-ensure-the-order-of-messages

【面试题】 - 如何解决消息队列的延时以及过期失效问题?消息队列满了以后该怎么处理?有几百万消息持续积压几小时,说说怎么解决?

https://shishan100.gitee.io/docs/#/./docs/big-data/page2

【面试题】 - 如果让你写一个消息队列,该如何进行架构设计?说一下你的思路。

https://shishan100.gitee.io/docs/#/./docs/high-concurrency/mq-design

搜索引擎

lucene 和 es 的前世今生

https://shishan100.gitee.io/docs/#/./docs/high-concurrency/es-introduction

【面试题】 - es 的分布式架构原理能说一下么(es 是如何实现分布式的啊)?

https://shishan100.gitee.io/docs/#/./docs/high-concurrency/es-architecture

【面试题】 - es 写入数据的工作原理是什么啊?es 查询数据的工作原理是什么啊?底层的 lucene 介绍一下呗?倒排索引了解吗?

https://shishan100.gitee.io/docs/#/./docs/high-concurrency/es-write-query-search

【面试题】 - es 在数据量很大的情况下(数十亿级别)如何提高查询效率啊?

性能优化的杀手锏——filesystem cache,数据预热,冷热分离,document 模型设计,分页性能优化

https://shishan100.gitee.io/docs/#/./docs/high-concurrency/es-optimizing-query-performance

【面试题】 - es 生产集群的部署架构是什么?每个索引的数据量大概有多少?每个索引大概有多少个分片?

https://shishan100.gitee.io/docs/#/./docs/high-concurrency/es-production-cluster

分布式缓存

【面试题】 - 项目中缓存是如何使用的?为什么要用缓存?缓存使用不当会造成什么后果?

https://shishan100.gitee.io/docs/#/./docs/high-concurrency/why-cache

【面试题】 - redis 和 memcached 有什么区别?redis 的线程模型是什么?为什么 redis 单线程却能支撑高并发?

redis线程模型

https://shishan100.gitee.io/docs/#/./docs/high-concurrency/redis-single-thread-model

【面试题】 - redis 都有哪些数据类型?分别在哪些场景下使用比较合适?

https://mp.csdn.net/editor/html/113243963

【面试题】 - redis 的过期策略都有哪些?内存淘汰机制都有哪些?手写一下 LRU 代码实现?

定期删除+惰性删除。内存淘汰机制,手写一个 LRU 算法

https://shishan100.gitee.io/docs/#/./docs/high-concurrency/redis-expiration-policies-and-lru

【面试题】 如何保证 redis 的高并发和高可用?redis 的主从复制原理能介绍一下么?redis 的哨兵原理能介绍一下么?

https://shishan100.gitee.io/docs/#/./docs/high-concurrency/how-to-ensure-high-concurrency-and-high-availability-of-redis

Redis 主从架构

redis replication 的核心机制,redis 主从复制的核心原理,主从复制的断点续传,无磁盘化复制,过期 key 处理,复制的完整流程,全量复制,增量复制,heartbeat,异步复制,redis 如何才能做到高可用

https://shishan100.gitee.io/docs/#/docs/high-concurrency/redis-master-slave

Redis 哨兵集群实现高可用

https://shishan100.gitee.io/docs/#/docs/high-concurrency/redis-sentinel

【面试题】 - redis 的持久化有哪几种方式?不同的持久化机制都有什么优缺点?持久化机制具体底层是如何实现的?

redis 持久化的两种方式,RDB 优缺点,AOF 优缺点

https://shishan100.gitee.io/docs/#/./docs/high-concurrency/redis-persistence

【面试题】 - redis 集群模式的工作原理能说一下么?在集群模式下,redis 的 key 是如何寻址的?分布式寻址都有哪些算法?了解一致性 hash 算法吗?

节点间的内部通信机制,基本通信原理,gossip 协议,ping 消息深入,hash 算法,一致性 hash 算法,redis cluster 的 hash slot 算法,redis cluster 的高可用与主备切换原理,

https://shishan100.gitee.io/docs/#/./docs/high-concurrency/redis-cluster

【面试题】 了解什么是 redis 的雪崩、穿透和击穿?redis 崩溃之后会怎么样?系统该如何应对这种情况?如何处理 redis 的穿透?

缓存雪崩,缓存穿透,缓存击穿

https://shishan100.gitee.io/docs/#/./docs/high-concurrency/redis-caching-avalanche-and-caching-penetration

【面试题】 - 如何保证缓存与数据库的双写一致性?

Cache Aside Pattern,最初级的缓存不一致问题及解决方案,比较复杂的数据不一致问题分析,

https://shishan100.gitee.io/docs/#/./docs/high-concurrency/redis-consistence

【面试题】 - redis 的并发竞争问题是什么?如何解决这个问题?了解 redis 事务的 CAS 方案吗?

https://shishan100.gitee.io/docs/#/./docs/high-concurrency/redis-cas

【面试题】 - 生产环境中的 redis 是怎么部署的?

https://shishan100.gitee.io/docs/#/./docs/high-concurrency/redis-production-environment

分库分表

【面试题】 - 为什么要分库分表(设计高并发系统的时候,数据库层面该如何设计)?用过哪些分库分表中间件?不同的分库分表中间件都有什么优点和缺点?你们具体是如何对数据库如何进行垂直拆分或水平拆分的?

为什么要分库分表?(设计高并发系统的时候,数据库层面该如何设计?),用过哪些分库分表中间件?不同的分库分表中间件都有什么优点和缺点?,你们具体是如何对数据库如何进行垂直拆分或水平拆分的?

https://shishan100.gitee.io/docs/#/./docs/high-concurrency/database-shard

【面试题】 - 现在有一个未分库分表的系统,未来要分库分表,如何设计才可以让系统从未分库分表动态切换到分库分表上?

停机迁移方案,双写迁移方案

https://shishan100.gitee.io/docs/#/./docs/high-concurrency/database-shard-method

【面试题】 - 如何设计可以动态扩容缩容的分库分表方案?

停机扩容(不推荐),优化后的方案

https://shishan100.gitee.io/docs/#/./docs/high-concurrency/database-shard-dynamic-expand

【面试题】 - 分库分表之后,id 主键如何处理?

基于数据库的实现方案,数据库自增 id,设置数据库 sequence 或者表自增字段步长,UUID,获取系统当前时间,snowflake 算法

https://shishan100.gitee.io/docs/#/./docs/high-concurrency/database-shard-global-id-generate

【面试题】 - 你们有没有做 MySQL 读写分离?如何实现 MySQL 的读写分离?MySQL 主从复制原理的是啥?如何解决 MySQL 主从同步的延时问题?

如何实现 MySQL 的读写分离?,MySQL 主从复制原理的是啥?MySQL 主从同步延时问题(精华)

https://shishan100.gitee.io/docs/#/./docs/high-concurrency/mysql-read-write-separation

分布式服务框架Dubbo

【面试题】- 分布式系统面试连环炮【没有啥内容】

https://shishan100.gitee.io/docs/#/./docs/distributed-system/distributed-system-interview

【面试题】 - 如何设计一个高并发系统?

系统拆分,缓存,MQ,分库分表,读写分离,ElasticSearch

https://shishan100.gitee.io/docs/#/./docs/high-concurrency/high-concurrency-design

【面试题】 - 说一下的 dubbo 的工作原理?注册中心挂了可以继续通信吗?说说一次 rpc 请求的流程?

dubbo 工作原理,工作流程,

https://shishan100.gitee.io/docs/#/./docs/distributed-system/dubbo-operating-principle

【面试题】 - dubbo 支持哪些通信协议?支持哪些序列化协议?说一下 Hessian 的数据结构?PB 知道吗?为什么 PB 的效率是最高的?

dubbo 支持不同的通信协议,dubbo 协议,rmi 协议,hessian 协议,http 协议,webservice,dubbo 支持的序列化协议,为什么 PB 的效率是最高的?

https://shishan100.gitee.io/docs/#/./docs/distributed-system/dubbo-serialization-protocol

【面试题】 - dubbo 负载均衡策略和集群容错策略都有哪些?动态代理策略呢?

dubbo 负载均衡策略,dubbo 集群容错策略,dubbo动态代理策略

https://shishan100.gitee.io/docs/#/./docs/distributed-system/dubbo-load-balancing

【面试题】Dubbo 的 spi 思想是什么?

spi 是啥?,Java spi 思想的体现,dubbo spi 思想,如何自己扩展 dubbo 中的组件

https://shishan100.gitee.io/docs/#/./docs/distributed-system/dubbo-spi

【面试题】 - 如何基于 dubbo 进行服务治理、服务降级、失败重试以及超时重试?

服务治理, 服务访问压力以及时长统计,其它,服务降级,失败重试和超时重试

https://shishan100.gitee.io/docs/#/./docs/distributed-system/dubbo-service-management

【面试题】 - 分布式服务接口的幂等性如何设计(比如不能重复扣款)?

幂等

https://shishan100.gitee.io/docs/#/./docs/distributed-system/distributed-system-idempotency

【面试题】 - 分布式服务接口请求的顺序性如何保证?

https://shishan100.gitee.io/docs/#/./docs/distributed-system/distributed-system-request-sequence

【面试题】 - 如何自己设计一个类似 Dubbo 的 RPC 框架?

https://shishan100.gitee.io/docs/#/./docs/distributed-system/dubbo-rpc-design

【面试题】 - 为什么要进行系统拆分?如何进行系统拆分?拆分后不用 dubbo 可以吗?

为什么要将系统进行拆分?如何进行系统拆分?拆分后不用 dubbo 可以吗?

https://shishan100.gitee.io/docs/#/./docs/distributed-system/why-dubbo

分布式锁

【面试题】 - zookeeper 都有哪些使用场景?

分布式协调,分布式锁,元数据/配置信息管理,HA高可用性

https://shishan100.gitee.io/docs/#/./docs/distributed-system/zookeeper-application-scenarios

【面试题】 - 一般实现分布式锁都有哪些方式?使用 redis 如何设计分布式锁?使用 zk 来设计分布式锁可以吗?这两种分布式锁的实现方式哪种效率比较高?

redis 分布式锁,redis 最普通的分布式锁,RedLock 算法,zk 分布式锁,redis 分布式锁和 zk 分布式锁的对比

https://shishan100.gitee.io/docs/#/./docs/distributed-system/distributed-lock-redis-vs-zookeeper

分布式事务

【面试题】 - 分布式事务了解吗?你们是如何解决分布式事务问题的?

XA 方案,TCC 方案,本地消息表,可靠消息最终一致性方案,最大努力通知方案,

https://shishan100.gitee.io/docs/#/./docs/distributed-system/distributed-transaction

关于如何实现一个TCC分布式事务框架的一点思考

http://www.bytesoft.org/

分布式会话

【面试题】 - 集群部署时的分布式 session 如何实现?

完全不用 session,tomcat + redis,spring session + redis,

https://shishan100.gitee.io/docs/#/./docs/distributed-system/distributed-session

分布式限流降级

【面试题】 - Hystrix 介绍

Hystrix 是什么?,Hystrix 的历史,Hystrix 的设计原则,Hystrix 更加细节的设计原则

https://shishan100.gitee.io/docs/#/./docs/high-availability/hystrix-introduction

面试题大全及答案

https://zhuanlan.zhihu.com/p/64147696

https://mp.csdn.net/editor/html/115663783【精】

电商网站的商品详情页系统架构

小型电商网站的商品详情页系统架构,大型电商网站的商品详情页系统架构,

https://shishan100.gitee.io/docs/#/./docs/high-availability/e-commerce-website-detail-page-architecture

基于 Hystrix 线程池技术实现资源隔离

利用 HystrixCommand 获取单条数据,利用 HystrixObservableCommand 批量获取数据,

https://shishan100.gitee.io/docs/#/./docs/high-availability/hystrix-thread-pool-isolation

基于 Hystrix 信号量机制实现资源隔离

信号量机制,线程池与信号量区别,信号量简单 Demo

https://shishan100.gitee.io/docs/#/./docs/high-availability/hystrix-semphore-isolation

Hystrix 隔离策略细粒度控制

execution.isolation.strategy,command key & command group,command thread pool,command key & command group & command thread pool,coreSize,queueSizeRejectionThreshold,execution.isolation.semaphore.maxConcurrentRequests

https://shishan100.gitee.io/docs/#/./docs/high-availability/hystrix-execution-isolation

深入 Hystrix 执行时内部原理

步骤一:创建 command

步骤二:调用 command 执行方法

步骤三:检查是否开启缓存

步骤四:检查是否开启了断路器

步骤五:检查线程池/队列/信号量是否已满

步骤六:执行 command

步骤七:断路健康检查

步骤八:调用 fallback 降级机制

https://shishan100.gitee.io/docs/#/./docs/high-availability/hystrix-process

基于 request cache 请求缓存技术优化批量商品数据查询接口

https://shishan100.gitee.io/docs/#/./docs/high-availability/hystrix-request-cache

基于本地缓存的 fallback 降级机制

两种最经典的降级机制

步骤一:本地缓存获取数据

步骤二:实现 GetBrandNameCommand

步骤三:CacheController 调用接口

https://shishan100.gitee.io/docs/#/./docs/high-availability/hystrix-fallback

深入 Hystrix 断路器执行原理

RequestVolumeThreshold

ErrorThresholdPercentage

SleepWindowInMilliseconds

Enabled

ForceOpen

ForceClosed

实例 Demo

断路测试类

测试结果

https://shishan100.gitee.io/docs/#/./docs/high-availability/hystrix-circuit-breaker

深入 Hystrix 线程池隔离与接口限流

线程池隔离技术的设计

Hystrix 应用线程池机制的场景

线程池机制的优点

线程池机制的缺点

接口限流 Demo

https://shishan100.gitee.io/docs/#/./docs/high-availability/hystrix-thread-pool-current-limiting

基于 timeout 机制为服务接口调用超时提供安全保护

https://shishan100.gitee.io/docs/#/./docs/high-availability/hystrix-timeout

面试突击第二季

技术广度,为什么要这么考察一个人的技术广度?

https://shishan100.gitee.io/docs/#/./docs/distributed-system/distributed-design

系统性的分析了一下大厂对一个工程师的要:

https://shishan100.gitee.io/docs/#/./docs/distributed-system/java-interview-season-1-summary

Spring简单架构图

整体

https://shishan100.gitee.io/docs/#/./docs/distributed-system/core-architecture-principle

rpc简单调用

https://shishan100.gitee.io/docs/#/./docs/distributed-system/dubbo-framework-principle

rpc+netty

https://shishan100.gitee.io/docs/#/./docs/distributed-system/dubbo-rock-bottom

注册中心简单原理

https://shishan100.gitee.io/docs/#/./docs/distributed-system/springCloud-study-theory

https://shishan100.gitee.io/docs/#/./docs/distributed-system/registration-center-optimize

服务注册发现的原理

https://shishan100.gitee.io/docs/#/./docs/distributed-system/registration-center-guide

每秒10W并发简单架构

https://shishan100.gitee.io/docs/#/./docs/distributed-system/gateway-high-concurrency

分布式事务简单架构

https://shishan100.gitee.io/docs/#/./docs/distributed-system/rocketmq-transaction

分布式锁简单架构

https://shishan100.gitee.io/docs/#/./docs/distributed-system/distributed-lock

https://shishan100.gitee.io/docs/#/./docs/distributed-system/redis-distribute-lock

zookeeper实现

https://shishan100.gitee.io/docs/#/./docs/distributed-system/zookeeper-distribute-lock

解决羊群效应

https://shishan100.gitee.io/docs/#/./docs/distributed-system/zookeeper-distribute-lock-optimize

elasticsearch

读写原理

https://www.huaweicloud.com/articles/02f76393741c56daa425bc29eae565c3.html

https://blog.csdn.net/jiaojiao521765146514/article/details/83753215

微服务

Spring Cloud底层原理

https://shishan100.gitee.io/docs/#/./docs/microservice/page1

微服务注册中心如何承载大型系统的千万级访问?Eureka核心原理,多级缓存机制

https://shishan100.gitee.io/docs/#/./docs/microservice/page2

Spring Cloud 参数优化实战

https://shishan100.gitee.io/docs/#/./docs/microservice/page3

微服务架构如何保障双11狂欢下的99.99%高可用 Hystrix参数设置 线程池配置

https://shishan100.gitee.io/docs/#/./docs/microservice/page4

注册中心不开源了怎么办?Eureka不好用了

https://shishan100.gitee.io/docs/#/./docs/microservice/page5

如何优化Spring Cloud微服务注册中心架构?Consul架构原理

https://shishan100.gitee.io/docs/#/./docs/microservice/page6

分布式

Zookeeper

领导选举

深入分析Zookeeper的Leader 选举实现原理

ZAB协议:

https://www.cnblogs.com/wuzhenzhao/p/9983231.html

Zookeeper选举算法原理

https://blog.csdn.net/yue_2018/article/details/89717010

TCC分布式事务的实现原理!

https://shishan100.gitee.io/docs/#/./docs/distributed/page1

最终一致性分布式事务如何保障实际生产中99.99%高可用?分布式事务的高可用

https://shishan100.gitee.io/docs/#/./docs/distributed/page2

 Redis 分布式锁的实现原理

https://shishan100.gitee.io/docs/#/./docs/distributed/page3

分布式锁高并发优化实践

https://shishan100.gitee.io/docs/#/./docs/distributed/page4

ZooKeeper分布式锁的实现原理

https://shishan100.gitee.io/docs/#/./docs/distributed/page5

分布式系统容错架构设计

https://shishan100.gitee.io/docs/#/./docs/distributed/page6

分布式搜索引擎的架构原理 ElasticSearch

https://shishan100.gitee.io/docs/#/./docs/distributed/page7

分布式系统的唯一id生成算法你了解吗?snowflake算法

https://shishan100.gitee.io/docs/#/./docs/distributed/page8

什么是分布式计算系统!

https://shishan100.gitee.io/docs/#/./docs/distributed/page9

到底啥是分布式系统开发经验?

https://shishan100.gitee.io/docs/#/./docs/distributed/page10

线上经验总结

扎心!线上服务宕机时,如何保证数据100%不丢失?

https://shishan100.gitee.io/docs/#/./docs/middleware/page5

一次JVM FullGC的背后,竟隐藏着惊心动魄的线上生产事故!Quorum机制

https://shishan100.gitee.io/docs/#/./docs/online-experience-summary/page1

【来自一线的血泪总结】你的系统上线时是否踩过这些坑?

https://shishan100.gitee.io/docs/#/./docs/online-experience-summary/page2

老司机生产实践经验:线上系统的 JVM 内存是越大越好吗?

内存缓冲 os cache  

https://shishan100.gitee.io/docs/#/./docs/online-experience-summary/page3

 

操作系统

IO流

系统IO与网络IO概要

https://blog.csdn.net/everyonetimeismoney/article/details/113244889

https://juejin.cn/post/6844903993844432909【精】

算法

Quorum算法。数据不丢失算法

 

大数据技术栈

Hadoop

兄弟,用大白话告诉你小白都能看懂的Hadoop架构原理

https://mp.weixin.qq.com/s?__biz=MzU0OTk3ODQ3Ng==&mid=2247483809&idx=1&sn=a8d087c21171bf164fcda389ada9404a&chksm=fba6e9a2ccd160b4e1423c6d142b18849ded66cfdc1477e4d601e44f832d7026b64d80af8db1&scene=21#wechat_redirect

Hadoop如何给文件上锁-契约机制

https://shishan100.gitee.io/docs/#/./docs/big-data/page1

大规模集群下 Hadoop NameNode 如何承载每秒上千次的高并发访问

性能两大杀手:磁盘写 + 网络写!分段加锁机制 + 内存双缓冲机制,etigslog

https://shishan100.gitee.io/docs/#/./docs/big-data/page2

Hadoop如何将TB级大文件的上传性能优化上百倍?

Chunk 缓冲机制,Packet 数据包机制,内存队列异步发送机制

https://shishan100.gitee.io/docs/#/./docs/big-data/page3

看 Hadoop 底层算法如何优雅的将大规模集群性能提升 10 倍以上?【同上】

https://shishan100.gitee.io/docs/#/./docs/big-data/page4【同上】

Spark

Spark如何处理数据倾斜

https://blog.csdn.net/kaede1209/article/details/81145560

https://blog.csdn.net/weixin_38750084/article/details/82721319?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromBaidu-1.control&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromBaidu-1.control

Spark广播变量【优化】

https://blog.csdn.net/leen0304/article/details/78720838

Spark性能优化原则【优化】【美团技术团队】

https://tech.meituan.com/2016/04/29/spark-tuning-basic.html

机器学习

Word2vec

https://zhuanlan.zhihu.com/p/26306795

https://easyai.tech/ai-definition/word2vec/

N-gram

https://blog.csdn.net/songbinxu/article/details/80209197

BERT

GPT2.0

PageRank

https://blog.csdn.net/hguisu/article/details/7996185

TextRank

http://blog.itpub.net/31562039/viewspace-2286669/

https://blog.csdn.net/everyonetimeismoney/article/details/113114390

TF-IDF

https://blog.csdn.net/everyonetimeismoney/article/details/113114390

https://blog.csdn.net/asialee_bird/article/details/81486700

LFM

https://blog.csdn.net/everyonetimeismoney/article/details/113249478

https://blog.csdn.net/gfdgfhsds/article/details/104775336

ALS

https://blog.csdn.net/everyonetimeismoney/article/details/113249478

https://blog.csdn.net/legotime/article/details/51836030

布隆过滤器

https://www.cnblogs.com/liyulong1982/p/6013002.html

https://zhuanlan.zhihu.com/p/43263751

https://blog.csdn.net/weixin_43179522/article/details/107951740

倒排索引

https://shishan100.gitee.io/docs/#/./docs/distributed/page7

评价推荐模型的好坏

https://blog.csdn.net/everyonetimeismoney/article/details/113343533

超神文档

https://blog.csdn.net/everyonetimeismoney/article/details/113405855

集群搭建

https://blog.csdn.net/everyonetimeismoney/article/details/113414993

Standalone YarnHA

https://blog.csdn.net/everyonetimeismoney/article/details/113416333

subtask划分及任务调度

https://blog.csdn.net/everyonetimeismoney/article/details/113422948

协议

Raft 强一致协议

https://raft.github.io/

http://thesecretlivesofdata.com/raft/

推荐系统

MySql

优化

MySQL底层实现机制

https://blog.csdn.net/qq_25062299/article/details/98615267

Mysql insert原理

https://segmentfault.com/a/1190000022315340

Mysql 事务原理

https://zhuanlan.zhihu.com/p/48327345

组合索引原理

https://cloud.tencent.com/developer/article/1770563【单个索引】

https://blog.csdn.net/feichitianxia/article/details/107997795【组合索引】

索引-部门技术分享

https://blog.csdn.net/everyonetimeismoney/article/details/115371843

Mysql_Binlog同步数据

https://mp.weixin.qq.com/s?__biz=MzAxMjY5NDU2Ng==&mid=2651855520&idx=1&sn=5c5ff02dbaa254efbee4ae2ac9b7081d&chksm=80495fe9b73ed6ffe3fe82ca614aebae614616939dacb0209f46d24d4cbfbf4f202b88e8e249&mpshare=1&scene=1&srcid=&sharer_sharetime=1590466279167&sharer_shareid=65022ec60cc63b548026c0fc9296ef1a&exportkey=AexJmBT4O30a2lwQgpzbuX0=&pass_ticket=9PCPqu6rsKZpdo8s34YH%2b8xhr%2bqD0f/3ifpAY1kOkoylEmEHrsErpYOXxKdclsMg#rd

算法

迪杰斯特拉算法【最短路径算法之一】

时间点:02:00:00  

https://ke.qq.com/webcourse/3067253/103187834#taid=10578422848736629&vid=5285890811763788622

视频

https://ke.qq.com/webcourse/3067253/103187834#taid=10471976379272565&vid=5285890810249398652

代码

https://blog.csdn.net/everyonetimeismoney/article/details/114607953

加强堆

视频

https://ke.qq.com/webcourse/3067253/103187834#taid=10471980674239861&vid=5285890810611674308

代码

https://blog.csdn.net/everyonetimeismoney/article/details/114608119

亿级流量架构

【架构演进】亿级流量系统架构之如何支撑百亿级数据的存储与计算

滑动时间窗口

https://shishan100.gitee.io/docs/#/./docs/billion-level-traffic-architecture/page1

【架构演进】亿级流量系统架构之如何设计高容错分布式计算系统

弹性资源调度,分布式系统高容错机制

https://shishan100.gitee.io/docs/#/./docs/billion-level-traffic-architecture/page2

【架构演进】亿级流量系统架构之如何设计承载百亿流量的高性能架构

计算与存储分离,内存计算,MQ削峰以及流量控制,数据的动静分离架构,静态数据做个轻量级的cache

https://shishan100.gitee.io/docs/#/./docs/billion-level-traffic-architecture/page3

【架构演进】亿级流量系统架构之如何设计每秒十万查询的高并发架构

分库分表 + 读写分离,冷热数据分离,ES+HBase,实时数据存储引入缓存集群,双写的方式

https://shishan100.gitee.io/docs/#/./docs/billion-level-traffic-architecture/page4

【架构演进】亿级流量系统架构之如何设计全链路99.99%高可用架构

异步转同步 + 限流算法 + 限制性丢弃流量,临时扩容 Slave 集群 + 内存级分片存储 + 小时级数据粒度,计算任务重分配 + 主备切换机制,自研缓存集群查询引擎 + JVM 本地缓存 + 限流机制

收集查询日志 + 离线日志分析 + 缓存高频查询

https://shishan100.gitee.io/docs/#/./docs/billion-level-traffic-architecture/page5

如何在上万并发场景下设计可扩展架构(上)?

https://shishan100.gitee.io/docs/#/./docs/billion-level-traffic-architecture/page6

亿级流量系统架构之如何在上万并发场景下设计可扩展架构(中)?

手动流量开关配合数据库运维操作,支持多系统同时订阅数据

https://shishan100.gitee.io/docs/#/./docs/billion-level-traffic-architecture/page7

亿级流量系统架构之如何在上万并发场景下设计可扩展架构(下)?

https://shishan100.gitee.io/docs/#/./docs/billion-level-traffic-architecture/page8

亿级流量架构第二弹:你的系统真的无懈可击吗?

https://shishan100.gitee.io/docs/#/./docs/billion-level-traffic-architecture/page9

亿级流量系统架构之如何保证百亿流量下的数据一致性(上)

https://shishan100.gitee.io/docs/#/./docs/billion-level-traffic-architecture/page10

亿级流量系统架构之如何保证百亿流量下的数据一致性(中)?

https://shishan100.gitee.io/docs/#/./docs/billion-level-traffic-architecture/page11

亿级流量系统架构之如何保证百亿流量下的数据一致性(下)?

https://shishan100.gitee.io/docs/#/./docs/billion-level-traffic-architecture/page12

 

 

亿级流量电商详情页系统实战

https://www.yuque.com/docs/share/e8133510-77dd-4ad8-b260-cb2b173d8351#%E3%80%8A%E4%BA%BF%E7%BA%A7%E6%B5%81%E9%87%8F%E7%94%B5%E5%95%86%E8%AF%A6%E6%83%85%E9%A1%B5%E7%B3%BB%E7%BB%9F%E5%AE%9E%E6%88%98%E3%80%8B

面试官

互联网公司的面试官是如何360°无死角考察候选人的?(上篇)

https://shishan100.gitee.io/docs/#/./docs/interview-essential/page1

互联网公司的面试官是如何360°无死角考察候选人的?(下篇)

https://shishan100.gitee.io/docs/#/./docs/interview-essential/page2

面试经验

记一位朋友斩获 BAT 技术专家 Offer 的面试经历

https://shishan100.gitee.io/docs/#/./docs/interview-essential/page3

职业发展

英语差的程序员如何才能无障碍阅读官方文档?

https://shishan100.gitee.io/docs/#/./docs/career-development/page1

中小公司的Java工程师应该如何逆袭冲进BAT?

https://shishan100.gitee.io/docs/#/./docs/career-development/page2

【码农打怪升级之路】行走江湖,你需要解锁哪些技能包?

https://shishan100.gitee.io/docs/#/./docs/career-development/page3

三四十岁的大龄程序员,应该如何保持自己的职场竞争力?

https://shishan100.gitee.io/docs/#/./docs/career-development/page4

如何阅读一个开源项目的源码?

https://shishan100.gitee.io/docs/#/./docs/career-development/page5

你可能感兴趣的:(精品文章)