消息队列的优缺点:
优点:
1、可以服务的高可用性。
各大厂Java面试题
2、提高系统的吞吐量。
3、减少系统资源的消耗。
缺点:
1、对服务器资源要求比较高(内存和CPU)。
2、当出现故障的时候,需要重启才能恢复服务。
3、不能实现高可用的负载均衡。
4、性能比较差,不适合大数据量处理。
5、无法支持分布式部署。
6、没有缓存机制,数据丢失。
7、不支持事务。
8、不提供日志。
9、无法进行容错。
10、缺乏一致性检查。
11、没有状态机。
12、只能使用java语言编写。
13、在多线程下性能比较慢。
14、不支持异步编程。
15、不能做实时计算。
16、扩展性不好。
17、容易产生死锁。
18、成本较高。
19、难以维护。
20、存在一定的安全隐患。
21、容易被攻击。
22、不适合做实时计算。
23、适合小数据量的处理。
24、适合单机的应用。
25、很难做到高并发。
26、很难达到高性能、低延迟。
27、很容易受到攻击。
二、如何搭建自己的一套完整的消息队列框架呢?1、首先我们得知道什么是消息队列呢?
消息队列是一个基于订阅的消息传递系统。它允许应用程序通过发送和接收信息来发布或订阅一个或多个活动。每个活动包括一组相关的信息,这些信息可以是文字、图片或者多媒体文件等。2、那么我们该如何构建我们的消息框架呢?
我们可以使用mqtt作为基础框架来进行。
mqtt是开源的一个轻量级协议库(library)。mqtt提供了一些非常简单的api用于创建一个简单易用的事件驱动型的通信架构;同时它也提供了一个强大的api用来将不同的通信方式集成到一个系统中。3、接下来我们需要了解的是jms是什么。
jms是j2ee中定义的一种通讯模型。它是微软提出的面向服务的体系结构中的组成部分之一。它的思想是将用户请求以某种格式封装起来交给servlet去完成,而servlet再将这个请求提交给后台的数据库或者其他中间件来完成后续的处理工作4、然后我们要了解的是spring
clo
d
service
这个项目是基于spring
boot的微服务框架5、最后我们需要学习的就是d
bbo
dubbo是一个分布式的web容器引擎6、接下来就是我们在实际项目中使用的例子了
首先我们先写一个最简单的例子:
三、总结
通过以上的介绍相信大家都能够掌握到如何去设计一个完整且实用的消息队列了吧!