V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
s609926202
V2EX  ›  问与答

北京求职路,感觉好难啊,, 2 天没一个面试邀请,上来就让给个 homework,,

  •  
  •   s609926202 · 2019-03-11 21:07:58 +08:00 · 2255 次点击
    这是一个创建于 1843 天前的主题,其中的信息可能已经有所发展或是发生改变。

    寻求一下广大网友的援助吧,,贴出题目:

    背景: 两台 linux 服务器 A 和 B,外网网络传输。 Linux 服务器 A 上,不定期会增加大容量数据,比如大量图片,视频和这些数据的数据库关联信息。服务器 A 上有 web 服务,用户会通过 A 服务器上的 web 服务,触发网页中的某个事件,将 A 服务中的这些新增图片和视频以及数据库信息,同步 /上传到 B 服务器中。 Linux 服务器 B,用于存储 A 中同步过来的数据和数据库信息。

    限定:

    1. Php 语言
    2. 用户触发是一次触发,一次触发,同步所有数据,触发必须通过 web 网页上的按钮进行触发,同步由 php 进行
    3. 最好可以进行重复上传检查,多个 A 服务器上传,续传等设计

    提示: 是服务器间同步,而不是 web 端上传,数据已经在 A 服务器上了。所以考虑 web 超时的问题。

    笔试要求:

    1. 用任意方式提供该功能设计,设计规模无要求,满足需求即可
    2. 同步部分,A 和 B 的设计要详细描述所使用的技术,服务等
    3. web 触发的接口以及同步部分,需要有 php 真实代码

    我有俩问题:

    1. 都服务器 A 和 B 了,同步内容怎么不是 rsync 呢,,,
    2. 都服务器 A 和 B 了,不用诸如 S3、OSS 之类的存储服务、
    第 1 条附言  ·  2019-03-12 10:07:09 +08:00
    再贴一下另外几道题吧。。。

    题目二:
    背景:
    linux 服务器上,web 服务,用来展示工艺品,工艺品包含大量大尺寸图片。用户可以在 web 上申请一次打包所有图片,30 张以上,同时进行下载。

    限定:
    1.服务器上保存的图片只有没有水印的原始图片
    2.最终被用户下载的照片,是打了水印的照片,图片尺寸不变,仅仅是加了水印
    3.下载的 30 (或以上)张图片,是一次性下载

    提示:
    注意超时和内存溢出

    笔试要求:
    1.用任意方式提供申请下载,加水印到下载的功能 /接口设计
    2.需要提供 php 真实代码,如果在不同接口 /服务中,提供功能接口即可,请详细描述每个功能的目的

    题目三:
    背景:
    习题 1 中同步到 B 服务器上的照片,需要在 B 服务器的 web 服务上进行展示,但是每张图片尺寸非常大,单张照片在 8-10M,直接在 web 服务上显示,非常影响加载速度,如何进行优化?

    限定:
    1.不能影响习题 1 中的同步速度
    2.不能在 H5 和 js 中做优化,其实本身也没有办法优化

    笔试要求:
    1.用任意方式提供你的设计
    2.优化部分需要有 php 真实代码

    题目四:
    通过 git 管理的代码,开发流程是什么?部署流程是什么?如何做到开发和测试代码和环境的分离?

    题目五:
    画一个中型规模网站的系统结构图
    11 条回复    2019-03-12 16:03:42 +08:00
    hoyixi
        1
    hoyixi  
       2019-03-11 21:15:43 +08:00   ❤️ 1
    你做完了,代码拿走了,然后 不理你了,咋办?:)
    s609926202
        2
    s609926202  
    OP
       2019-03-11 21:19:31 +08:00
    @hoyixi 我觉得这个倒不是问题,关键在怎么实现
    k8ser
        3
    k8ser  
       2019-03-11 22:22:37 +08:00
    估计是这个公司遇到了问题自己解决不了,顺便就当面试题了,什么面试这么详细?还要真实 PHP 代码?
    s609926202
        4
    s609926202  
    OP
       2019-03-11 23:17:16 +08:00 via iPhone
    @k8ser 总共 5 个问题,前三个一环套一环。最后 2 个一个写 git 开发流程,一个画中等规模网站架构图。
    zingl
        5
    zingl  
       2019-03-12 01:20:51 +08:00
    网页一个按钮启动 php exec rsync 增量备份
    next question
    hanbing135
        6
    hanbing135  
       2019-03-12 01:21:58 +08:00 via Android
    感觉这是免费骗代码的吧
    tyrealgray
        7
    tyrealgray  
       2019-03-12 01:39:50 +08:00 via Android
    这种规模的 homework 极其可能是骗方案的
    xfspace
        8
    xfspace  
       2019-03-12 02:02:05 +08:00 via Android   ❤️ 1
    同步文件拿这个魔改就能用 https://github.com/outlandishideas/sync


    用 PHP 同步数据库特么只能拿 binary logging 到 B call system 干吧
    xfspace
        9
    xfspace  
       2019-03-12 02:05:39 +08:00 via Android
    这是舍不得买服务器
    用虚拟主机当备份么

    虚拟主机只有环境权限,没 shell
    🌚
    tomczhen
        10
    tomczhen  
       2019-03-12 03:15:34 +08:00 via Android
    根据文件的数据库关联信息表主键作为同步标志,B 服务器需要记录所有 A 服务器的最后同步主键 ID 以及状态。

    用户在 A 服务器触发任务后,先到 B 服务器获取最后同步的主键 ID,得到下一个同步文件信息。然后用文件信息调用 B 服务器接口,B 服务器根据调用信息下载 A 服务器文件,并记录同步状态,下载完成后,将文件信息写入数据库,更新最后同步主键 ID,接着回调 A 服务器。

    A 服务器根据回调触发下一个同步,然后循环直到所有同步完成。

    考虑到瓶颈应该是网络 IO,对于 A 服务器同步任务并发意义不大,B 服务器则可以根据需要控制并发任务。
    tomczhen
        11
    tomczhen  
       2019-03-12 16:03:42 +08:00
    题目二:
    生成下载地址,celery 异步处理图片。打开下载地址,如果未处理完成则先显示处理状态,如果处理完成则跳转下载。

    题目三:
    上传时由前端生成缩略图一同上传。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3356 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 11:22 · PVG 19:22 · LAX 04:22 · JFK 07:22
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.