整个设计过程涉及的技术选型,这里记下每种中间件的限定值
- 一台Web Server承受量约为 1K的QPS
- 一台SQL Database承受量约为 1K的QPS
- Redis约为10W的QPS
- Nginx约为5W的QPS
第二步:系统API、服务设计
-
基于领域,划分几个服务
-
每个服务设计的API
-
设计API接口,一般都会有对资源的CRUD
第三步:存储设计
分析系统,涉及哪些类型的数据
结构化、半结构化、非结构化
-
数据库
-
选用关系数据库
-
选用非关系数据库
-
分析对象关系
-
建立对象关系模型
-
每个字段选用合适的类型
-
预估索引、是否联合索引、唯一索引等
-
是否是关系数据库或者非关系数据库以及是否并存。
-
分库分表
-
文件系统
-
缓存系统
第四步:高可用和高性能等
是否有核心瓶颈点算法优化
注意 权衡 Trade-off思想,没有万能钥匙
-
过期数据清理和规整
-
整体负载均衡
-
安全性
-
可监控
Cache:缓存,万金油,哪里不行优先考虑
Queue:消息队列,常见使用Linkedin的kafka
Asynchronized:批处理+异步,减少系统IO瓶颈
Load Balance: 负载均衡,可以使用一致性hash技术做到尽量少的数据迁移
Parallelization:并行计算,比如MapReduce
Replication:提高可靠性,如HDFS,基于位置感知的多块拷贝
Partition:数据库sharding,通过hash取摸
架构建议越简单越好,可以慢慢迭代。
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注Java)
最后
对于很多Java工程师而言,想要提升技能,往往是自己摸索成长,不成体系的学习效果低效漫长且无助。
整理的这些资料希望对Java开发的朋友们有所参考以及少走弯路,本文的重点是你有没有收获与成长,其余的都不重要,希望读者们能谨记这一点。
再分享一波我的Java面试真题+视频学习详解+技能进阶书籍
一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
69477)]
一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
[外链图片转存中…(img-1wlL1lcF-1712975669478)]