Client - Server Communication 这里应该用什么Protocol。这里又细分两部分。这个网站有个比较全的列表:Streaming Protocols: Everything You Need to Know。现在还有一个比较新兴的技术叫做QUIC。目前几个大公司都在实验这个项技术。QUIC at Snap
• Contribution / First Mile: Procotol to use from Streaming to Streaming Server.
• Delivery / Last Mile: Protocol to use from Streaming Server to Friends / Followers.
Video Encoding
Unstable Network
• Unstable Client Connection: Use Consistent hashing to pin upload streaming to a particular host
• Limited Network bandwidth: Use Adaptive Bit Rate, Client-side caching, Audio-only Broadcast
• Network partition inside data center: Use Consistent Hashing to find next host available for upload
Load Distribution for Peak Traffic (streaming to 100k viewers)
• Caching Manifest (in local data center / PoP). Use Cache Locking Timeout to avoid Thundering Hurd
• CDN / Edge Servers