Druid在有赞的实践

Druid在有赞的实践,第1张

Druid 是 MetaMarket 公司研发,专为海量数据集上的做高性能 OLAP (OnLine Analysis Processing)而设计的数据存储和分析系统,目前 Druid 已经在Apache基金会下孵化。Druid的主要特性:

Druid常见应用的领域:

有赞作为一家 SaaS 公司,有很多的业务的场景和非常大量的实时数据和离线数据。在没有是使用 Druid 之前,一些 OLAP 场景的场景分析,开发的同学都是使用 SparkStreaming 或者 Storm 做的。用这类方案会除了需要写实时任务之外,还需要为了查询精心设计存储。带来问题是:开发的周期长;初期的存储设计很难满足需求的迭代发展;不可扩展。
在使用 Druid 之后,开发人员只需要填写一个数据摄取的配置,指定维度和指标,就可以完成数据的摄入;从上面描述的 Druid 特性中我们知道,Druid 支持 SQL,应用 APP 可以像使用普通 JDBC 一样来查询数据。通过有赞自研OLAP平台的帮助,数据的摄取配置变得更加简单方便,一个实时任务创建仅仅需要10来分钟,大大的提高了开发效率。

Druid 的架构是 Lambda 架构,分成实时层( Overlord、 MiddleManager )和批处理层( Broker 和 Historical )。主要的节点包括(PS: Druid 的所有功能都在同一个软件包中,通过不同的命令启动):

41 有赞 OLAP 平台的主要目标:

42 有赞 OLAP 平台架构

有赞 OLAP 平台是用来管理 Druid 和周围组件管理系统,OLAP平台主要的功能:

OLAP 平台采用的数据摄取方式是 Tranquility工具 ,根据流量大小对每个 DataSource 分配不同 Tranquility 实例数量; DataSource 的配置会被推送到 Agent-Master 上,Agent-Master 会收集每台服务器的资源使用情况,选择资源丰富的机器启动 Tranquility 实例,目前只要考虑服务器的内存资源。同时 OLAP 平台还支持 Tranquility 实例的启停,扩容和缩容等功能。

流式数据处理框架都会有时间窗口,迟于窗口期到达的数据会被丢弃。如何保证迟到的数据能被构建到 Segment 中,又避免实时任务窗口长期不能关闭。我们研发了 Druid 数据补偿功能,通过 OLAP 平台配置流式 ETL 将原始的数据存储在 HDFS 上,基于 Flume 的流式 ETL 可以保证按照 Event 的时间,同一小时的数据都在同一个文件路径下。再通过 OLAP 平台手动或者自动触发 Hadoop-Batch 任务,从离线构建 Segment。

基于 Flume 的 ETL 采用了 HDFS Sink 同步数据,实现了 Timestamp 的 Interceptor,按照 Event 的时间戳字段来创建文件(每小时创建一个文件夹),延迟的数据能正确归档到相应小时的文件中。

随着接入的业务增加和长期的运行时间,数据规模也越来越大。Historical 节点加载了大量 Segment 数据,观察发现大部分查询都集中在最近几天,换句话说最近几天的热数据很容易被查询到,因此数据冷热分离对提高查询效率很重要。Druid 提供了Historical 的 Tier 分组机制与数据加载 Rule 机制,通过配置能很好的将数据进行冷热分离。
首先将 Historical 群进行分组,默认的分组是"_default_tier",规划少量的 Historical 节点,使用 SATA 盘;把大量的 Historical 节点规划到 "hot" 分组,使用 SSD 盘。然后为每个 DataSource 配置加载 Rule :

提高 "hot"分组集群的 druidserverpriority 值(默认是0),热数据的查询都会落到 "hot" 分组。

Druid 架构中的各个组件都有很好的容错性,单点故障时集群依然能对外提供服务:Coordinator 和 Overlord 有 HA 保障;Segment 是多副本存储在HDFS/S3上;同时 Historical 加载的 Segment 和 Peon 节点摄取的实时部分数据可以设置多副本提供服务。同时为了能在节点/集群进入不良状态或者达到容量极限时,尽快的发出报警信息。和其他的大数据框架一样,我们也对 Druid 做了详细的监控和报警项,分成了2个级别:

