当前位置: 首页 > news >正文

PRC框架-Dubbo

RPC框架

RPC(Remote Procedure Call,远程过程调用)框架是一种允许客户端通过网络调用服务器端程序的技术。以下是常见的RPC框架及其特点:

1. 基于HTTP/REST的RPC框架

  • 特点:简单易用,与Web开发无缝集成,适合轻量级服务调用。

  • 代表性框架

    • Spring Boot + RESTful API:基于Spring Boot框架,通过注解和控制器实现RESTful风格的RPC调用。适合Java开发,广泛应用于微服务架构。

    • Flask/Django + RESTful API:基于Python的Flask或Django框架,通过定义路由和视图函数实现RPC调用。适合Python开发,适合轻量级和中等规模的服务。

    • Express.js:基于Node.js的Express框架,通过定义路由和中间件实现RPC调用。适合JavaScript开发,适合构建轻量级的后端服务。

2. 基于gRPC的RPC框架

  • 特点

    • 基于HTTP/2协议,支持双向通信和流控制。

    • 使用Protocol Buffers(Protobuf)作为接口定义语言(IDL),性能高,支持多种语言。

    • 提供内建的服务发现、负载均衡和认证机制。

  • 代表性框架

    • gRPC:由Google开发,支持多种语言(如Java、Python、C++、Go、Node.js等)。适用于高性能、高并发的微服务架构。

    • gRPC Web:用于在浏览器中调用gRPC服务,通过代理将HTTP/1.1请求转换为HTTP/2请求。

3. 基于Thrift的RPC框架

  • 特点

    • 由Facebook开发,支持多种语言(如Java、C++、Python、PHP等)。

    • 提供丰富的数据类型和接口定义语言(Thrift IDL)。

    • 支持多种传输协议(如TCP、HTTP、Framed Transport等)。

  • 代表性框架

    • Apache Thrift:适用于大规模分布式系统,性能高,支持多种语言和协议。

4. 基于JSON-RPC的RPC框架

  • 特点

    • 基于JSON格式的RPC协议,简单易用。

    • 适合轻量级服务调用,支持多种语言。

  • 代表性框架

    • JSON-RPC 2.0:标准化的JSON-RPC协议,支持错误处理、批处理等特性。

    • Flask-JSONRPC:基于Python Flask框架的JSON-RPC实现。

    • json-rpc-js:基于Node.js的JSON-RPC实现。

5. 基于XML-RPC的RPC框架

  • 特点

    • 基于XML格式的RPC协议,数据结构丰富。

    • 适合与Web服务集成,支持多种语言。

  • 代表性框架

    • XML-RPC:标准化的XML-RPC协议,广泛应用于早期的Web服务。

    • Flask-XML-RPC:基于Python Flask框架的XML-RPC实现。

6. 基于消息队列的RPC框架

  • 特点

    • 基于消息队列(如RabbitMQK、afka等)实现异步RPC调用。

    • 适合高并发、分布式系统,支持解耦和负载均衡。

  • 代表性框架

    • RabbitMQ:支持AMQP协议,适用于异步RPC调用。

    • Kafka:支持高吞吐量的异步消息传递,适用于分布式系统。

7. 其他RPC框架

  • Dubbo:由阿里巴巴开发的高性能RPC框架,支持多种协议(如Dubbo、HTTP、gRPC等),广泛应用于Java微服务架构。

  • Apache Avro:由Apache开发,支持二进制编码的RPC框架,性能高,适合大数据处理。

  • ZeroMQ:轻量级的消息传递库,支持多种模式(如请求-响应、发布-订阅等),适用于分布式系统。

总结

  • 轻量级服务:推荐使用基于HTTP/REST的框架(如Spring Boot、Flask)或JSON-RPC框架。

  • 高性能、高并发服务:推荐使用gRPC或Thrift框架。

  • 异步RPC调用:推荐使用基于消息队列的框架(如RabbitMQ、Kafka)。

  • Java微服务架构:推荐使用Dubbo框架。

根据具体需求选择合适的RPC框架可以提高开发效率和系统性能。

Dubbo

以下是Dubbo常见面试题及其答案解析,结合最新的搜索结果整理如下:

1. 为什么要用Dubbo?

  • Dubbo是一个高性能的RPC框架,支持服务注册与发现、负载均衡、容错、监控等功能。

  • 适用于大规模分布式系统,能够简化服务之间的调用。

