锤子简历品牌推广师
java电项目简历
作者:锤子简历 2021/03/01 04:50:00
阅读 157

求职意向

Java开发工程师 北京 薪资面议 随时到岗

教育背景

2020.x -2020x 锤子简历大学 应用物理学(本科)

C语言、数据结构、高等数学、概率论与数理统计、普通物理学、量子力学等。

2020.x -2020x 锤子简历大学 软件工程(硕士)

离散数学、计算机组成原理、Java语言程序设计、数据结构、操作系统、数据库系统原理等。

工作经验

2020.x -2020x 锤子简历信息技术有限公司 Java开发工程师

  • 负责外卖服务稳定性保障平台的设计与编码实现;
  • 主要参与业务与性能时序数据的抓取和通知;
  • 业务异常检测模块的搭建

2020.x -2020x 锤子简历信息技术有限公司 Java开发工程师

  • 负责评论微服务、招商微服务和专场微服务的设计与编码实现;
  • 参与基于Docker和Kubernetes的公司内部自动化提测平台的设计与编码实现;
  • 参与公司数据中心项目,负责数据更新模块的设计与实现和提供自定义查询功能微服务的设计与实现。

2020.x -2020x 锤子简历信息技术有限公司 Java开发工程师

  • 负责编写需求分析、概要设计和详细设计说明书;
  • 负责项目中部分模块的服务器端开发;
  • 负责项目中报表部分的开发。

项目经验

2020.x -2020x 外卖业务稳定性保障平台 Java开发工程师

外卖服务稳定性保障平台从实时业务监控数据出发, 帮助RD快速的发现问题的根源, 提供标准化解决问题的建议, 最终达到自动触发降级限流开关

项目职责
  • 负责从CAT中抓取配置了监控的业务实时数据,保存到Elasticsearch中;
  • 负责将完整和正确的业务实时数据推送给异常检测系统; 
  • 根据时序数据流,对配置了异常检测的图表线进行异常检测:简单上下阈值、日环比、周同比和自动化异常检测;
  • 将异常检测结果进行收敛后通知给业务方,并根据异常检测结果进行链路的故障诊断。
实现要点
  • 由于配置的业务数据指标比较多,按分钟维度进行抓取的量比价多,我们将需要抓取的指标通过Kafka的多Partition的机制进行分发。
  • CAT服务的不稳定性操作可能出现抓取失败的情况,我们使用一个失败队列保存抓取失败的指标进行重试。 
  • 对于抓取成功的实时数据指标进行可信性打标,对于不可信的时序数据进行异常检测和故障诊断时需要分析对应的事件。 
  • 异常检测中的自动化异常检测是对指标的时序数据每天使用HoltWinter预测出基准线,并拿实时的时序数据与基准线进行相关度异常检测。 
  • 故障诊断是对业务链路进行故障诊断,我们根据QA提供的核心链路,先对链路上的每个业务指标进行异常检测,当出现异常点时,通过链路上下游关系和事件如网络抖动事件、发版事件等分析出链路上具体的服务异常造成的业务异常,通知给相关业务方。

2020.x -2020x 数据中心项目 Java开发工程师

数据中心是一个基于Canal数据订阅、Nifi数据传输的实时OLTP系统,解决了公司各个业务部门之间实时数据同步和定点数据峰值更新的问题。数据中心通过对数据逻辑分层,分为原始数据层、视图层和业务逻辑层,从而对使用数据中心相关数据的开发和产品人员透明化。
项目职责
  • 负责数据中心数据流订阅和数据转化模块的设计与实现;
  • 负责自定义查询业务数据层微服务的设计与实现。
