首页 > 其他分享 >2017年全年回顾

2017年全年回顾

时间:2024-02-23 09:11:40浏览次数:30  
标签:方案 回顾 优化 全年 查询 数据表 2017 数据 HBase

本文理论上讲应当在2018年Q1的时候发出来,结果出于各种原因,推迟到了现在。


个人收获

基于SpringBootSpring Cloud交付了多个项目,加深了对新技术的理解。
上手大数据平台,在交付项目的过程中,学习HBaseKafkaSparkSQL的调优方法,积累了一定的运维经验。
学习架构设计的理论,在项目交付中积累经验。
学习方案分析和评估的方法,在项目中实战,进而积累经验。
通过面试官课程的学习和考试,掌握了STAR方法,作为面试官参与部门的招聘工作,在实战中积累面试工作的经验。
本年度被动转岗,进入一个全新的业务领域,在陌生的环境中,新的业务,新的角色,逐步站稳脚跟,获得周边领导和同事的认可。

全年参与的项目比较多,接触的人比较多,交流比较多,听到的新鲜事比较多,比如:

  • 常年B即精神离职。
  • 分工决定绩效。
  • 选择大于努力。
  • 人与人的差异没有那么大。
  • 绩效考评的分布比例。

大事记

软件挑战大赛

从16年底一直持续至17年中,我负责的是决赛的裁判平台。
作为主要责任人,完成需求分析、架构设计、开发工作,压力比较大。后期部门接口人看我的状态不好,增加了几个同事一起投入测试和验证工作。
在研发同事的支撑下,大赛决赛当天的裁判工作顺利完成。
但是我个人的结果不太好,辛苦了半年多,结果接口人对我的表现不满意,进而影响了上半年的绩效。

就技术而言,本项目中应用了很多比较新的技术,比如:

  • SpringBoot
  • SpringCloud
    • feign
    • zuul
    • config
    • zipkin
    • admin
  • nginx
  • Docker

同样遇到了一些有趣的话题,比如:

  • 使用MySQL作为数据库,遇到数据目录所在分区被写满的故障,恢复的手段。
  • 使用docker封装比赛环境。
  • wall clock的计时准确性问题。JVM由于存在GC,导致使用Java语言的选手,需要考虑额外的补偿。
  • 参赛选手使用的部分算法。
    • 蚁群算法
    • 网络流算法
    • 模拟退火算法
    • 遗传算法

这件事情耗费了很大一块精力,中间有很多故事,本来想详细记录下来,但想想事情都过去了,就算了。

部门的新项目

从17年中持续至17年的7月底。
大赛结束之后,回归部门的新业务。
有机会尝试当时比较新颖的技术,比如SpringBootSpringCloudAngularJSDockernginxangularJS等。
只可惜设计团队的胃口有点大,同时外部形势不明确,导致需求、方案不太稳定。另外涉及的技术点比较多,开发团队的积累不足,从而导致加班很多,但可惜项目的结果不太好。

SDN产品

XX产品线被解散,于是在领导的运作下,我和几个同事被提前输出到SDN产品团队,期望占据好一些的位置。这个变动并不意外,在参与原部门的新业务时,周边不时传一些小道消息,只是苦于位置太低,得到的消息都是碎片化的。
既来之,则安之。
输出到新的产品团队后,面对陌生的领导、工作方式,以及全新的业务,内心充满了忐忑。
好在几个小伙伴同心协力,一起努力,完成了换岗后的第一次大考,大家都通过了考验。

很快,我接手了性能特性DE的工作,直面老大难特性的毒打。
老大难特性基于大数据平台的如下组件实现:

  • Spark
  • Kafka
  • HBase
  • Zookeeper

关键业务流程
说起来并不复杂,简单总结如下:

  • 设备端
    • 使用protobuf编码统计数据。
    • 使用统计信道上报数据。
  • SDN服务端
    • 适配器在统计信道接收数据。
    • 适配器基于业务规则校验,重新编码后将数据写入Kafka
  • SDN服务端统计业务
    • 基于Spark实现的流式计算任务,提交至大数据平台运行。
    • 流式任务。
      • Kafka中提取数据。
      • 基于SparkSQL执行汇总统计。
      • 汇总结果写入HBase的数据表,时序表。
  • 查询服务
    • 应用服务器,按照一定条件从HBase的数据表中提取原始数据。
    • 依据业务规则加工原始数据。
    • 返回处理结果,供界面呈现。

老大难特性存在的问题

  • 统计数据的流式任务
    • 任务故障,导致跌零。
    • 统计数据不准确。
    • 可靠性不足,节点故障时可能导致任务整体挂掉。
  • 查询服务
    • 不合理的查询方式。
    • 查询超时。
    • 多用户并发查询,体验差。
    • 数据处理策略实现不正确,比如手写的排序算法,存在很多错误。

设计类的问题

  • 基于HBase表的存储
    • Key过长。
    • Key的设计,不满足查询要求。
    • 写入数据时,相关操作未做调优。
  • 查询服务
    • 缺少缓存层,考虑到短时间内、相同条件的查询条件,查询结果不变,相关数据如果放在缓存内,可以有效减少对HBase表的查询操作,缩短查询路径,改善操作体验。
    • 查询操作的实现不合理,未充分利用HBase的特性以及对应业务的特点。
  • 统计结果预期占用空间,不清楚。

