首页 > 自考资讯 > 自考知识

一篇文章带你了解im钱包是什么,一篇文章带你了解SprinqBoot目录结构

头条共创 2024-07-05

大家好。我叫云学文。点击右上角“关注”,分享Java程序员日常需要掌握的知识点。

bf2208c904024870a4016ec734eca242~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1720760431&x-signature=uODyLnPFn4uh9oETiwhva430nMg%3D 北京凌晨4 点

我记得很多年前就想过MQ是用来异步处理的,但是由于我是使用Spring Cloud来运行微服务,所以不能使用springboot提供的asycn注解也可以。async,这个async方法和mq有什么区别呢,为什么我不能用Springboot提供的async方法来替换mq呢?

1、MQ生产者和消费者分离,允许一个生产者发送的消息被多个消费者使用。 springboot提供的async需要耦合生产者和消费者,这样一个生产者无法服务多个消费者。

2、springboot提供的异步方法原理是,让调用服务异步会阻塞大量线程,影响系统吞吐量。异步的方式就是创建一个新的线程。一是为了提高系统吞吐量,这显然与最初的目的相矛盾。

3. MQ是跨语言的。生产者和消费者可以用不同的语言实现,这给了你灵活性,但是springboot不具备这个优势。

基于以上三个问题,如果我不使用mq,还有其他的解决方案吗?创建一个新的服务,并在这个服务内维护一个队列,生产者在发送消息时调用这个服务,很简单。当您将消息添加到队列时,使用者也会注册该消息以使用此服务进行消费。这样就实现了一个简单的消息队列,非常简单粗暴,不过好像常用的MQ中间件都是基于这个原理的。吞吐量、减少延迟、确保不丢失数据等等。我没有仔细看过mq源码,但是底层核心应该是一样的。其实,如果你把核心原理研究透了,无论你的框架多么花哨,也只是幌子。

过往亮点:

掌握程序员技术体系文章

ThreadLocal优化方案

关于作者:

云学文,一位经验丰富的Java开发工程师,在业余时间利用今日头条分享技术知识点以及对技术的理解,帮助对未来感到困惑的程序员进行技术提升。结识志同道合的朋友,互相提高,共同进步。

版权声明:本文转载于今日头条,版权归作者所有。如有侵权,请联系本站编辑删除。

猜你喜欢