Historical 集群的部署和44节中描述的数据冷热分离相对应,用 SSD 集群存储最近的N天的热数据(可调节 Load 的天数),用相对廉价的 Sata 机型存储更长时间的历史冷数据,同时充分利用 Sata 的 IO 能力,把 Segment Load到不同磁盘上;在有赞有很多的收费业务,我们在硬件层面做隔离,保证这些业务在查询端有足够的资源;在接入层,使用 Router 做路由,避免了 Broker 单点问题,也能很大的程度集群查询吞吐量;在 MiddleManager 集群,除了部署有 Index 任务(内存型任务)外,我们还混合部署了部分流量高 Tranquility 任务(CPU型任务),提高了 MiddleManager 集群的资源利用率。

在有赞业务查询方式一般是 SQL On Broker/Router,我们发现一旦有少量慢查询的情况,客户端会出现查询不响应的情况,而且连接越来越难获取到。登录到Broker 的服务端后发现,可用连接数量急剧减少至被耗尽,同时出现了大量的 TCP Close_Wait。用 jstack 工具排查之后发现有 deadlock 的情况,具体的 Stack 请查看 ISSUE-6867 。

经过源码排查之后发现,DruidConnection为每个 Statement 注册了回调。在正常的情况下 Statement 结束之后,执行回调函数从 DruidConnection 的 statements 中 remove 掉自己的状态;如果有慢查询的情况(超过最长连接时间或者来自客户端的Kill),connection 会被强制关闭,同时关闭其下的所有 statements ,2个线程(关闭connection的线程和正在退出 statement 的线程)各自拥有一把锁,等待对方释放锁,就会产生死锁现象,连接就会被马上耗尽。

在排查清楚问题之后,我们也向社区提了 PR-6868 。目前已经成功合并到 Master 分支中,将会 0140 版本中发布。如果读者们也遇到这个问题,可以直接把该PR cherry-pick 到自己的分支中进行修复。

目前比较常用的数据摄取方案是:KafkaIndex 和 Tranquility 。我们采用的是 Tranquility 的方案,目前 Tranquility 支持了 Kafka 和 >

欧服的好处:

全英文。

赚钱赚月卡比较容易。

欧服玩家数是国服的两三倍甚至五六倍,因此竞争更加激烈,换句话说欧服的硝烟味儿比国服浓。

欧服的缺点:

还是英语,语言障碍坑死,不懂英语你就悲剧了。此外欧服的华人联盟,被各国玩家挤压不说,还搞内讧。

欧服感觉还是没有国服的氛围好,也许是因为我们是中国人,对于祖国同胞比较亲,跟一帮老外玩连个面基的机会都没有。

主权联盟大概在国服更好混,毕竟国服时差党少,不用担心凌晨三四点对面一大波舰队来把杆子和空间站拆了。

《星战前夜》(英语:EVE Online)是由冰岛CCP Games所开发的大型多人网络游戏

In the morning, the sun has not shown up and the tranquility is over the school Most children ,accompanied by the raremorning cool are still enjoying their dreams Some old people are doing their morning excises silentlyA breeze is passing by,dropping the dews on the leaves in the air and making the air wetIn the corner of this campus under a willow a young child was lying, with his eyes fixed on a small hole next Sunddenly, he seemed to find something,aLso he used a twig to dig at first, then blowed the wind through the hole, and poured the water in it A cicada larvae , with nohere to escape, had to climb out from the hole and became the child's preyThe child is joyfull with this He put his hunt into a bottle and continued with his huntingThen my son was just five years old, but he coud tell me when the cicadas lay eggs, and when moltedI was astonished by his ability of observation I saw the hope from his innocence
In fact, my son who is just like other children of his age, grows up with a dynamic nature In our memory, son was active in any naughty actions without even a moment of rest The first time he was put on trousers, I found the trousers freyed badly when was doing wahsingThe new shoes we bought for him were worn out that could not even cover his tiptoesAnd his legs and hands were hurted badlyMy mischievous son often dumbfounded his parents by some tricksHowever, the child is the parents' treasure, the source of happines of the family,and so no matter how tired and painful they are parents would not haveany complaint words

8月4日,由冰岛Crowd Control Productions(简称CCP)正式授权,网易 游戏 和CCP合作开发的EVE官方合作手游《EVE星战前夜:无烬星河》开启预下载, 游戏 将于8月5日正式上线


《EVE星战前夜》


事实上,改编成手游的原作并不简单,《星战前夜》(英语:EVE Online)是由冰岛CCP Games工作室所开发的一款MMO 游戏 。 游戏 背景设定在太空中,玩家可以驾驶各式自行改造的船舰穿梭在超过七千个行星系中。


