直播app开发,设计消息中间件该考虑的问题
为保证直播app开发性能,不仅要使用大量成熟的技术手段,还要合理应用各种消息中间件。具备高并发特性的消息中间件可以为系统提供高质量服务给予更多支持,在直播app开发时,设计消息中间件该考虑哪些问题呢?

一、生产者、消费者模型
所谓的生产者、消费者模型是指消息中间件在设计时既要能让其他应用生产消息,又要能让其他应用消费消息。有时生产者生产的消息可能会超过消费者的消费能力,此时多余的消息应该由消息中间件来决定存储在什么地方。
就消息存储而言,我们需要考虑的问题包含:
1、存在在什么地方,是存储在内存还是存储在磁盘;
2、以什么方式进行存储,是立即写入直播app开发的磁盘,还是先存储到内存中,隔一段时间后再写入磁盘;
3、磁盘文件应该如何切分;
4、消息中间件应该如何将存储的数据投递到对应的消费者。
二、支持分布式架构
为了实现高并发特性,在设计消息中间件时需要让消息中间件能够承载高级别的数据高并发和高吞吐量的写入操作,而达到该目的最好的方式就是采用分布式架构。
在直播app开发中,实现分布式架构的消息中间件,需要考虑存储分片、自动扩容、自动数据负载均衡迁移等问题。

三、数据高可用
在直播app开发时,要想实现高可用性能,可以利用本地堆内存、分布式缓存、数据备份等方式,这些方式的实现逻辑主要在于任何一个存储节点出现问题,都不会对整体系统的高可用造成影响,这种实现逻辑在设计消息中间件时可作为参考。
四、消息数据不丢失
为保证消息数据不丢失,在设计消息中间件时需要实现ACK机制,常用的ACK机制有两种:
1、对应生产端的ACK机制
如果直播app开发中的消息中间件一直没有接收到ACK消息,则让生产者重新发送一条消息,以保证生产消息成功。
2、对应消费端的ACK机制
当消费端消费了某消息后,就要返回一个ACK给消息中间件,此时消息中间件才能将对应的消息删除,如果消费者迟迟未返回ACK,则需要消息中间件将该消息重新发送给其他消费端,以保证该消息被成功处理。

在直播app开发时,不同的消息中间件会发挥不同的价值,设计一个高并发的消息中间件更能为直播app开发的发展提供助力。关于直播app开发其实还有很多需要我们注意的细节,还有很多需要我们考虑的问题。
声明:本文由云豹科技原创,转载请注明作者名及原文链接,否则视为侵权