Skip to content
This repository has been archived by the owner on Dec 11, 2022. It is now read-only.

我琢磨着是不是没有kafka 的一层的话是不是性能反而高一点? #21

Open
hugetiny opened this issue Feb 24, 2020 · 1 comment
Labels
good first issue Good for newcomers

Comments

@hugetiny
Copy link

No description provided.

@veaba veaba added the good first issue Good for newcomers label Feb 25, 2020
@veaba
Copy link
Owner

veaba commented Feb 25, 2020

这是其中一个,主要造成卡滞的问题,在本地开发过程有几个表现:

  1. 现在的设计逻辑是:
    -> A用户授权,然后socket.io
    -> 丢到kafka生产者里面
    -> 通过将这条弹幕丢到mongodb的弹幕日志里面以便,新用户连接上来就可以拉取到过完的弹幕日志
    ->消费者逐条读取到该日志
    ->通过socket.io 发送给全体在线用户

  2. kafka是集群化的,本身功能强大,被我玩炸了,上前面一条的基础上,这个过程有一定的折返,会消耗些时间,尤其是表现在第一次

  3. 本地化开发的时候,socket.io 如果频繁刷新,就会挂起在socket.on 事件里面,没有响应,尤其是小于1s的频繁连接,这个表现的很奇怪

  4. 弹幕从右侧滚进来视口的阈值有关系,会看起来好久才出来,这个是可以优化的,

  5. 综上所述,移除kafka这一层,单用socket通信,确实可以提供响应速度。拓展来讲,如果在线用户很多,很难使用单台机器来维持用户的socket通信,那样负担太大了,可以考虑大用户量的场景。

  6. kafka本身就不应该用于实时数据的场景吧~

这个项目可以认为是一个学习型项目,可以在它的基础上,做到的更极致。

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
good first issue Good for newcomers
Projects
None yet
Development

No branches or pull requests

2 participants