• 启动的时候,把所有表读出来,然后动态创建 model 呢?

  • 应用大体分为两种,IO 密集型 和 CPU 密集型。多数 APP 都是 IO 密集型。

    好的架构,要把应用层的压力,尽可能的转移到 IO 上。

    高端的玩家甚至会根据应用场景设计存储,比如 Cassandra。

  • 就是 http 请求而已。。。一般不这么做,罢了。看你是什么需求。

  • ShowMeBug 核心技术内幕 at 2019年10月30日

    @WalkPhoneGo 功能、性能、可靠性,这些是不同的东西?为啥跟你讨论可靠性,你为什么非要说功能和性能呢?

    至于为什么,不好意思我没研究过。

    其实挺期待你说说原因的。

    那按照你的逻辑,我试着回复一下哈。

    1 无脑堆机器 不行

    大量用户 是多少 稍微多一点人 AC 就是一具尸体了

    没事

    这个不是框架能保证的 需要自己实现

    1、2、4、6 都是功能,需要自己实现。

  • ShowMeBug 核心技术内幕 at 2019年10月30日

    如果这么理解可靠性,也不是不可以。

    关于这个模块,我说下我理解的可靠性吧。

    坦白的讲,我不是很介意性能差一点,但 AC 似乎是很不怎么好。更在乎这个模块可不可以横向扩展。能横向能扩展,就可以无脑堆机器。

    再就是,在一些奇奇怪怪的场景下,这个服务还可以健康的活着。比如大量用户重连的情况下、流量激增、一台机器突然挂掉,剩下的节点是不是能正常工作。

    以及,用户断连到重连,这段时间内的消息,要怎么处理(有单独服务处理会更好)。能不能确认消息已经传到客户端有单独服务处理会更好)。再复杂一点,有序。

  • ShowMeBug 核心技术内幕 at 2019年10月30日

    是一台物理机,记得没错是 120g 的内存。

    但这个是性能吧?还看过 go 可以几个 G 百万并发。。。

    虽然 go 性能看起来更好,但 erlang 在这个场景更合适。

    因为 erlang 有抢占式调度,go 没有。erlang 有并发模型,go 的 channel 相对来讲太简单了。很多东西做不了,或者不好做。

    我问的不是 phoenix 性能好不好好,也不是想跟你讨论,phoenix 和 rails 相比,哪个好。

    我就是想问。

    1. 可靠性指的是什么?
    2. phoenix 怎么保证的?

    我理解,你回答的 1、2、4、6 都是功能的问题。 3、5 是性能的问题。

    大体上(看起来都没问题,不过没仔细看),暂时都同意你的说法。

    最后再强调下

    1. 我不想跟你讨论哪个更好的这个问题。 我更好奇的是,背后的原因是什么? 就是
    2. 可靠性具体指的是什么?
    3. 既然你说,phoenix 更可好,那 phoenix 怎么做到的?
  • ShowMeBug 核心技术内幕 at 2019年10月30日

    从服务端,发出去的消息,客户端一定能收到。

    这个 phoenix 是怎么做到的?还是说,可靠性不考虑这一点?

  • ShowMeBug 核心技术内幕 at 2019年10月30日

    @WalkPhoneGo @lyfi2003

    可靠性 具体指的什么?

    要是说,从服务端,发出去的消息,客户端一定能收到。这个 phoenix 也做不到吧?这个应该考回执来做?

    @WalkPhoneGo 求具体介绍下。

  • ShowMeBug 核心技术内幕 at 2019年10月26日

    ActionCable 好像没有特别出名的使用案例。

    ActionCable 里的操作,如果复杂或者耗时长了,感觉并发不太容易上来。。。