同时《星战前夜》拥有高自由度,玩家能进行各式的活动:制造、采矿、贸易和战斗(包括PVP及PVE模式),玩家可从事的活动类型随着技能的增长而增加,即使玩家没有登录 游戏 中, 游戏 中的技能训练随时都进行着。


《星战前夜》全球有两个服务器,分别独立运行 游戏 ,其数据不相通。分别称为“晨曦”(中国服务器)和“宁静”(世界服务器),它们各自服务中国区内的玩家和其它国家的玩家,不过玩家可以自行选择服务器。


所有使用“宁静”服务器的玩家皆联机至一台超级电脑所架设的服务器 Tranquility(“宁静”),该服务器曾被认为是 游戏 工业上最强大的超级电脑


《星战前夜》也获得了许多包括GDC在内的世界 游戏 大奖,曾在海外著名 游戏 网站“MMORPG”中多次获得“世界最佳 游戏 ”称号,其制作素质还使它被纽约现代艺术博物馆等知名展馆收录。


EVE之于冰岛就像是《巫师》之于波兰,可以说是冰岛的国宝级 游戏 ;那么,这样一款如此经典的 游戏 ,改编的手游玩家反应如何呢?


《EVE星战前夜:无烬星河》


由网易发行的《EVE星战前夜:无烬星河》于去年8月在海外地区上线,目前, 游戏 谷歌商店评分41/5分,在谷歌商店有5W+的 游戏 评价:


尽管 游戏 的评分还算不错,不过 游戏 的排名情况并没有很理想:

以美国地区iOS为例, 游戏 上线以来畅销榜上最高的排名154名,此后便一直呈现下降趋势,目前 游戏 上线一年,在iOS畅销榜上的排名也基本在600名左右;


在全球范围内, 游戏 iOS畅销榜排名最高的是在白俄罗斯,为65名,在畅销榜前500的国家也仅有14个;


而在玩家评价上,在浏览了数百条玩家评价后, 游戏 日报Ada发现这些评价基本上都可以用“心情复杂”来形容,玩家们评价的句式也可以用“虽然但是”来概括:


虽然 游戏 很好但并不是适合所有人:


虽然 游戏 好玩是好玩但是现在好像变成抢钱 游戏 了

虽然 游戏 画质和表现都很好但是不适合休闲玩家:


从玩家们复杂的陈述中Ada也大概总结除了几个要点: 游戏 本身是好 游戏 ,但是上手不易,对于新手玩家门槛较高,而EVE最具特色的高度开放和对现实 社会 的模拟也让玩家表示不氪金在弱肉强食的 游戏 世界里玩不下去;


这一点从国内老玩家的评价中也能看出,许多新手玩家被拐去做矿工,消磨了对 游戏 的热情。


不过,国服玩家对 游戏 的期待还是很高的, 游戏 官网上的预约人数就有500w+, 游戏 还未正式上线,TapTap上的 游戏 主页玩玩家评价也有5000+


截止至发稿时间, 游戏 的免费榜排名为第5名;



至于 游戏 正式上线如何, 游戏 日报英文版BloomGameR也将保持关注。

基本游戏界面
Alt-F4 or Alt-q -退出Warcraft III
Alt-O -打开选项菜单
Alt-h -打开帮助菜单
Alt-s -打开存盘菜单
Alt-l -打开读取存档菜单
F6 -快速保存游戏
F10 -打开/关闭主菜单
Ctrl-s -开/关声音
Ctrl-m -开/关音乐
Enter -打开默认的谈话窗口
Shift-Enter -打开对所有游戏里头的人的谈话窗口
Ctrl-Enter -打开对盟友的谈话窗口
Print Screen -将屏幕截图为TGA格式的文件并保存在你的WC3安装目
录下的SCREENSHOTS目录
Esc -返回上个菜单
Insert -将镜头向左旋转
Delete -将镜头向右旋转
鼠标轮:上滚-放大镜头
鼠标轮:下滚-缩小镜头
按下鼠标轮: -按住可以移动鼠标来在地图上移动
方向键-可以在地图上移动
基本游戏指令
鼠标 左键单击-选定单位,建筑,按下命令的按钮,指定作用目标
·选定屏幕上的单位和建筑
·激活单位的指令按钮
·确认一个命令的目标,建筑或者宝物,技能的放置地点
·在英雄的物品栏中使用一个宝物
·丢弃或者交给其他英雄宝物
·点击小地图可以将屏幕移动到点击处
·如果你的部队是混编的,单击其中的一个单位可以激活那组单位以便
使用特殊技能
右键单击-在目标的单位/建筑,地面,或者小地图上进行智能的活动
·地面-移动单位到目的地,即使路上有敌人攻击也不还击
·敌人单位/建筑-攻击目标
·自己的单位或者友军-跟随目标行动
·树木/金矿-移动单位到目的地(如果是收集资源单位,则是采集此项资
源)
·地上的宝物-英雄走过去捡起宝物
·在英雄物品栏里头的宝物-捡起宝物
·正在确定法术等的目标的时候-取消命令
·正在确定法术等的目标的时候在小地图上右击-把屏幕移动到小地图
点击的地方
键盘 Esc -取消指令
Tab -在编队中的相同单位的小组之间切换
Alt (如果在发出命令的同时按下) - Overrides formation movement
during an action
Alt-G -在小地图上发信号按下后点击小地图确认给盟友发出信号的目