实现要点
  • 数据响应优先级:毫秒级延迟的数据通过基于binlog增量订阅的Canal服务进行数据同步,秒级别以上或统计数据通过定时任务和Kafka消息队列进行数据同步;
  • 通过数据带有更新时版本防止数据乱序时造成的数据错乱问题;
  • 数据的定义、转换等都是通过SQL的方式进行,数据的流向则根据数据之间的血缘关系,通过Nifi管理和监控;
  • 外部数据源同步到数据中心的数据称为原始数据层,基于原始数据层对数据进行抽取、转换和标准化的数据称为视图层,视图层为数据中心开发人员服务,基于视图层为满足不同业务方需求而实时计算的自定义查询称为业务逻辑层,业务逻辑层的数据并不落地,而是通过每次查询实时计算;
  • 逻辑层的数据根据业务逻辑层使用方式的不同,保存在Mysql、CouchBase和Elasticsearch中;
  • 自定义查询微服务可以根据不同的业务定义查询Key(相当于业务逻辑层的表)和查询语句(相当于业务逻辑层的数据获取方式),从而自定义查询;
  • 自定义查询微服务为了降低每次查询都需要实时计算而造成的CPU开销大的问题,设计了一套针对业务逻辑层的缓存系统,当接受到查询请求时,先查询缓存中是否有数据,并根据缓存中的数据的版本确定是否需要异步计算。

2020.x -2020x 评论微服务、招商微服务、专场微服务 Java开发工程师

评论微服务、招商微服务和专场微服务都是基于Thrift RPC调用和Mysql、Elasticsearch、Redis等存储,为了提供各个业务模块数据存储与数据展示的微服务。




项目职责
  • 独立负责各个微服务的搭建和需求代码实现;
  • 负责对微服务的维护、优化和部署。
实现要点
  • 创建评论时,为了实现快速响应用户,采用异步队列的方式。当用户创建评论时,则将必要的信息保存到数据库中,保存成功时,则响应用户评论创建成功,并将评论信息发送到Kafka队列中,异步程序负责补全评论的其他详细信息并索引到ES中提供全文检索。
  • 专场微服务相当于一个小型的数据中心,不同业务方通过Kafka队列将专场相关的信息同步给专场服务。由于专场服务提供的是实时有效的数据,则将专场数据保存在Redis中实现快速响应的Key-Value查询,并索引到ES中提供全文查询。
  • 专场服务的数据来源于不同业务方,通过对数据推送Kafka时设置专场Id为消息的Key,从而将同一个专场的数据推送到同一个Kafka的Partition中,消除了多线程同时修改同一个专场数据的问题;而为每个业务方的数据都增加版本校验,从而消除了数据错乱造成的数据错误问题。

2020.x -2020x 自动化提测平台 Go开发工程师

为了解决公司内测试环境混乱、难以管理和使用的问题而开发的一个方便创建、管理测试环境的系统,采用了流行的Docker容器技术和Kubernetes容器调度技术实现的网络隔离的自动化提测平台。
项目职责
  • 负责服务基本信息和服务调用关系管理的架构图系统;
  • 负责通过Kafka和WebSocket技术而实现的实时日志展示系统。
实现要点
  • 为了能在测试工单时,只拉取相关的服务创建隔离区,则需要管理服务之间的依赖关系。服务之间的依赖关系通过服务之间调用时抓包分析后,保存在Cayley图形数据库中,并通过遍历树的方式获取服务的调用关系,从而实现最小化拉取隔离区相关服务。
  • 为了能实时查看容器的运行日志,则将容器的运行日志发送到Kafka队列中,当通过管理界面查看时,使用WebSocket与后端建立连接,后端启动简单的Kafka消费者实时消费队列中的数据并展示到前端。

2020.x -2020x 警务智能应用平台 Java开发工程师

项目描述
  • 以数据仓库为核心的标准数据分析与展示系统;
  • 对采集到的各类公安数据和社会数据通过ET L处理,并存放到数据仓库中;
  • 提供各个主题的数据查询、统计和展示。
项目职责
  • 负责各个模块的需求分析、概要设计和部分模块的详细设计;
  • 负责人员主题和案件主题模块的设计与代码编写。

自我评价

本人为人诚恳、乐观向上、拥有较强的组织能力和适应能力;  

富有团队精神和团队意识,对IT事业有向往,热衷JAVA程序与技术; 
具有多年的Java服务器端开发经验,能够独立完成重要业务模块和核心架构的搭建与实现。

内容来源说明:本文章来自网络收集,如侵犯了你的权益,请联系QQ:2772182309进行删除。