2. Dubbo的整体架构设计有哪些分层?

  • RPC层:定义了远程调用的接口和实现。

  • Cluster层:封装了集群容错逻辑。

  • Proxy层:生成服务代理。

  • Registry层:封装了服务注册与发现。

  • Config层:封装了配置加载。

3. 默认使用的是什么通信框架,还有别的选择吗?

  • 默认使用Netty作为通信框架。

  • 其他选择包括Mina。

4. 服务调用是阻塞的吗?

  • 默认是阻塞的,但可以通过异步调用实现非阻塞。

5. 一般使用什么注册中心?还有别的选择吗?

  • 通常使用Zookeeper作为注册中心。

  • 其他选择包括Redis、Consul。

6. 默认使用什么序列化框架,你知道的还有哪些?

  • 默认使用Hessian序列化。

  • 其他选择包括FastJson、Java自带序列化。

7. 服务提供者能实现失效踢出是什么原理?

  • 基于Zookeeper的临时节点原理,当服务提供者下线时,注册中心会自动移除其节点。

8. 如何解决服务调用链过长的问题?

  • 可以结合Zipkin实现分布式服务追踪。

9. Dubbo推荐用什么协议?

  • 推荐使用Dubbo协议。

10. 同一个服务多个注册的情况下可以直连某一个服务吗?

  • 可以通过修改配置实现点对点直连。

11. 画一画服务注册与发现的流程图?

  • 服务提供者启动后,向注册中心注册服务;服务消费者启动后,从注册中心订阅服务。

12. Dubbo集群容错有几种方案?

  • 包括Failover、Failfast、Failsafe、Failback、Forking。

13. Dubbo服务降级,失败重试怎么做?

  • 通过dubbo:reference中的mock属性设置降级逻辑。

14. Dubbo使用过程中都遇到了些什么问题?

  • 常见问题包括网络延迟、超时、服务注册失败、序列化失败等。

15. Dubbo Monitor实现原理?

  • Dubbo Monitor通过收集服务调用的性能数据,提供监控功能。

16. Dubbo用到哪些设计模式?

  • 包括工厂模式、代理模式、单例模式、策略模式。

17. Dubbo配置文件是如何加载到Spring中的?

  • 通过Spring的BeanFactory加载配置文件。

18. Dubbo SPI和Java SPI区别?

  • Dubbo SPI是Java SPI的扩展,提供了更灵活的扩展机制。

19. Dubbo支持分布式事务吗?

  • Dubbo本身不直接支持分布式事务,但可以通过集成其他框架(如Seata)实现。

20. Dubbo可以对结果进行缓存吗?

  • 可以通过配置实现结果缓存。

21. 服务上线怎么兼容旧版本?

  • 可以通过多版本部署实现。

22. Dubbo必须依赖的包有哪些?

  • 包括dubbozookeepernetty等。

23. Dubbo telnet命令能做什么?

  • 可以用于远程管理Dubbo服务,如查看服务状态、调用服务。

24. Dubbo支持服务降级吗?

  • 支持,通过配置mock属性实现。

25. Dubbo如何优雅停机?

  • 可以通过配置优雅停机参数实现。

26. Dubbo和Dubbox之间的区别?

  • Dubbox是Dubbo的一个分支,增加了对REST协议的支持。

27. Dubbo和Spring Cloud的区别?

  • Dubbo侧重于RPC通信,Spring Cloud侧重于微服务架构。

这些面试题和答案涵盖了Dubbo的核心概念、架构设计、使用场景以及常见问题,是面试中常见的考点。

相关文章:

PRC框架-Dubbo

RPC框架 RPC(Remote Procedure Call,远程过程调用)框架是一种允许客户端通过网络调用服务器端程序的技术。以下是常见的RPC框架及其特点: 1. 基于HTTP/REST的RPC框架 特点:简单易用,与Web开发无缝集成&am…...

Win10环境借助DockerDesktop部署最新MySQL9.2

Win10环境借助DockerDesktop部署最新MySQL9.2 前言 作为一杆主要撸Java的大数据平台开发攻城狮,必不可少要折腾各种组件,环境和版本一直是很头疼的事情。虽然可以借助Anaconda来托管Python的环境,也可以使用多个虚拟机来部署不同的环境&…...

PlantUML 总结

