美团实习记录

ShadowC

| 本文阅读量: -

项目/工作

  1. OTP上下游服务梳理

    背景:One-time passward,作为公司内部系统中双重因素认证的关键部分,承担着内部身份鉴权功能。该服务的上下游服务已经不再有准确文档。为后续业务的开展,需要在不影响正常线上服务的前提下,对该服务调用的其他服务、调用该服务的服务进行统计。

    工作过程:初始思路是从公司内部的平台入手,例如查看服务打点记录,而OTP服务暂未接入,且出于安全原因无法接触代码;然后考虑服务器的访问日志,OTP服务通过Nginx进行转发,因此查看了线上访问日志,采样后发现访问IP是公司的Nginx负载均衡集群;最终从公司的Nginx Access log中获取到了访问OTP服务和被OTP服务访问的IP地址。为简化重复步骤编写了脚本来处理重复统计的过程。

    工作结果:整理了服务的上下游依赖关系,为运营同学后续业务的维护和迭代提供了参考。

  2. 平台API整理

    背景:为了后续维护和开发的效率,同时提升平台的工作效能,小组内准备将升级平台。平台对外提供多个接口,为了解平台对外暴露的Url接口情况,同时为后续升级作参考,需要统计扫描平台目前的对外API。

    工作过程:参考静态扫描功能,用脚本对项目的代码扫描。实际为用脚本统计一个文件夹下的所有文件内,以特定格式存在的字符串,考虑到一些边界条件(如注解的参数可能换行、注解可能有若干方法)后,可以完整扫描出API。同时方便查看,按照文件分段,按照Markdown表格格式输出。

    反思:对外API的统计,也可以参考工作1中统计访问日志的方法,可以引入访问频次信息,但也可能因为统计时间范围的原因漏统计一些信息。

  3. Url去重效果评估

    背景:平台将Url作为资产,需要对被外部访问过的Url进行扫扫描,但是外部访问的Url量级过大,需要进行去重后再使用。因为对去重的方法进行了修改,需要对比改进后的算法去重效果。

    工作过程

    1. 根据已有的算法去重思路,编写简化但实现不同的去重脚本,主要思路是用请求的Method + 省略参数值和替换路径参数后的Url作为标识符。

    2. 线下对比:在算法同学去重的方式之外,根据简化版的Url去重脚本,拉取某日的数据作为对比,根据编写的去重算法分别给出原始算法、改进算法的差集,以及算法漏过滤的情况。 3. 定时检查:为方便算法同学后续迭代,将对比过程从线下手动拉取数据对比转移到线上,通过定时执行ETL任务的方式,将补充的Url存入Hive表中。

    工作结果

    1. 形成两次Url去重评估的文档;
    2. 部署Hive2Hive定时任务。

    最终结果是形成定时更新的补充记录表,供算法同学迭代使用。

  4. 代码规范回顾

    背景:项目组提升代码质量,需要对现有的代码根据代码规范进行检查,根据Idea中阿里java代码规范插件的输出,统计存在的问题。

    形成文档,供后续开发和代码规范化参考。

  5. 常规开发工作

    按照分配到的需求,完成日常开发,主要有:

    1. PLUS优化-V2
    2. Mafka消费报警

项目/工作中收获

编码能力

  1. 进一步熟悉Java语言在实际工程中的使用,包括如何合理利用公司搭建的平台(Mafka等)跟踪代码的实际运行状况;
  2. 学习了大数据平台Hive 的基本使用方法,尝试构建了千万级别数据的处理过程;
  3. 首次尝试用Python处理亿条级别、GB量级以上的纯文本数据,并且在完成工作的同时锻炼了Python开发技巧,提升开发效率;
  4. 更加深入地了解和使用版本控制工具Git和依赖管理工具Maven。