主要的优化手段

  • 业务方案的优化。
    • 裁剪掉不必要的业务。
    • 聚焦业务,调整统计图表的呈现顺序。
      • 非关键的数据图表放到次级页面。
      • 关键的数据图表的数据,预置到缓存中。
  • 大数据组件的基本参数的优化方案。
    • JVM的GC算法及参数。
    • JVM的内存参数。
    • JVM的CPU、内存资源的评估方案。
  • Kafka
    • topic是确定的,优化partition的数量。
    • 优化数据在partition的分布策略,改善流式任务加载数据的成本。
  • SparkSQLSQL优化方案。
  • HBase的数据表占用空间的评估方案。
  • HBase的数据表写入数据的优化方案。
  • 界面查询体验的优化方案,包括:
    • HBase的数据表读出数据的优化方案。
    • 数据加工的优化方案。

主要的成果

  • 作为大数据技术的带头人,支撑开发团队定位、修复问题。
  • 作为产品的接口人,和大数据团队沟通,澄清问题,获取技术支持。
  • 支持测试团队,参与疑难问题的攻关。
  • 支撑一线团队,顺利通过客户侧的POC测试。
  • 完善特性的性能方案评估方案。
  • 作为特性的方案设计责任人
    • 看护设计方案,识别方案中存在的问题,并给出解决方案。
    • 与周边特性的设计责任人对接,及时识别方案变动点,并推动在版本中落地。
    • 支撑解决方案SE,澄清特性的各类细节问题。
  • 作为产品团队的接口人,参与B项目的交付工作,参与重要方案的讨论。

标签:方案,回顾,优化,全年,查询,数据表,2017,数据,HBase
From: https://www.cnblogs.com/jackieathome/p/18028137

相关文章

  • 2018年全年回顾
    本文理论上讲应当在2019年Q1的时候发出来,结果出于各种原因,推迟到了现在。个人收获作为产品团队大数据技术的接口人,能力和结果得到了产品团队领导的高度认可,在领导的运作下上半年绩效很好。同时争取到了破格升级的机会。出于个人发展的原因,转岗至另外一个产品团队,开启了在I......
  • Weblogic XMLDecoder反序列化漏洞(CVE-2017-10271)复现
    0x00漏洞简介OracleFusionMiddleware(Oracle融合中间件)是美国甲骨文(Oracle)公司的一套面向企业和云环境的业务创新平台。该平台提供了中间件、软件集合等功能。OracleWebLogicServer是其中的一个适用于云环境和传统环境的应用服务器组件。OracleFusionMiddleware中的Oracle......
  • cs61a回顾
    从1月25开始到2.20,完成第一个项目hog。总结让自己进度慢的主观因素:妄图一次阅读掌握所有知识:违反了《为什么学生不喜欢上学》中大脑不是用来思考的,它的真正作用在于使你避免思考的前提,避免让自己学习新知识感到有阻碍是最重要的。cs61a的课本难度还是有的啊!非母语阅读的困......
  • 2024全年放假日历表及调休安排 用手机便签设置放假倒计时
    对于绝大多数的上班族来说,春节长假已经结束,现在要回归到正常的工作和生活中。为了给生活增加一些“盼头”,很多小伙伴不约而同打开手机日历,查看下个法定节假日是什么时候。下面给大家具体讲一下2024全年放假日历表及调休安排!除去元旦、春节之外,清明节是4月4日至6日放假共3天,4月7日......
  • 复习回顾-回溯算法-46. 全排列
    注意点&感悟:used是全局的,通过改变标记来确定本层是否搜索完毕,用used跳过[1,1,1]这种不用start_index了题目链接:46.全排列自己独立写的代码:查看代码classSolution:defpermute(self,nums:List[int])->List[List[int]]:#不用start_index了|用used......
  • 前端知识回顾概览--vue.js 从入门到精通
    vue目前最火的前端框架之一对vue原理有深入了解可以基于vue开发应用对vue3.0有实战经验1. vue.js基础vue.js简介vue.js模版及指令vue.js事件/数据绑定vue.js组件化标签中的新属性vue.js组件生命周期2. vue.js高级用法mixin复用vue.js动画特效&......
  • 前端知识回顾概览--ES进阶
    了解ES新增特性并熟悉1. ES6规范详解ECMAScript规范发展简介ES6新增API解析&&ESNext规范中的API解析generator/asyncawait简介函数进阶(箭头函数、默认参数)模板字符串对象和数组的扩展用法Proxy、Reflect、Map、Set、Symbolfor...of、迭代器模式、生成......
  • 前端知识回顾概览--JavaScript 高级
     掌握JS语言,针对闭包、原型链等有深入理解对typescript静态化工具熟练掌握精通常见设计模式了解函数式编程 1.this指针/闭包/作用域this指针详解闭包的概念及应用场景作用域(全局作用域/函数作用域)默认绑定、显式绑定、隐式绑定存储空间、执行上下文2.面向对象编......
  • 前端知识回顾概览--商业级项目实战
    1.大厂性能的计算方式与优化方案网页性能指标影响因素客户端缓存策略异步加载按需加载bigpipe浏览器原理与PWA2.大厂前端页面的质量保障单元测试上线规范预发环境线上日志及报警定时自动检查页面3.上列表无限滚动方案不同框架的实现方案渲染卡顿的解决方案高性能......
  • 前端知识回顾概览--原生开发
    1.现代hybrid开发与原理剖析hybrid是什么现代hybrid开发与原理剖析现有开源解决方案源码解析JsBridge原理Android的JsBridge源码分析 2.electron入门与原理介绍electron入门与原理介绍Electron运行时的基本结构分析主进程与渲染进程之间的差异以及相互通信Elec......