PlantUML 总结 1. 概述 PlantUML 是一个开源工具,允许用户通过简单的文本描述来生成各种UML图表。它支持多种图表类型,包括但不限于序列图、用例图、类图、活动图等。 2. 基本概念 2.1 开始和结束标记 startuml 和 enduml:用于标记Plant…...

【Elasticsearch】监控与管理:集群监控指标

🧑 博主简介:CSDN博客专家,历代文学网(PC端可以访问:https://literature.sinhy.com/#/?__c1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,精通Java编…...

Swift的方法派发机制

1. 静态派发(Static Dispatch) 静态派发在编译时确定方法的具体实现,调用时直接跳转到该实现。静态派发的优点是性能高,因为不需要运行时查找方法实现。 适用场景: 值类型(Struct 和 Enum)&am…...

4.python+flask+SQLAlchemy+达梦数据库

前提 1.liunx Centos7上通过docker部署了达梦数据库。从达梦官网下载的docker镜像。(可以参考前面的博文) 2.windows上通过下载x86,win64位的达梦数据库,只安装客户端,不安装服务端。从达梦官网下载达梦数据库windows版。(可以参考前面的博文) 这样就可以用windows的达…...

6.深度学习在推荐系统中的应用

接下来我们将学习深度学习在推荐系统中的应用。深度学习技术近年来在推荐系统中得到了广泛应用,能够有效提升推荐系统的性能和精度。在这一课中,我们将介绍以下内容: 深度学习在推荐系统中的优势常用的深度学习推荐模型深度学习推荐系统的实…...

Leetcode - 149双周赛

目录 一、3438. 找到字符串中合法的相邻数字二、3439. 重新安排会议得到最多空余时间 I三、3440. 重新安排会议得到最多空余时间 II四、3441. 变成好标题的最少代价 一、3438. 找到字符串中合法的相邻数字 题目链接 本题有两个条件: 相邻数字互不相同两个数字的的…...

ArrayList、LinkedList、HashMap、HashTable、HashSet、TreeSet

集合族谱 在这些集合中,仅有vector和hashtable是线程安全的,其内部方法基本都有synchronized修饰。 ArrayList 底层采用Object数组实现,实现了RandomAccess接口因此支持随机访问。插入删除操作效率慢。 ArrayList需要一份连续的内存空间。 A…...

在 Windows 系统中如何快速进入安全模式的两种方法

在使用电脑的过程中,有时我们可能会遇到一些需要进入“安全模式”来解决的问题。安全模式是一种特殊的启动选项,它以最小化配置启动操作系统,仅加载最基本的驱动程序和服务,从而帮助用户诊断和修复系统问题。本文中简鹿办公将详细…...

【CS61A 2024秋】Python入门课,全过程记录P7(Week13 Macros至完结)【完结撒花!】

文章目录 关于新的问题更好的解决方案Week13Mon Macros阅读材料Lab 11: Programs as Data, MacrosQ1: WWSD: QuasiquoteQ2: If ProgramQ3: Exponential PowersQ4: Repeat Wed SQL阅读材料Disc 11: MacrosQ1: Mystery MacroQ2: Multiple AssignmentQ3: Switch Optional Contest:…...

AspectJ 下 Advisor 的排序过程

在 AbstractAdvisorAutoProxyCreator#findEligibleAdvisors 方法中,找到 BeanFactory 中所有的 Advisor 后,针对当前 beanClass 进行过滤,筛选出符合当前 beanClass 的 Advisor,称之为 eligibleAdvisors。接着对 eligibleAdvisors…...

Unity 高度可扩展的技能与多 Buff 框架详解

一、框架设计 1.1 核心思想 组件化设计: 将技能和 Buff 抽象为可复用的组件,通过组合不同的组件实现复杂的效果。 数据驱动: 使用 ScriptableObject 或 JSON 等数据格式定义技能和 Buff 的属性,方便配置和修改。 事件驱动: 利用 Unity 的事件系统或自…...

机器学习中过拟合和欠拟合问题处理方法总结

目录 一、背景二、过拟合(Overfitting)2.1 基本概念2.2 过拟合4个最主要的特征2.3 防止过拟合的11个有效方法 三、欠拟合(Underfitting)3.1 基本概念3.2 欠拟合的4个特征3.3 防止欠拟合的11个有效方法 四、总结五、参考资料 一、背景 在机器学习模型训练…...

新一代高性能无线传输模块M-GATEWAY3

M-GATEWAY3是M3系列的通用接口模块,用于接收各种总线信号并将它们集成到一个系统中。该模块通过标准化传输协议XCPonETH进行输出,确保为各种测量应用提供无损信号。此外,M-GATEWAY3支持通过热点、ETH-PC或USB-C传输数据。借助M-GATEWAY3&…...

一、通义灵码插件保姆级教学-IDEA(安装篇)

JetBrains IDEA 中安装教学 第一步:事先准备 支持系统:Windows 7 ~ Windows 11、Linux、macOS;下载并安装兼容的 JetBrains IDEA 2020.3 及以上版本; 第二步:在 IntelliJ IDEA 中安装通义灵码 方法 1:通…...

【leetcode 32】1047. 删除字符串中的所有相邻重复项

Java中的queue、deque、ArrayDeque的区别 使用 Deque 作为堆栈(ArrayDeque是双端队列,当仅使用栈操作时push/pop,就是栈) class Solution {public String removeDuplicates(String s) {//使用 Deque 作为堆栈(ArrayDeque是双端队列,当仅使用栈…...

ubuntu 安装vnc之后,本地黑屏,vnc正常

ubuntu 安装vnc之后,本地黑屏,vnc正常 在Ubuntu系统中安装VNC服务器(如TightVNC或RealVNC)后,如果遇到连接时本地屏幕变黑的情况,可能是由于几种不同的配置或兼容性问题。以下是一些解决步骤,可以帮助你解决这个问题&…...

【实战AI】利用deepseek 在mac本地部署搭建个人知识库

之前的文章中实现了本地通过ollma 部署deepseek R1:14b 模型,这里我想继续实现个人知识库,方便自己文档,数据的检索; 下载anythingLLM 地址: https://anythingllm.com/desktop 下载安装即可&#xff1b…...

ASP.NET Core的贫血模型与充血模型

目录 概念 需求 贫血模型 充血模型 总结 概念 贫血模型:一个类中只有属性或者成员变量,没有方法。充血模型:一个类中既有属性、成员变量,也有方法。 需求 定义一个类保存用户的用户名、密码、积分;用户必须具有…...

java基础6(黑马)

一、static 1.static修饰成员变量 static:叫静态,可以修饰成员变量、成员方法。 成员变量按照有无static,分两种。 类变量:有static修饰,属于类,在计算机中只有一份,会被类的全部对象共享。…...

LabVIEW外延片光致发光(PL)扫描系统

本文介绍了基于LabVIEW的PL扫描系统的开发过程,包括硬件选型(如ECOPIA激光器、EPP2000光谱仪)、软件架构(多线程控制、动态显示)、环境适配(温湿度控制、防震)等关键设计。结合工业需求&#xf…...

安装Jenkins

Linux中安装jenkins 采用RPM安装包方式:Jenkins安装包下载地址 wget https://pkg.jenkins.io/redhat-stable/jenkins-2.190.1-1.1.noarch.rpm执行安装 rpm -ivh jenkins-2.190.1-1.1.noarch.rpm修改配置文件: vi /etc/sysconfig/jenkins修改内容&…...

开发中常用的快捷键

开发中常用的快捷键 浏览器开发工具ideavscode 浏览器 清除浏览器的缓存:ctrl shift delete 开发工具 idea 前端JS代码格式化:ctrl alt L vscode...

前端如何判断浏览器 AdBlock/AdBlock Plus(最新版)广告屏蔽插件已开启拦截

2个月前AdBlock/AdBlock Plus疑似升级了一次 因为自己主要负责面对海外的用户项目,发现以前的检测AdBlock/AdBlock Plus开启状态方法已失效了,于是专门研究了一下。并尝试了很多方法。 已失效的老方法 // 定义一个检测 AdBlock 的函数 function chec…...

ASP.NET Core 如何使用 C# 向端点发出 POST 请求

使用 C#,将 JSON POST 到 REST API 端点;如何从 REST API 接收 JSON 数据。 本文需要 ASP .NET Core,并兼容 .NET Core 3.1、.NET 6和.NET 8。 要从端点获取数据,请参阅本文。 使用 . 将 JSON 数据发布到端点非常容易HttpClien…...

更新无忧:用 Docker 数据卷确保 Open WebUI 数据持久化

在使用 Docker 部署 Open WebUI 时,如何在更新容器的同时确保数据不丢失,始终是工程师们关注的焦点。每次拉取新版镜像、停止并重启容器时,如果没有正确挂载数据卷,配置和数据库数据极易流失,给生产环境带来不必要的麻…...

Ubuntu 下 nginx-1.24.0 源码分析 - ngx_atomic_cmp_set 函数

目录 修正 执行 ./configure 命令时,输出: checking for OS Linux 6.8.0-52-generic x86_64 checking for C compiler ... found using GNU C compiler gcc version: 11.4.0 (Ubuntu 11.4.0-1ubuntu1~22.04) 所以当前环境是 x86_64 于是在 src…...

为什么我用Python控制仪器比C#慢很多?如何优化性能?

在自动化测试、实验室仪器控制等领域,Python、C# 和 C 是常见的编程语言选择。最近,我在使用 Python 控制仪器时,发现其交互速度明显比 C# 慢很多。这让我感到困惑,毕竟 Python 以其简洁和高效著称,为什么会出现这种情…...

Linux虚拟机克隆

克隆 从现有虚拟机(关机状态)克隆出新虚拟机,右键选择管理>克隆: 选择完整克隆 设置虚拟机名称及存储位置 开机修改系统相关配置 注意: 使用root 用户。 修改vim /etc/sysconfig/network-scripts/ifcfg-ens33 ,修改IP 地址 vim /etc/sysconfig…...

开发完的小程序如何分包

好几次了,终于想起来写个笔记记一下 我最开始并不会给小程序分包,然后我就各种搜,发现讲的基本上都是开发之前的小程序分包,可是我都开发完要发布了,提示我说主包太大需要分包,所以我就不会了。。。 好了…...

气体控制器联动风机,检测到环境出现异常时自动打开风机进行排风;

一、功能:检测到环境出现异常时自动打开风机进行排风; 二、设备: 1.气体控制器主机:温湿度,TVOC等探头的主机,可上报数据,探头监测到异常时,主机会监测到异常可联动风机或声光报警…...

攻防世界33 catcat-new【文件包含/flask_session伪造】

题目: 点击一只猫猫: 看这个url像是文件包含漏洞,试试 dirsearch扫出来/admin,访问也没成功(--delay 0.1 -t 5) 会的那几招全用不了了哈哈,那就继续看答案 先总结几个知识点 1./etc/passwd&am…...

让文物“活”起来,以3D数字化技术传承文物历史文化!

文物,作为不可再生的宝贵资源,其任何毁损都是无法逆转的损失。然而,当前文物保护与修复领域仍大量依赖传统技术,同时,文物管理机构和专业团队的力量相对薄弱,亟需引入数字化管理手段以应对挑战。 积木易搭…...

Java+vue前后端分离项目集群部署

一、项目概述 假设我们有一个前后端分离的项目,前端使用React或Vue框架,后端使用Spring Boot或Node.js。我们将分别部署前端和后端到集群环境中。 二、准备工作 1. 代码准备:确保前端和后端代码已经开发完成,并通过本地测试。 2…...

【算法解析】(2)分治算法:归并排序和快速排序

1. 分治算法(Divide and Conquer) 分治算法的核心思想是将一个大问题分解为多个小问题,分别解决这些小问题,然后将小问题的解合并起来得到大问题的解。 2. 算法步骤 分治算法通常包含以下三个步骤: 分解(Divide):将原问题分解为若干个规模较小、相互独立、与原问题…...

Qt文本处理【正则表达式】示例详解:【QRegularExpression】

在 Qt 中,正则表达式是处理文本的强大工具,它能够帮助我们匹配、搜索和替换特定的字符串模式。自 Qt 5 起,QRegularExpression 类提供了对 ECMAScript 标准的正则表达式支持,这使得它在处理各种复杂的字符串任务时变得更加高效和灵…...

在 Navicat 17 中扩展 PostgreSQL 数据类型 - 枚举类型

枚举类型 在 Navicat Premium 17 中创建 PostgreSQL 的自定义数据类型的系列中,我们已经探索了多个主题。在 第 1 部分 ,我们学习了如何为 免费 DVD 租赁数据库 创建自定义域。上周,我们创建了一个复合类型,用于从用户定义的函数…...

Spring Boot + MyBatis Field ‘xxx‘ doesn‘t have a default value 问题排查与解决

目录 1. 问题所示2. 原理分析3. 解决方法1. 问题所示 执行代码的时候,出现某个字段无法添加 ### Error updating database. Cause: java.sql.SQLException: Field e_f_id doesnt have a default value ### The error may exist in cn...

python基础入门:6.2JSON与CSV数据处理

Python数据处理实战:JSON与CSV高效转换指南 # 天气数据转换示例 import json import csv from datetime import datetimedef process_weather_data(json_file, csv_file):"""将天气JSON数据转换为CSV格式"""with open(json_file, r,…...

尚硅谷课程【笔记】——大数据之Zookeeper【二】

课程视频:【尚硅谷Zookeeper教程】 四、Zookeeper实战 4.1分布式安装部署 1. 集群规划 在Hadoop102、Hadoop103和Hadoop104三个节点上部署Zookeeper 2. 解压安装 1)解压Zookeeper.tar.gz到指定目录 tar -zxvf zookeeper-3.7.2.tar.gz -C /opt/mod…...

机器学习常用包matplotlib篇(一)简单图像绘制

前言 Matplotlib 是支持 Python 语言的开源绘图库,简单且完善。 一、环境配置 1.环境设置 在 Notebook 环境绘图时,需先运行 %matplotlib inline 命令,将绘制图形嵌入当前页面。在桌面环境绘图,无需上述命令,而是在…...

JUnit断言方法详解与实战

在Java开发中,JUnit是一个不可或缺的单元测试框架,而org.junit.Assert类中的断言方法则是JUnit的核心功能之一。通过这些方法,我们可以方便地验证代码的正确性。本文将详细介绍一些常用的断言方法,并通过实例展示它们的使用。 一、…...

npm运行Vue项目报错 error:0308010c:digital envelope routines::unsupported

大家好,我是 程序员码递夫。 问题 VSCode 运行Vue项目,提示错误: building 2/2 modules 0 activeError: error:0308010c:digital envelope routines::unsupported 解决方法 原因是 npm 高版本(大于17),对ssl的处理做了改进&…...

C语言操作符详解

引言 C语言作为一种强大而灵活的编程语言,操作符是其重要组成部分。操作符用于执行各种运算,如算术运算、逻辑运算、比较运算等。深入理解C语言操作符,能帮助开发者编写出高效、准确的代码。 算术操作符 基本算术操作符 - (加法…...

Lucene 中的并发错误:如何修复乐观并发失败

作者:来着 Elastic Benjamin Trent 及 Ao Li 感谢 CMU PASTA 实验室开发的确定性并发测试框架 Fray,我们找到了一个棘手的 Lucene 漏洞并将其修复。 是的,另一个修复错误博客。但这个故事有一个转折,一位开源英雄突然出现并拯救了…...

Oracle的学习心得和知识总结(三十三)|Oracle数据库数据库的SQL ID的底层计算原理分析

目录结构 注:提前言明 本文借鉴了以下博主、书籍或网站的内容,其列表如下: 1、参考书籍:《Oracle Database SQL Language Reference》 2、参考书籍:《PostgreSQL中文手册》 3、EDB Postgres Advanced Server User Gui…...

C# OpenCV机器视觉:智能水果采摘

在一个风景如画的小镇边上,有一座阿强家祖传的果园。每到水果成熟的季节,果园里硕果累累,红彤彤的苹果、黄澄澄的梨子、紫莹莹的葡萄,散发着诱人的香气。然而,这丰收的喜悦却总被一件烦心事笼罩 —— 摘水果。 “哎呀…...

逻辑回归不能解决非线性问题,而svm可以解决

逻辑回归和支持向量机(SVM)是两种常用的分类算法,它们在处理数据时有一些不同的特点,特别是在面对非线性问题时。 1. 逻辑回归 逻辑回归本质上是一个线性分类模型。它的目的是寻找一个最适合数据的直线(或超平面&…...

celery + redis - 入门

文章目录 一、基本使用编写任务启动服务创建生产者获取状态和结果二、多目录结构异步执行编写服务启动服务调用服务获取结果https://www.bilibili.com/video/BV1jg4y13718 https://www.cnblogs.com/pyedu/p/12461819.html 一、基本使用 编写任务 celery_task.py import cel…...