2024年Java后端技术架构总结
2024-07-12 11:20:09 30 举报
AI智能生成
这份总结报告详细分析了2024年Java后端技术的发展趋势和应用实践。报告首先探讨了微服务架构在Java后端开发中的重要性,强调通过微服务实现系统的高内聚、低耦合,提高系统的可扩展性和可维护性。接着,报告介绍了DevOps在Java后端项目中的应用,通过自动化部署、监控和日志分析等工具,提高开发效率和系统稳定性。此外,报告还讨论了Java云原生技术的发展趋势,包括容器化、Serverless架构以及Service Mesh等技术,为企业提供更高效、灵活的后端解决方案。最后,报告指出了Java后端开发中一些亟待解决的问题,如性能优化、安全问题等,为企业提供改进的方向。
作者其他创作
大纲/内容
性能优化
性能优化方法论
《15天的性能优化工作,5方面的调优经验》
《系统性能优化的几个方面》
容量评估
《联网性能与容量评估的方法论和典型案例》
《互联网架构,如何进行容量设计?》
CDN 网络
《CDN加速原理》
《国内有哪些比较好的 CDN?》
连接池
《主流Java数据库连接池比较与开发配置实战》
主流Java数据库连接池比较及前瞻
性能调优
《九大Java性能调试工具,必备至少一款》
SQL优化
《MySQL36条军规》
《MYSQL性能优化的最佳20+条经验》
《SQL优化之道》
《mysql数据库死锁的产生原因及解决办法》
《导致索引失效的可能情况》
《 MYSQL分页limit速度太慢优化方法》
JVM调优
JVM(1.7)详细整理
Java虚拟机(JVM)你只要看这一篇就够了!
耗时优化
系统架构优化
阿里系统演进
安全方面
web 安全
XSS
《xss攻击原理与解决方法》
CSRF
《CSRF原理及防范》
SQL 注入
Hash Dos
《邪恶的JAVA HASH DOS攻击》
《一种高级的DoS攻击-Hash碰撞攻击》
《关于Hash Collision DoS漏洞:解析与解决方案》
脚本注入
《上传文件漏洞原理及防范》
DDoS 防范
《学习手册:DDoS的攻击方式及防御手段》
《免费DDoS攻击测试工具大合集》
用户隐私信息保护
《个人隐私包括哪些》
《在互联网上,隐私的范围包括哪些?》
《用户密码保存》
加密解密
对称加密
《常见对称加密算法》
哈希算法
《常用的哈希算法》
《基于Hash摘要签名的公网URL签名验证设计方案》
非对称加密
《常见非对称加密算法》
《区块链的加密技术》
服务器安全
《Linux强化论:15步打造一个安全的Linux服务器》
数据安全
用户隐私信息保护
数据备份
网络隔离
内外网分离
登录跳板机
授权、认证
单点登录(SSO)
双因素认证(2FA)
漏洞扫描工具
《DVWA》
W3af
OpenVAS详解
验证码
《验证码原理分析及实现》
《详解滑动验证码的实现原理》
《淘宝滑动验证码研究》
常用开源框架
日志框架
Log4j、Log4j2
《log4j 详细讲解》
《log4j2 实际使用详解》
《Log4j1,Logback以及Log4j2性能测试对比》
Logback
《最全LogBack 详解、含java案例和配置说明》
Web 框架
Spring 家族
Spring 简明教程
Spring cloud
Spring boot
自动配置
工具框架
《Apache Commons 工具类介绍及简单使用》
《Google guava 中文教程》
Hutool
网络框架
ORM
《ORM框架使用优缺点》
MyBatis
分布式设计
扩展性设计
《架构师不可不知的十大可扩展架构》
《可扩展性设计之数据切分》
《说说如何实现可扩展性的大型网站架构》
《大型网站技术架构(七)--网站的可扩展性架构》
稳定性 & 高可用
软件负载均衡
《几种负载均衡算法》
《DNS负载均衡》
《Nginx负载均衡》
《借助LVS+Keepalived实现负载均衡 》
《HAProxy用法详解 全网最详细中文文档》
《Haproxy+Keepalived+MySQL实现读均衡负载》
《rabbitmq+haproxy+keepalived实现高可用集群搭建》
限流
《谈谈高并发系统的限流》
sentinel限流
nginx限流
限流算法
漏桶
令牌桶
漏桶算法与令牌桶算法的区别
应用层容灾
《防雪崩利器:熔断器 Hystrix 的原理与使用》
《缓存穿透,缓存击穿,缓存雪崩解决方案分析》
《缓存击穿、失效以及热点key问题》
硬件负载均衡
《转!!负载均衡器技术Nginx和F5的优缺点对比》
《软/硬件负载均衡产品 你知多少?》
跨机房容灾
《“异地多活”多机房部署经验谈》
《异地多活(异地双活)实践经验》
容灾技术及建设经验介绍
容灾演练流程
《阿里电商故障演练系统的设计与实战经验》
平滑启动
《JVM安全退出(如何优雅的关闭java服务)》
《常见Java应用如何优雅关闭》
数据库扩展
读写分离模式
《Mysql主从方案的实现》
《搭建MySQL主从复制经典架构》
《Haproxy+多台MySQL从服务器(Slave) 实现负载均衡》
《DRBD+Heartbeat+Mysql高可用读写分离架构》
《MySQL Cluster 方式》
分片模式
《分库分表需要考虑的问题及方案》
《MySql分表和表分区详解》
服务治理
服务注册与发现
《永不失联!如何实现微服务架构中的服务发现?》
《SpringCloud服务注册中心比较:Consul vs Zookeeper vs Etcd vs Eureka》
《基于Zookeeper的服务注册与发现》
服务路由控制
《分布式服务框架学习笔记4 服务路由》
分布式一致
CAP 与 BASE 理论
分布式锁
分布式一致性算法
PAXOS
Zab
Raft
Gossip
两阶段提交、多阶段提交
幂等
分布式一致方案
分布式 Leader 节点选举
TCC(Try/Confirm/Cancel) 柔性事务
唯一ID 生成
《高并发分布式系统中生成全局唯一Id汇总》
《TDDL 在分布式下的SEQUENCE原理》
分布式文件存储
HDFS
FastDFS
阿里云产品OSS
一致性Hash算法
设计思想和开发模式
DDD(Domain-driven Design - 领域驱动设计)
《浅谈我对DDD领域驱动设计的理解》
《领域驱动设计的基础知识总结》
《领域驱动设计(DDD)实现之路》
《领域驱动设计系列(2)浅析VO、DTO、DO、PO的概念、区别和用处》
命令查询职责分离(CQRS)
《领域驱动设计系列 (六):CQRS》
《DDD CQRS架构和传统架构的优缺点比较》
《CQRS架构简介》
《深度长文:我对CQRS/EventSourcing架构的思考》
贫血,充血模型
《贫血,充血模型的解释以及一些经验》
Actor 模式
响应式编程
Reactor
RxJava
Vert.x
DODAF2.0
《DODAF2.0方法论》
《DODAF2.0之能力视角如何落地》
Serverless
Service Mesh
《什么是Service Mesh?》
《初识 Service Mesh》
项目管理
架构评审
《架构设计之如何评审架构设计说明书》
《人人都是架构师:非功能性需求》
重构
《架构之重构的12条军规》
代码规范
《阿里巴巴Java开发手册》
code review
《为什么你做不好 Code Review?》
《从零开始Code Review》
《Code Review Checklist》
看板管理
《说说看板在项目中的应用》
SCRUM
《敏捷项目管理流程-Scrum框架最全总结!》
《敏捷其实很简单3---敏捷方法之scrum》
敏捷开发
PDCA 循环质量管理
政策、法规
法律
严格遵守刑法253法条
架构师素质
程序员修炼之路
《架构师画像》
业务理解和抽象能力
NB的代码能力
全局考虑问题的能力
《关于架构优化和设计,架构师必须知道的事情》
《如何才能真正的提高自己,成为一名出色的架构师?》
《架构师的必备素质和成长途径》
《架构设计师—你在哪层楼?》
架构心得
灰度!灰度!灰度!
监控!监控!监控!
告警!告警!告警!
缓存!缓存!缓存!
限流!熔断!降级!
低耦合,高内聚!
避免单点,拥抱无状态!
评估!评估!评估!
压测!压测!压测!
团队管理
招聘
技术要求
薪资要求
性格人品
招聘渠道
拉钩
boss直聘
脉脉
58job
下属1对1沟通
员工成长计划
想从公司得到什么?
需要公司给予什么帮助?
OKR管理
5S管理
复盘和总结
技术资源
资讯
行业资讯
Techweb
36kr
公众号列表
Java开发
博客
阿里中间件博客
美团点评技术团队博客
阮一峰的网络日志
hellojava-阿里毕玄
综合门户、社区
CSDN
51cto.com
ITeye
开源中国社区
InfoQ
深度开源
伯乐在线
阿里云— 云栖社区
国外:DZone
问答、讨论类社区
知乎
stackoverflow
行业数据分析
艾瑞网
QUEST MOBILE
国家数据
TalkingData
专项网站
测试
领测国际
测试窝
TesterHome
运维
Java开发
安全方面
大数据
其他专题网站
自动化工具
一个自动生成代码的支持mybatis的框架
常用的工具类
hutol
vpn
佛跳墙
小火箭
Chrome 插件谷歌服务助手
Shadowsocks
开源完整的系统
10k+点赞的 SpringBoot 后台管理系统
前后端分离的商城系统
互站网
视频课程
有道云精品科
网易公开课
网易云课堂
黑马程序员
参考文献
Java学习路线图(2021年最新版)
相关证书
高级软考
项目管理PMP
技术变现
开发软件
开设网店
设立博客
教学视频
外包项目
七赚网
数据结构
队列
《java队列——queue详细分析》
集合
《Java Set集合的详解》
链表、数组
《Java集合详解--什么是List》
字典、关联数组
《Java map 详解 - 用法、遍历、排序、常用API等》
栈
java stack的详细实现分析
树
二叉树
完全二叉树
平衡二叉树
二叉查找树(BST)
红黑树
《最容易懂得红黑树》
《浅谈算法和数据结构: 九 平衡查找树之红黑树》
B,B+,B*树
《B-树,B+树,B*树详解》
《B-树,B+树与B*树的优缺点比较》
LSM 树
《LSM树 VS B+树》
《LSM树(Log-Structured Merge Tree)存储引擎》
BitSet
《Java Bitset类》
《Java BitSet(位集)》
常用算法
排序查找算法
选择排序
冒泡排序
插入排序
快速排序
归并排序
希尔排序
堆排序
计数排序
桶排序
《【啊哈!算法】最快最简单的排序——桶排序》
《计数排序与桶排序》
基数排序
二分查找
《java实现二分查找-两种方式》
《二分查找(java实现)》
Java 中的排序工具
《Arrays.sort和Collections.sort实现原理解析》
布隆过滤器
《基于Redis的布隆过滤器的实现》
《布隆过滤器 -- 空间效率很高的数据结构》
《网络爬虫:URL去重策略之布隆过滤器(BloomFilter)的使用》
深度优先、广度优先
贪心算法
回溯算法
最小生成树算法
最短路径算法
高并发知识和处理
java并发
并发知识合集
JAVA并发知识图谱
多线程
线程安全
多线程-出现非线程安全的底层原因
一致性、事务
事务ACID四大特性
事务的隔离级别
《理解事务的4种隔离级别》
数据库事务的四大特性及事务隔离级别
《MySQL的InnoDB的幻读问题 》
《一篇文章带你读懂MySQL和InnoDB》
MVCC
《【mysql】关于innodb中MVCC的一些理解》
《轻松理解MYSQL MVCC 实现机制》
锁
Java中的锁和同步类
《Java中的锁分类》
《Java并发之AQS详解》
《Java中信号量 Semaphore》
《java开发中的Mutex vs Semaphore》
《ReenTrantLock可重入锁(和synchronized的区别)总结》
公平锁 & 非公平锁
悲观锁
《【MySQL】悲观锁&乐观锁》
《Mysql查询语句使用select.. for update导致的数据库死锁分析》
《Mysql并发时经典常见的死锁原因及解决方法》
乐观锁 & CAS
ABA 问题
《Java CAS 和ABA问题》
《Java 中 ABA问题及避免》
CopyOnWrite容器
《JAVA中写时复制(Copy-On-Write)Map实现》
《聊聊并发-Java中的Copy-On-Write容器》
可重入锁 & 不可重入锁
互斥锁 & 共享锁
死锁
《“死锁”四个必要条件的合理解释》
Java如何查看死锁?
java多线程系列:死锁及检测
分布式锁
操作系统
计算机组成原理
CPU
进程
线程
协程
lunix系统
《Linux 命令大全》
常用命令
《java问题排查工具》
设计模式
23种常见设计模式
设计模式的六大原则
应用场景
JDK里的使用场景
结构型模式:
创建模式:
行为模式:
《Spring-涉及到的设计模式汇总》
《Mybatis使用的设计模式》
单例模式
MVC
IOC
《理解 IOC》
《IOC 的理解与解释》
Spring 的 Bean 的加载过程
spring加载bean流程解析
Spring Bean的生命周期(非常详细)
AOP
《轻松理解AOP(面向切面编程)》
《Spring AOP详解》
《Spring AOP的实现原理》
spring两种代理方式
1. 若目标对象实现了若干接口,spring使用JDK的java.lang.reflect.Proxy类代理。
优点:因为有接口,所以使系统更加松耦合
缺点:为每一个目标类创建接口
2. 若目标对象没有实现任何接口,spring使用CGLIB库生成目标对象的子类。
优点:因为代理类与目标类是继承关系,所以不需要有接口的存在。
缺点:因为没有使用接口,所以系统的耦合性没有使用JDK的动态代理好。
1. 若目标对象实现了若干接口,spring使用JDK的java.lang.reflect.Proxy类代理。
优点:因为有接口,所以使系统更加松耦合
缺点:为每一个目标类创建接口
2. 若目标对象没有实现任何接口,spring使用CGLIB库生成目标对象的子类。
优点:因为代理类与目标类是继承关系,所以不需要有接口的存在。
缺点:因为没有使用接口,所以系统的耦合性没有使用JDK的动态代理好。
《Spring AOP 实现原理与 CGLIB 应用》
聊聊Spring的AOP实现原理
UML
微服务思想
《微服务架构设计》
《微服务架构技术栈选型手册》
康威定律
《微服务架构的理论基础 - 康威定律》
运维 & 统计 & 技术支持
《腾讯业务系统监控的修炼之路》
《开源还是商用?十大云运维监控工具横评》
《监控报警系统搭建及二次开发经验》
《常用命令行监控工具》
常用命令行监控工具
《20个命令行工具监控 Linux 系统性能》
《JVM性能调优监控工具jps、jstack、jmap、jhat、jstat、hprof使用详解》
统计分析
《流量统计的基础:埋点》
《APP埋点常用的统计工具、埋点目标和埋点内容》
《美团点评前端无痕埋点实践》
持续集成(CI/CD)
《持续集成是什么?》
《8个流行的持续集成工具》
Jenkins
《使用Jenkins进行持续集成》
环境分离
《开发环境、生产环境、测试环境的基本理解和区》
自动化运维
Ansible
《Ansible中文权威指南》
《Ansible基础配置和企业级项目实用案例》
puppet
chef
测试
TDD 理论
单元测试
《Java单元测试之JUnit篇》
《单元测试主要的测试功能点》
压力测试
《Apache ab 测试使用指南》
《大型网站压力测试及优化方案》
《10大主流压力/负载/性能测试工具推荐》
《真实流量压测工具 tcpcopy应用浅析》
《nGrinder 简易使用教程》
Jmeter压测
全链路压测
《京东618:升级全链路压测方案,打造军演机器人ForceBot》
《JUnit 4 与 TestNG 对比》
《饿了么全链路压测的探索与实践》
《四大语言,八大框架|滴滴全链路压测解决之道》
《全链路压测经验》
A/B 、灰度、蓝绿测试
《技术干货 | AB 测试和灰度发布探索及实践》
《nginx 根据IP 进行灰度发布》
《蓝绿部署、A/B 测试以及灰度发布》
虚拟化
《VPS的三种虚拟技术OpenVZ、Xen、KVM优缺点比较》
KVM
Xen
OpenVZ
KVM
docker容器
《几张图帮你理解 docker 基本原理及快速入门》
《Docker 核心技术与实现原理》
《Docker 教程》
云技术
OpenStack
阿里云
腾讯云
DevOps
《一分钟告诉你究竟DevOps是什么鬼?》
《DevOps详解》
文档管理
Wiki
processon
GitLab
语雀
个人博客
中间件
消息队列
RabbitMQ
《RabbitMQ的应用场景以及基本原理介绍》
《消息队列之 RabbitMQ》
《RabbitMQ之消息确认机制(事务+Confirm)》
RocketMQ
《RocketMQ 实战之快速入门》
RocketMQ架构模块解析
为啥会有重复推数据
ActiveMQ
《ActiveMQ消息队列介绍》
Kafka
《各消息队列对比,Kafka深度解析,众人推荐,精彩好文!》
《Kafka分区机制介绍与示例》
Redis用作消息队列
Web Server
Nginx
《Ngnix的基本学习-多进程和Apache的比较》
《nginx与Apache的对比以及优缺点》
Nginx负载均衡配置
OpenResty
《浅谈 OpenResty》
agentzh 的 Nginx 教程
Tengine
Apache Httpd
Tomcat
架构原理
《TOMCAT原理详解及请求过程》
《Tomcat服务器原理详解》
《Tomcat 系统架构与设计模式,第 1 部分: 工作原理》
《四张图带你了解Tomcat系统架构》
《JBoss vs. Tomcat: Choosing A Java Application Server》
调优方案
《Tomcat 调优方案》
《tomcat http协议与ajp协议》
《AJP与HTTP比较和分析》
Jetty
《Jetty 的工作原理以及与 Tomcat 的比较》
《jetty和tomcat优势比较》
缓存
本地缓存
《HashMap本地缓存》
《EhCache本地缓存》
《Guava Cache》
《Nginx本地缓存》
本地缓存的原理及技术选型参考
客户端缓存
《浏览器端缓存》
《H5 和移动端 WebView 缓存机制解析与实战》
预加载和懒加载
服务端缓存
Memcached
《Memcached 教程》
《Memcached软件工作原理》
《深入理解Memcached原理》
《Memcache技术分享:介绍、使用、存储、算法、优化、命中率》
《memcache 中 add 、 set 、replace 的区别》
redis
《redis的使用和分享》
《Redis 教程》
《redis底层原理》
《Redis持久化方式》
《分布式缓存--序列3--原子操作与CAS乐观锁》
《Redis单线程架构》
《redis的回收策略》
Tair
《Tair和Redis的对比》
mybatis缓存
《缓存失效策略(FIFO 、LRU、LFU三种算法的区别)》
《互联网架构多级缓存》
定时调度
单机定时调度
《linux定时任务cron配置》
《Linux cron运行原理》
《Quartz使用总结》
《Quartz源码解析 ---- 触发器按时启动原理》
《quartz原理揭秘和源码解读》
分布式定时调度
《这些优秀的国产分布式任务调度系统,你用过几个?》
《Quartz任务调度的基本实现原理》
《Elastic-Job-Lite 源码解析》
《Elastic-Job-Cloud 源码解析》
RPC
Dubbo
dubbo实现原理简单介绍
Thrift
《Thrift RPC详解》
gRPC
《你应该知道的RPC原理》
Sharding Jdbc
日志系统
《从零开始搭建一个ELKB日志收集系统》
《用ELK搭建简单的日志收集分析系统》
《日志收集系统-探究》
配置中心
Apollo - 携程开源的配置中心应用
《基于zookeeper实现统一配置管理》
《 Spring Cloud Config 分布式配置中心使用教程》
《servlet3.0 新特性——异步处理》
API 网关
《API网关那些儿》
《谈API网关的背景、架构以及落地方案》
《使用Zuul构建API Gateway》
《Spring Cloud Gateway 源码解析》
《HTTP API网关选择之一Kong介绍》
网络原理
协议
OSI 七层协议
《OSI七层协议模型、TCP/IP四层模型学习笔记》
TCP/IP
《深入浅出 TCP/IP 协议》
《TCP协议中的三次握手和四次挥手》
HTTP
《http协议详解(超详细)》
HTTP2.0
《HTTP 2.0 原理详细分析》
《HTTP2.0的基本单位为二进制帧》
HTTPS
《https原理通俗了解》
《八大免费SSL证书-给你的网站免费添加Https安全加密》
网络模型
《web优化必须了解的原理之I/o的五种模型和web的三种工作模式》
《select、poll、epoll之间的区别总结》
《select,poll,epoll比较 》
《深入理解Java NIO》
《BIO与NIO、AIO的区别》
《两种高效的服务器设计模型:Reactor和Proactor模型》
Epoll
Java NIO
《深入理解Java NIO》
《Java NIO编写Socket服务器的一个例子》
kqueue
连接和短连接
《TCP/IP系列——长连接与短连接的区别》
序列化(二进制协议)
Hessian
Protobuf
《Protobuf协议的Java应用例子》
《Protocol Buffers序列化协议及应用》
数据库
基础理论
关系数据库设计的三大范式
关系型数据库
MySQL
Oracle
sql server
非关系型数据库
Redis
MongoDB
Hbase
常用链接工具
Navicat Premium
Sequel pro
DBeaver
搜索引擎
搜索引擎原理
《倒排索引--搜索引擎入门》
Lucene
《Lucene入门简介》
Elasticsearch
《Elasticsearch学习,请先看这一篇!》
《Elasticsearch索引原理》
Solr
《 Apache Solr入门教程》
《elasticsearch与solr比较》
sphinx
《Sphinx 的介绍和原理探索》
0 条评论
下一页