最近接手了一个改造多平台日志服务的需求,经过梳理,我认为之前服务在设计上存在缺陷.经过一段时间的技术方案调研,最终我们决定选择使用 Flink 重构该服务. 目前重构后的服务已成功经受了国庆节流量洪峰的考验,今日特来总结回顾,和大家分享一下经验. 业务需求及背景 在了解改造服务的需求前,我们首先要明确,要解决什么问题以及目前的服务是如何解决的. 当前的业务逻辑还是比较清晰的: 采集同一时段不同数据源的日志: 对采集的数据进行处理: 将处理后的数据上传到指定位置,供客户下载. 我们面临的痛点和难点…
郑昀 创建于2014/10/30 最后更新于2014/10/31   一)选型:Shib+Presto 应用场景:即席查询(Ad-hoc Query) 1.1.即席查询的目标 使用者是产品/运营/销售运营的数据分析师: 要求数据分析师掌握查询SQL查询脚本编写技巧,掌握不同业务的数据存储在不同的数据集市里: 不管他们的计算任务是提交给 数据库 还是 Hadoop,计算时间都可能会很长,不可能在线等待: 所以, 使用者提交了一个计算任务(PIG/SQL/Hive SQL),控制台告知任务已排队,给…
(#)背景 随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,亟需一个治理系统确保架构有条不紊的演进. 单一应用架构 当网站流量很小时,只需一个应用,将所有功能都部署在一起,以减少部署节点和成本. 此时,用于简化增删改查工作量的 数据访问框架(ORM) 是关键. 垂直应用架构 当访问量逐渐增大,单一应用增加机器带来的加速度越来越小,将应用拆成互不相干的几个应用,以提升效率. 此时,用于加速前端页面开发的 Web框架(MVC) 是关键.…
Atitit 开发2d游戏的技术选型attilax总结 1.1. 跨平台跨平台:一定要使用跨平台的gui技术,目前最好的就是h5(canvas,webgl,dom) +js了..1 1.2. 游戏前后端语言的选择(既然用了h5,js就是前端不二选择)1 1.3. Js ide sublime ,webstorm1 1.4. Java ide eclipse mars1 1.5. 使用怎样的h5游戏引擎(推荐dom,cocos2d)1 1.6. Ui编辑器,场景编辑器(dw,)2 1.7. 例外,…
JS爆炸下的技术选型  刘尚奇    ThoughtWorks, 高级咨询师 JS每6个星期出现一个新框架,那么如何进行JS的选型.以下从四个方面来分析. 1.工具 NPM for all the things   用来管理项目依赖就足够了. Webpack    除了资源的loader,还可以做编译构建等. 很多时候只是用NPM +Webpack就足够对前端工程进行构建,打包,压缩等,不用再去引入像Gulp.Grunt这样的工具. 2.类库 react,官方更愿意是一个类库,是mvc中V的部分…
消息中间件的技术选型心得-RabbitMQ.ActiveMQ和ZeroMQ 作者:chszs,转载需注明.博客主页:http://blog.csdn.net/chszs RabbitMQ.ActiveMQ和ZeroMQ都是极好的消息中间件,但是我们在项目中该选择哪个更适合呢?很多开发者面临这个烦恼.下面我会对这三个消息中间件做一个比较,看了后你们就心中有数了. RabbitMQ是AMQP协议领先的一个实现,它实现了代理(Broker)架构,意味着消息在发送到客户端之前可以在中央节点上排队.此特性…
1.前言 Kubernetes 很火,一大批互联网公司早已领先一步,搭建起专有的 PaaS平台,传统企业们看到的 Kubernetes的趋势,亦不甘落后,在试水的道上一路狂奔-- 虽然,Kubernetes很火,并不代表可以"上手即用",基于 Kubernetes的容器编排也不是简单的"拿来主义".在容器圈,除了Kubernetes,还存在着 Mesos.Swarm等分属不同阵营的容器集群管理工具,以及基于这些工具的多个容器云提供商. 腾讯云在 2016年底决定开发…
为什么要换掉fastjson 直接原因是fastjson无法支持注解形式的自定义序列化和反序列化,虽然其Github上的Wiki上说明是支持的.但是实测结果表明:Test类的序列化被fastjson的ASMFactory生成字节码形式的序列化类代理,序列化的逻辑依然为原生而不是自定义的XXX.class. class Test{ @JSONField(usingSerializer=XXX.class,usingDeserializer=YYY.class) private List<A> a…
技术选型和整合开发环境 1.技术选型 博客网站是基于SpringBoot整合其它模块而开发的,那么每个模块选择的技术如下: SpringBoot版本选择目前较新的2.1.1.RELEASE版本 持久化框架选择Mybatis 页面模板引擎选择Freemarker 前台框架选择Bootstrap 后台框架选择AdminLTE 数据库选择Mysql 数据库版本管理选择Flyway 技术选型概览图,如下: 2.代码分包 首先确定本工程为sw-blog(即:守望博客),基础包名为: com.swnote…
技术选型 Unity引擎内置了多人联机的解决方案,涵盖了从最底层的网络数据传输,到不同玩家之间的消息发送,再到游戏大厅这样的高级功能.考虑到Unity官方提供的云服务(Internet Services)在国内的延迟较高,而且需要付费,我们决定采用Steam与Unity相结合的方式.底层用Steam发送网络数据包,中间由Unity负责把各个包整合成游戏逻辑所需要的格式,高层的大厅也使用Steam提供的服务. 说到这里要赞美一下Unity Networking的模块设计,它把具体的网络数据传输细节…