首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    京东商城技术架构部 | 我为11.11保驾护航

    京东快速发展的同时,应用规模、数据中心以及机器的规模都同步倍增,在面对如此大规模的机器,应运而生了京东数据中心操作系统(JDOS,JingdongDatacenter OS)。历经多年时间的技术沉淀与发展,JDOS不仅仅作为京东数据中心操作管理资源,更作为京东统一的PaaS平台致力于支撑业务系统快速交付、稳定运行,基础中间件托管提升基础平台敏捷交付。尤其是线上运行的阿基米德系列系统,将应用于实现京东商城数据中心资源智能调度,支撑在线业务系统与大数据计算混合部署融合计算,并节约采购成本。而每一次的11.11都是对JDOS系统的一次检验和挑战,经过无数次的紧张演练,问题排查,系统升级优化,服务应用快速交付;从容支撑大促高峰流量,保障了业务的高速发展。

    03

    MT4行情交易API接口开发手记

    1、用C++编写一个动态库文件,在里面实现行情和交易数据调用接口,将报价数据和K线数据写入数据库中,并从数据库中获取外汇量化系统发出的交易指令。 2、在MT4中编写EA文件,在MT4上不间断运行,从MT4平台实时获取报价和K线数据,并调用动态库写入数据库中,于此同时,不断从数据库中获取交易指令,再调用MT4的交易指令完成交易。 采用此种方法的好处就是兼容性强,只要打开MT4软件运行EA,就可以完成行情和交易接口的获取,也不用管是哪个外汇平台,即使MT4软件升级了也能继续用。缺点就是必须打开一个MT4软件专门获取行情和报价数据,同时每个交易的账户也必须要运行一个MT4软件,比如有10个外汇账户,就必须运行10个MT4软件。交易账户不多的话,运行速度和各方面指标也尚可接受,周末都不用重启或关闭,基本上实现7X24小时不间断运行。 一晃自己的量化系统就运行了几年了,中间也不断进行各种优化,但随着交易账户的不断增加,对软硬件的考验就越来越高了,一台普通的服务器,同时运行10多个账户就感觉有点吃力了,毕竟MT4本身就是一个大型的行情和交易软件,要占用不少软硬件资源,还要加上数据库服务器,现在感觉3、4台服务器都不够用了,网络带宽也开始吃紧,已经到了非改不可的时候了。 对于MT4行情和交易的API接口,自己一直都有耳闻,据说这种API接口,可以直接连接MT4行情和交易服务器,而且可以不用管是哪家外汇平台,只要该平台支持MT4软件即可使用。现在市面上很多跟单系统和跟单平台,就是通过该API接口来实现跟单服务的,但感觉这种API接口应该不是MT4软件开发商推出的,属于第三方软件,甚至有可能就是通过对MT4软件进行逆向分析提取出来的东西,一旦MT4软件升级了,就有可能导致API接口失效。记得以前网上就有通达信的行情和交易接口,可以获取国内A股行情并实现交易,自己当时还付费买了一套回来并使用了一段时间,据说也是逆向分析通达信系统得来的,但用了一段时间后,随着通达信软件和券商后台系统的升级,就无法使用了。 去年初的时候,自己就获取了一套MT4行情和交易接口及相关调用资料,但一直未去深入研究,因为该接口就仅仅是一个DLL文件,需要在Window 的.Net 平台下用C#开发和调用,自己对C#并不熟悉,这种托管DLL用其它的开发语言也不好调用,最主要是当时的重心和精力都放在量化系统和缠论策略的开发和优化上,对这种可有可无非要不可的东西实在无暇兼顾。但想着以后随着账户的不断增加,这种API调用接口肯定要用到,毕竟同时打开几十个MT4软件来实现交易接口太费资源了!自己也曾想到花点钱请别人开发,但想着要和自己的量化系统深度融合在一起,沟通和开发起来也挺麻烦,再加上自己本身就是程序员出身,还是适当的时候自己开发吧!从那时起,闲暇时间自己翻看一下C#的编程书籍,了解一下C#的语言和用法,先为以后的使用打点基础。 上周,将自己几个要完成的开发工作按重要性和紧急性排列出来各种比较后,终于决定将MT4API接口的开发提上日程了,说干就干,在电脑上安装好VS2019后,这个星期就忙着搞开发了。整个接口的需求和流程其实自己已经非常清晰,唯一不足的地方是对VS2019和C#还不熟悉,但开发语言都是相通的,不懂不会的地方就查查书,或者百度及CSDN上搜索一下就好了。 花了两天时间,完成了大致的软件界面,并实现了行情和交易接口的简单调用,成功返回了想要的各项数据,开发工作挺顺利,各项功能正慢慢实现。自己是用真实的交易账户来测试的,想着这样频繁的测试,不断登录和退出,途中还会有不少出错和非法调用,会不会引起外汇平台的警觉,如果把自己的账户封禁掉,那可就麻烦大了,因此马上申请了个模拟账户来测试,结果悲剧了,接口竟然无法登录了,返回Old Version,看来平台的模拟账户后台服务器已经升级了,不再支持这个接口,而真实账户的后台服务器,可能考虑到兼容性的缘故,还没有进行更新,或者还兼容这个接口版本,因此还能使用。记得去年底有一段时间,听说很多跟单系统或跟单平台都无法使用了,就因为MT4软件商强制升级了一次,有的MT4后台服务器已经不再支持这个接口了。想着这样下去也不是办法,因此又开始想办法去找这个接口的最新版本,皇天不负有心人,仅半天时间就找到了一个新的API接口版本,不过这个接口有一点点限制。在这里不得不鄙视一下C#,像C#,JAVA这种开发语言开发出来的托管代码,真的很容易被反编译,简直就和真正的源码看起来没有什么差别,因此很快就被我把限制解除了。 正好这两个星期新冠疫情吃紧,有的小区还被封了,羽毛球馆也不让打球了,因此整个星期几乎没有出门过,就窝在家里辛辛苦苦搞开发了,老骥伏枥,像我这种老程序员了,想不到开发效率还挺高,到了今天周五,就把整套接口完成了。现在回想过来,难点上除了本身对C#进行各种熟悉外,怎么优化速度和算法也花了不少时间,这里就通过缓冲区来实

    03

    游戏版本更新小记

    先大概介绍一下项目,卡牌游戏,主要面向女性用户。前期是走IOS市场,后来又移值到Android平台上,在几家大一点的Android渠道上进行运营。Android接入了十几家渠道,比如:91安卓、奇虎360、小米、百度手机助手、安智、联通沃商店、移动MM、电信EGame、联想、酷派、oppo、HTC(聚乐)、魅族(37Wan)、当乐等(后面还有比如豌豆荚、应用宝),IOS也接入了几家:同步推、PP、快用、91、当乐、ITools等。 项目前台使用的Cocos2d-x(V2.2.3) + 公司自己实现的一套MVC 然后绑的Lua,后台使用的是Java。当天更新采取的策略是IOS、Android一起停服更新,这样带来的好处就是前、后端不用维护多个版本,风险同样也大,这么多渠道,首先要提交至少三~四天出包,然后自己内部先测试(登录、注册、充值、重启、断线重连,这个不算游戏内的新增/修改的功能),然后提交包至各渠道进行审核(有被打回的风险)。然后就是各平台上线的时间无法统一,有的平台是手工操作,点一下立马生效,有的需要等待一段时间,有的都不确定多长时间才会生效(像苹果一样,iClound云里下载的可能还是旧的,虽然作为开发者你已经在后台操作放开了),如果每一家渠道对应一组服务器也就罢了,但实际上每一家在不打广告和推广的情况下是不大可能开一组服务器的,这样就会出现几个渠道混服的情况。就会导致有些平台已经审核并通过了,跟它分在同一组服务器的渠道有可能审核被打回了,不让上架,那么作为该平台的玩家就可能比较郁闷了,都不知道何时才能再进游戏,玩家流失的可能性大大提高了。 说了现状,再重点记录一下遇到的一些问题。因为渠道很多,SDK都不一样,很多SDK不提供SDK内强制更新机制,就导致玩家不知道从哪下载最新的包。有的SDK又不允许游戏内置强制更新机制,以免游戏被导入到其它平台造成利益分成的损失。各家SDK的水平真是参差不齐,导致我们更新后,遇多很多玩家不知道如何更新游戏,一登录游戏又会提醒说版本过低,请下载最新的版本。然后很多玩家都不知道自己到底是是在哪个渠道玩,因为所有的Android玩家都在几个大群里,并没有按渠道分群。他只知道他在哪组服里,而他到底是属于哪家平台的无从得知(光看界面看不出来,因为有几家他们的SDK不提供登录系统,只需要接入他们的支付),只要要求玩家提供在游戏内的角色名, 然后再查出他从哪家平台登录的,说起来真是满脸都是累... 还有就是更新的版本,如果替换了SDK则会有潜在的风险,比如最严重的就是影响到帐号系统,这样导致玩家无法玩以前的号了。更新之后我遇到的一个玩家反映无法登录,说QQ号无法登录。我说我们游戏目前没有QQ号登录这一说法啊,不太明白,然后他反映说是安智的平台,截图给我看,就是在安智的SDK登录界面,下面有新浪微博、QQ的授权登录,不曾想安智最近不知改了什么策略,导致qq授权成功后显示的页面为空白,而无法继续游戏了。之前的版本玩家说好的,一更新就出了这个总是,然后我们仔细查了一下,跟安智那边的技术反复沟通,最终安智说同意我们可以不按他们要求的SDK版本号打包。因为如果按照他们强制要求的Android SDK 15打出来的包,在Android 4.4.3下无法显示授权成功的回调页。

    01

    User-agent大全

    一、基础知识篇: Http Header之User-Agent User Agent中文名为用户代理,是Http协议中的一部分,属于头域的组成部分,User Agent也简称UA。它是一个特殊字符串头,是一种向访问网站提供你所使用的浏览器类型及版本、操作系统及版本、浏览器内核、等信息的标识。通过这个标 识,用户所访问的网站可以显示不同的排版从而为用户提供更好的体验或者进行信息统计;例如用手机访问谷歌和电脑访问是不一样的,这些是谷歌根据访问者的 UA来判断的。UA可以进行伪装。 浏览器的UA字串的标准格式:浏览器标识 (操作系统标识; 加密等级标识; 浏览器语言) 渲染引擎标识版本信息。但各个浏览器有所不同。

    03
    领券