Alt-T -开/关在小地图上显示地形
Alt-A -开/关简单颜色设置(你自己一种颜色,所有的盟友一种颜色,所有的敌人一种颜色)
Alt-F -开/关阵型模式当打开的时候,肉搏兵种会自动排列在远程攻击兵种前面
Ctrl (如果在发出命令的同时按下) -只对选定的兵种发出命令
Ctrl + # -将选定的部队编制为#号部队
Shift + # -将选定的部队加入#号部队
# -选定#号部队,连续按下2次则将屏幕移动到部队那里
F1-F3 -选定1-3号英雄连续按下2次则将屏幕移动到英雄那里
F8 -循环选定空闲的工人不断的在空闲的工人之间切换
F9 -打开任务记录窗口可以让你查看所有的主要任务和可选任务以及完成的状态
F12 -多人游戏下是打开聊天记录窗口,单机模式下是打开全部消息的记录窗口聊天记录窗口记录了所有你发出和收到的信息,记录窗口则保存了你在此关中从NPC处获得的消息或者提示
Backspace -把屏幕中央移动到你的城镇中心
Spacebar -把屏幕中央在过去的8个事件的发生点循环移动
Alt-C or Ctrl-C -把屏幕中央移动到你选定的单位处
Shift+选定单位-从当前选定的部队中添加/删除点击的单位
CTRL+选定单位或者双击单位-选中屏幕附近所有的此种单位

荆棘光环(Thorns Aura):
让一定范围的我方部队被一层充满荆棘的盾所环绕,给那些攻击他们的近战单位造成伤害。
级 持续 间隔 耗魔 出手距离 作用范围 作用目标 效果 英雄级
1 无限 - - - 90 天空、地面、友军、自身 反馈给敌人10%的伤害 1
2 无限 - - - 90 天空、地面、友军、自身 反馈给敌人20%的伤害 3
3 无限 - - - 90 天空、地面、友军、自身 反馈给敌人30%的伤害 5
宁静(Tranquility)(终极魔法):
在大范围内降下生命之雨,每秒恢复我方单位生命20点 (快捷键 "T")。
级 持续 间隔 耗魔 距离 作用范围 作用目标 效果 英雄级
- 30秒 60秒 125 - 90 天空、地面、友军、自身 每秒恢复20点生命 6
宁静介绍
最好在宁静效果结束前,将你的部队集中到宁静的范围内恢复生命
对抗宁静
这个技能必须要森林守护者一直保持施法状态才可以发挥最大效果。攻击森林守护者逼他移动可以中断这个魔法,或者将对方的部队引出宁静的作用范围进行战斗
宁静可以被如下魔法打断:
人族: 山丘之王 - 风暴之锤
人族: 山丘之王 - 击昏
兽族: 狼骑兵 - 诱捕
兽族: 牛头人酋长 - 战争践踏
兽族: 巫医 - 静止陷阱
兽族: 暗影猎手 - 妖术
暗夜精灵: 猛禽德鲁依 - 飓风
暗夜精灵: 森林守护者 - 缠绕
不死: 恐惧魔王- 睡眠
不死: 恐惧魔王- 地狱火
不死: 地穴领主- 穿刺
中立: 暗黑射手 - 沉默
>

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/13446188.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-08-08
下一篇 2023-08-08

发表评论

登录后才能评论

评论列表(0条)

保存