美文网首页
后端开发-系统设计开放性试题思路

后端开发-系统设计开放性试题思路

作者: 缘木求鱼的鱼 | 来源:发表于2020-02-25 11:46 被阅读0次

  之前在面试头条后端开发岗位,碰到了一个开放型问题:设计一个短域名系统。leetcode有该方案的讨论,侧重于算法实现,本文主要讨论整体网站设计。

  由于是开发性试题,一般是不提示,不限制,因此清晰的思路尤为重要。对于系统设计,个人工作经验总结是,抓住数据流向这条线来解答。一般分为数据源(数据怎么来,规模多大),数据处理逻辑(数据进入系统如何处理),数据存储方案等三步来设计。

  • a. 数据源

    • 就本题,数据通过接口调用进入后端系统,域名数据量很大,比较分散,系统QPS大时需要通过 DNS轮询 -> LVS集群 -> Nginx -> 后端服务。
  • b. 数据处理

    • 长域名 -> 短域名,短域名 -> 长域名。长 -> 短,采用Hash进行映射(需要解决Hash冲突问题)。 短 -> 长,由于Hash不可逆,所以需要用数据库存储映射关系。
  • c. 数据存储

    • 由于数据量大,查询为主,所以可以用mongo集群存储。
  • d. 其它

    • 系统设计通用设计,包括权限分配,日志监控,代码规范,模块解耦等。

相关文章

  • 后端开发-系统设计开放性试题思路

      之前在面试头条后端开发岗位,碰到了一个开放型问题:设计一个短域名系统。leetcode有该方案的讨论,侧重于算...

  • 目录索引

    开发总结1、Java · 后端开发相关总结2、Web应用系统设计开发经验总结3、常规问题定位不完全手册 系统设计1...

  • 开发流程

    前端开发流程梳理 ```tex 1 产品需求 产品调研 2 设计开发 设计开发 设计评审 3 后端开发 后端提...

  • 前后端分离系统接口设计思路

    直接进入正题,总得分为两块,一块是表结构,另一块为实现思路(仅供参考) 一、 表结构 1、 菜单表(right) ...

  • 2020-11-22 芯片验证概述

    1, 芯片开发流程包括哪几项:用户需求,系统设计,硬件设计,功能验证,后端综合 全部 2,验证人员如果发现了设计问...

  • 面试题目整理(一)

    最近因为各种原因开始换工作,这里整理一下面试题目。 这个是后端研发负责人的岗位的面试题: 1、设计一个秒杀系统或者...

  • 浩瀚汇通

    资深后端开发Java架构师平台/后台电商 岗位描述: 1. 负责微贷类金融产品后端交易系统的架构设计和研发工作; ...

  • FCat用户权限管理项目——angular4、springclo

    FCat是基于Angular4+SpringCloud用户权限系统管理框架,其核心设计目标是分离前后端、开发快速、...

  • 系统设计(八)

    1. 系统设计 什么是系统设计 系统设计需要掌握哪些知识 如何设计和实现一个后端系统服务的设计 系统设计是一个初高...

  • Redis 面试宝典之如何在海量数据中查询一个值是否存在?

    一般面试中考察的题目通常是由三类组成的,基础面试题、进阶面试题、开放性面试题,而本文的题目则属于一个开放性的面试题...

网友评论

      本文标题:后端开发-系统设计开放性试题思路

      本文链接:https://www.haomeiwen.com/subject/ygszqhtx.html