一图看懂Spring Boot 异步框架
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一图看懂Spring Boot 异步框架相关的知识,希望对你有一定的参考价值。
参考技术A 在SpringBoot的日常开发中,一般都是同步调用的。但经常有特殊业务需要做异步来处理,例如:注册新用户,送100个积分,或下单成功,发送push消息等等。就拿注册新用户为什么要异步处理?
在SpringBoot中使用异步调用是很简单的,只需要使用@Async注解即可实现方法的异步调用。
采用@EnableAsync来开启异步任务支持,另外需要加入@Configuration来把当前类加入springIOC容器中。
增加一个service类,用来做积分处理。
@Async添加在方法上,代表该方法为异步处理。
@Async注解,在默认情况下用的是SimpleAsyncTaskExecutor线程池,该线程池不是真正意义上的线程池,因为线程不重用,每次调用都会新建一条线程。
可以通过控制台日志输出查看,每次打印的线程名都是[task-1]、[task-2]、[task-3]、[task-4].....递增的。
@Async注解异步框架提供多种线程
SimpleAsyncTaskExecutor:不是真的线程池,这个类不重用线程,每次调用都会创建一个新的线程。
SyncTaskExecutor:这个类没有实现异步调用,只是一个同步操作。只适用于不需要多线程的地方。
ConcurrentTaskExecutor:Executor的适配类,不推荐使用。如果ThreadPoolTaskExecutor不满足要求时,才用考虑使用这个类。
ThreadPoolTaskScheduler:可以使用cron表达式。
ThreadPoolTaskExecutor :最常使用,推荐。 其实质是对java.util.concurrent.ThreadPoolExecutor的包装。
一图看懂ELK架构
参考技术A ELK是一个免费开源的日志分析架构技术栈总称,官网 https://www.elastic.co/cn 。包含三大基础组件,分别是Elasticsearch、 Logstash、 Kibana。但实际上ELK不仅仅适用于日志分析,它还可以支持其它任何数据搜索、分析和收集的场景,日志分析和收集只是更具有代表性、并非唯一性。Elasticsearch 是使用java开发,基于Lucene、分布式、通过Restful方式进行交互的近实时搜索平台框架。它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制, restful风格接口,多数据源,自动搜索负载等。
Logstash 基于java开发,是一个数据抽取转化工具。一般工作方式为c/s架构, client端安装在需要收集信息的主机上, server端负责将收到的各节点日志进行过滤、修改等操作在一并发往elasticsearch或其他组件上去。
Kibana 基于nodejs,也是一个开源和免费的可视化工具。 Kibana可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以汇总、分析和搜索重要数据日志。
Beats 平台集合了多种单一用途数据采集器。它们从成百上千或成千上万台机器和系统向 Logstash 或 Elasticsearch发送数据。
Beats由如下组成:
基于 Elasticsearch 的软件即服务(SaaS)解决方案。通过 Elastic 的官方合作伙伴使用托管的Elasticsearch 服务。
以上是关于一图看懂Spring Boot 异步框架的主要内容,如果未能解决你的问题,请参考以下文章