后端面试每日一题 如何设计一个系统?,java敏捷开发模式面试题

整个设计过程涉及的技术选型,这里记下每种中间件的限定值

  • 一台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开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注Java)
img

最后

对于很多Java工程师而言,想要提升技能,往往是自己摸索成长,不成体系的学习效果低效漫长且无助。

整理的这些资料希望对Java开发的朋友们有所参考以及少走弯路,本文的重点是你有没有收获与成长,其余的都不重要,希望读者们能谨记这一点。

再分享一波我的Java面试真题+视频学习详解+技能进阶书籍

美团二面惜败,我的凉经复盘(附学习笔记+面试整理+进阶书籍)

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
img

69477)]

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
[外链图片转存中…(img-1wlL1lcF-1712975669478)]

  • 16
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值