V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 外包信息请发到 /go/outsourcing 节点。
• 不要把相同的信息发到不同的节点
fd1207
V2EX  ›  酷工作

创业公司寻游戏后台架构师(主python)

  •  
  •   fd1207 · 2013-06-03 11:30:24 +08:00 · 7419 次点击
    这是一个创建于 4176 天前的主题,其中的信息可能已经有所发展或是发生改变。
    Hello.. We're KuKool. We design and build fun, engaging digital experiences. We're not strictly designers, or developers ― we're curious technophiles committed to making great interactions.
    Based out of Shanghai but we're a citizen of the world, with 80 friendly, hardworking & super-talented people working here.
    KuKool is built on culture, people and passion, creating a truly special place to work. Our company is friendly, collaborative, multi-disciplne environments, bringing together all the skills and experience necessary to take ideas from concept to reality.
    We embrace a global mindset, welcoming talent from all over the world. We're not big on rank and we encourage an environment where everyone can contribute. If you want responsibility and you can handle it, you'll get it.
    As a design-focus company, we choose our work wisely so our family can always be passionate about theirs. We're always looking for fresh talent to join our team, so check out the opportunities on our website. (www.kukool.cn)

    我们希望您有以下一些能力:
    1、丰富的python经验,因为我们的游戏服务器会基于python快速实现。当然,如果您是高手,现学都可以。
    2、热爱技术,喜欢钻研;
    3、对unix/linux,网络架构,服务器集群及分布式存储等技术有深入了解;
    4、并发量:python 单进程5000. (c++单进程3-5万)。 在性能和速度、可维护性方面我们有选择的做了取舍。
    5、扩展性:架构灵活,增硬件能完美解决并发量问题,而不需要再修改代码。
    6、有较强责任心和职业习惯,能独立按时完成项目计划;
    7、有良好的表达、沟通交流技巧以及优秀的团队协作、管理能力,具有优秀的职业素质,能够承受一定的工作压力,有良好的适应能力和学习能力,有良好的文档编写习惯。

    待遇:
    法定假日、五险一金、标准补贴、有竞争力的薪资,高手可另议。

    有兴趣请发简历到 [email protected]
    第 1 条附言  ·  2013-06-08 17:48:22 +08:00
    改正:
    5、扩展性:架构灵活,能以最小代价增加同时在线用户数量(加服务器、部署配置等)
    27 条回复    1970-01-01 08:00:00 +08:00
    brucexin
        1
    brucexin  
       2013-06-04 16:51:54 +08:00   ❤️ 1
    工作地点是上海?
    fangzhzh
        2
    fangzhzh  
       2013-06-04 17:08:39 +08:00   ❤️ 1
    不用心的失败招聘帖
    dreampuf
        3
    dreampuf  
       2013-06-04 18:22:59 +08:00
    Python 单进程 Qps 上 5k 的除了 gevent 还有什么其他的办法呢?
    muxi
        4
    muxi  
       2013-06-04 21:13:40 +08:00
    @dreampuf 看计算量,如果计算量小的话,5k qps算很少
    ipconfiger
        5
    ipconfiger  
       2013-06-04 21:22:45 +08:00
    python单进程5K并发,看这个量级的话坡主是接触过Python的web开发的。但是这个并发的概念是基于短连接的,基本上就是服务起起来,ab拿来一跑,就出来结果了。这个方式是web的对并发的概念,所以我想请问一下坡主的游戏是端游页游还是手游啊?拿ab跑并发多半是页游的做法,后期用flash的页游也很少用这种方式了。长链接的并发不是这么算地
    muxi
        6
    muxi  
       2013-06-04 21:30:14 +08:00
    @ipconfiger qps 和并发完全是不同的概念,你写这么多是想说明你知道ab么?
    ipconfiger
        7
    ipconfiger  
       2013-06-04 21:47:17 +08:00
    @muxi QPS(TPS)在http的场景下基本就是作为并发量的标准了。你要显能干不用这么刻薄,我不跟你抢这个工作
    dreampuf
        8
    dreampuf  
       2013-06-04 21:56:59 +08:00
    @muxi 求Py实现大于 5k qps 的非gevent server 实现。
    dreampuf
        9
    dreampuf  
       2013-06-04 21:59:25 +08:00
    不给出环境情况下的性能都是耍流氓,各位都把指标背后的环境贴出来吧。
    muxi
        10
    muxi  
       2013-06-04 22:07:40 +08:00
    @ipconfiger

    1、qps 代表处理任务完成数量,而并发不是
    2、即使在http短连接情况时,qps和并发数量相比不是一个量级
    3、并发并不代表完成,而qps是每秒处理的任务,go随便可以跑80w以上的并发,没人敢出来说能跑80w qps
    4、我并不是刻薄,只是觉得你跑偏了,还理直气壮



    @dreampuf

    我说过了5k qps 要看计算量,即使gevent 如果消耗不在io上的话,也很难出让自己的时间片,处理更多的请求
    phuslu
        11
    phuslu  
       2013-06-04 22:09:47 +08:00
    顺便说一句 pypy 2.0 + gevent 现在已经比较可用了,性能提升大约在 100% 左右。
    ipconfiger
        12
    ipconfiger  
       2013-06-04 22:30:41 +08:00
    @muxi

    1.http短连接的并发量不等于QPS,但是,短连接的并发性能是和QPS有比例关系的,大多数标榜并发能力的框架都是通过QPS来作为自己并发能力的佐证
    2.说白了我就是想问坡主是长链接还是短连接。理由下面说明
    3.@dreampuf 沈仙人的 eurasia 号称长链接百万级并发的。但是实际上短连接的话,和gevent基本上在一个级别上的。实现上都差不多。
    如果坡主所说的5000是指QPS的话,不算框架的开销,光是纯业务逻辑的话,每一个Q,都必须在0.2毫秒内执行完,对于Python来说不现实。而如果就但就并发的话,不管是eurasia还是gevnet都可以处理很高的并发连接,又远超5000这个量级,所以问清楚一点坡主。
    @muxi 我觉得你就抓住QPS和并发说事没得意思,坡主没说清楚,我就想办法问清楚,仅此而已,因为坡主很可能是把QPS说成是并发了
    arthur8845
        13
    arthur8845  
       2013-06-04 22:32:34 +08:00
    @phuslu pypy1.9在io和大内存对象上问题比较大,2.0有改进吗
    muxi
        14
    muxi  
       2013-06-04 22:39:27 +08:00
    @ipconfiger 这次回答比较专业 :)

    @phuslu gevent 最新的dev版本修正了不少的问题,pip install的版本其实还是旧的,建议如果使用的话还是github中直接clone比较靠谱,之前我用的时候就遇到不少坑

    pypy 2.0 在内存回收上还不如cPyhon做得优秀,特别是大内存管理,当然也有可能是我没用好
    dreampuf
        15
    dreampuf  
       2013-06-04 22:46:13 +08:00
    @muxi 抱歉,我记错了。应该是50k/s 数据来源,Tornado 给出的答案似乎更优秀。 https://github.com/methane/echoserver/blob/master/README.rst

    单纯并发只是一个方面,工程师的工作就是让这个方面做到最好,祝楼主早日招到人。

    我是来吐槽JD的,“而不需要再修改代码” ,不需要修改代码这种营销词汇对 coder 完全没有吸引力好么,有谁的 Scale 能做到插网线就能扩容的?改配置,重建,这都不算事儿?
    yuelang85
        16
    yuelang85  
       2013-06-04 23:00:16 +08:00
    yuelang85
        17
    yuelang85  
       2013-06-04 23:00:36 +08:00   ❤️ 1
    没有人吐槽楼主网站吗?山寨+bug。。。。
    fd1207
        18
    fd1207  
    OP
       2013-06-08 17:03:09 +08:00
    N人不少:)
    fd1207
        19
    fd1207  
    OP
       2013-06-08 17:03:27 +08:00
    @brucexin 成都或上海都可以
    fd1207
        20
    fd1207  
    OP
       2013-06-08 17:04:31 +08:00
    @fangzhzh 我自己对服务器方面不熟,谢谢你的意见,,
    fd1207
        21
    fd1207  
    OP
       2013-06-08 17:08:25 +08:00
    @dreampuf 谢谢你的回复,我是coder 我知道,,我们的目标是以最小的代价实现扩容,,:)
    fd1207
        22
    fd1207  
    OP
       2013-06-08 17:33:27 +08:00
    @ipconfiger @muxi 请教各位达人, 手游+长连接 后台用python,并发能做到多少呢?1)斗地主类游戏 tcp? 2)RPG类 3)社交类 http?
    xwssole
        23
    xwssole  
       2013-06-08 17:34:00 +08:00   ❤️ 1
    @dreampuf 方便比较多吧,可以裸写select/epoll,也可以用asyncore等库,不过这些都没有什么封装。

    高端的可以用Twisted,集成了很多协议,但是是基于异步回调的处理机制,对于编码或者是测试都不算是一个好的体验!

    Gevent在前2年的PyCon上炒得比较火,通过Greenlet可以将异步的网络访问转化为同步的函数调用,因此很多第三方的库可以直接使用。
    fd1207
        24
    fd1207  
    OP
       2013-06-08 17:41:00 +08:00
    @fangzhzh 我改正,,:)
    fd1207
        25
    fd1207  
    OP
       2013-06-08 17:43:03 +08:00
    @xwssole gevent是个好东东,,
    ipconfiger
        26
    ipconfiger  
       2013-06-08 18:06:07 +08:00   ❤️ 1
    @fd1207 取决于你的TPS,单个Python进程,无论用多牛逼的异步库,每一次请求执行的事务开销制约了每秒的吞吐能力,超过这个阈值,能够hold住再多的连接也会卡。打个比方,如果你实际的逻辑操作用1ms能执行完,我们完全忽视框架的开销,一个Python进程撑死也就能对1000个连接完成响应,再多的就会延迟了。当然实际的时候访问量并不平均,有时候请求多点,有时候请求少点,比如你们的斗地主类型的话,对延迟不是很敏感,也许可以比1000稍高一点。具体多少就看对延迟的容忍度了。一般的做法是开N个进程,N=cpu 核数,后面用redis同步消息
    fd1207
        27
    fd1207  
    OP
       2013-06-08 19:07:19 +08:00
    @ipconfiger 谢谢!
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1363 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 17:40 · PVG 01:40 · LAX 09:40 · JFK 12:40
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.