V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
tencoldays
V2EX  ›  程序员

eMQTTD(Erlang MQTT Broker)发布 0.5.4-alpha, 完成 200K+并发连接测试

  •  
  •   tencoldays · 2015-03-23 11:28:31 +08:00 · 6862 次点击
    这是一个创建于 3535 天前的主题,其中的信息可能已经有所发展或是发生改变。
    青云上一台8核, 32G内存emqttd服务器。5台2核心, 4G内存测试服务器,建立20万并发连接, 订阅20万Topic, 每秒收发各2万QoS0消息, 20Mbps In/Out流量。共使用了7G内存,40%CPU/核心。

    版本下载: http://emqtt.io/downloads

    项目地址: https://github.com/emqtt/emqttd

    one more thing... 谁有可以做100万连接测试的环境:)
    21 条回复    2015-03-24 18:24:24 +08:00
    tinkerer
        1
    tinkerer  
       2015-03-23 12:09:26 +08:00
    starred.
    siko
        2
    siko  
       2015-03-23 12:11:11 +08:00
    tencoldays
        3
    tencoldays  
    OP
       2015-03-23 13:08:09 +08:00
    @siko 哈哈, 上周被三个印度青年鄙视了...然后改了一个周末
    Numbcoder
        4
    Numbcoder  
       2015-03-23 13:33:17 +08:00
    赞!MQTT 真是好个东西,可惜国内好多公司不识货
    tencoldays
        5
    tencoldays  
    OP
       2015-03-23 13:40:16 +08:00
    @Numbcoder 不能这么说,MQTT 3.1协议规范确实不完善,但去年底的3.1.1规范就很棒了
    yakczh
        6
    yakczh  
       2015-03-23 13:41:53 +08:00
    erlang 会有内存泄露吗/
    llbgurs
        7
    llbgurs  
       2015-03-23 14:48:24 +08:00
    @yakczh 当然会有内存泄漏,可以看看http://www.erlang-in-anger.com/
    tencoldays
        8
    tencoldays  
    OP
       2015-03-23 15:08:32 +08:00
    @yakczh Erlang开发不需要考虑c那种内存泄漏,但要注意进程mailbox、ets数据、binary数据的内存占用。

    总体上,erlang的内存模型,个人觉得比java好。因为Erlang首要考虑软实时和低延迟(Low Latency)。
    carriesong
        9
    carriesong  
       2015-03-23 15:21:03 +08:00   ❤️ 1
    @tencoldays 赞,我们 云巴 也是在做类似的事情,Erlang MQTT Broker 模式,并发到千万级。http://yunba.io 多交流多学习。
    cheng007
        10
    cheng007  
       2015-03-23 15:42:10 +08:00
    @tencoldays erlang的gc不需要像命令式语言那样全局的gc,消耗会小很多,不会应该gc产生性能颠簸。go在这方面还是有问题。
    tencoldays
        11
    tencoldays  
    OP
       2015-03-23 15:52:12 +08:00
    @cheng007 嗯。Erlang的公平调度、细粒度gc有效保证软实时、低延迟,这是Erlang做得非常棒的地方。

    Go... Plan9的Go... 完全无感的语言
    yakczh
        12
    yakczh  
       2015-03-23 16:04:08 +08:00
    @cheng007 如果golang在 内存方面相对java没有优势,那转golang就没有意义了
    tencoldays
        13
    tencoldays  
    OP
       2015-03-23 16:32:36 +08:00
    @yakczh Java建议用这个: http://akka.io/
    Kabie
        14
    Kabie  
       2015-03-23 18:22:17 +08:00
    看着不错。。。晚上试试。。。
    Kabie
        15
    Kabie  
       2015-03-23 23:48:37 +08:00
    ...文档里的配置文件不全啊。。。而且还和网页上的不一致。。。害我弄了半天。。。
    tencoldays
        16
    tencoldays  
    OP
       2015-03-24 00:01:46 +08:00
    @Kabie 默认不用配置,直接run吧... etc/app.config最近加了很多设置项,还没来得及写一个完整的文档,哈哈
    Kabie
        17
    Kabie  
       2015-03-24 00:40:04 +08:00
    @tencoldays 嗯,直接运行是可以,我只是想试试在 elixir 里面调用

    另外 client 库也有点问题,`emqttc:start_link` 的 host 参数有问题,实际不支持 binary,而 ip_address 会导致 log 失败……也不能用
    tencoldays
        18
    tencoldays  
    OP
       2015-03-24 00:43:23 +08:00
    @Kabie host参数类型 string() | inet:ip_address()
    xujialiang
        19
    xujialiang  
       2015-03-24 11:57:55 +08:00
    牛掰啊
    xujialiang
        20
    xujialiang  
       2015-03-24 12:00:35 +08:00
    正在用MQTT 做IM 服务端不知道能不能兼容mosquitto 的client
    tencoldays
        21
    tencoldays  
    OP
       2015-03-24 18:24:24 +08:00
    @xujialiang 我们简单测试也会用mosquitto_pub/sub
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1361 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 17:37 · PVG 01:37 · LAX 09:37 · JFK 12:37
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.