Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >字节DeerFlow开源框架:多智能体深度研究框架,实现端到端自动化研究流程

字节DeerFlow开源框架:多智能体深度研究框架,实现端到端自动化研究流程

作者头像
汀丶人工智能
发布于 2025-05-13 00:23:44
发布于 2025-05-13 00:23:44
34600
代码可运行
举报
文章被收录于专栏:NLP/KGNLP/KG
运行总次数:0
代码可运行

🦌 DeerFlow

DeerFlow(Deep Exploration and Efficient Research Flow)是一个社区驱动的深度研究框架,它建立在开源社区的杰出工作基础之上。目标是将语言模型与专业工具(如网络搜索、爬虫和Python代码执行)相结合.。

0.1 特性

  • 🤖 LLM集
    • 通过litellm支持集成大多数模型
    • 支持开源模型如Qwen
    • 兼容OpenAI的API接口
    • 多层LLM系统适用于不同复杂度的任务
  • 工具和MCP集成
    • 🔍 搜索和检索
      • 通过Tavily、Brave Search等进行网络搜索
      • 使用Jina进行爬取
      • 高级内容提取
    • 🔗 MCP无缝集成
      • 扩展私有域访问、知识图谱、网页浏览等能力
      • 促进多样化研究工具和方法的集成
  • 人机协作
    • 🧠 人在环中
      • 支持使用自然语言交互式修改研究计划
      • 支持自动接受研究计划
    • 📝 报告后期编辑
      • 支持类Notion的块编辑
      • 允许AI优化,包括AI辅助润色、句子缩短和扩展
      • tiptap提供支持
  • 内容创作
    • 🎙️ 播客和演示文稿生成
      • AI驱动的播客脚本生成和音频合成
      • 自动创建简单的PowerPoint演示文稿
      • 可定制模板以满足个性化内容需求

0.2 架构

DeerFlow实现了一个模块化的多智能体系统架构,专为自动化研究和代码分析而设计。该系统基于LangGraph构建,实现了灵活的基于状态的工作流,其中组件通过定义良好的消息传递系统进行通信。

系统采用了精简的工作流程,包含以下组件:

  1. 协调器:管理工作流生命周期的入口点
    • 根据用户输入启动研究过程
    • 在适当时候将任务委派给规划器
    • 作为用户和系统之间的主要接口
  2. 规划器:负责任务分解和规划的战略组件
    • 分析研究目标并创建结构化执行计划
    • 确定是否有足够的上下文或是否需要更多研究
    • 管理研究流程并决定何时生成最终报告
  3. 研究团队:执行计划的专业智能体集合:
    • 研究员:使用网络搜索引擎、爬虫甚至MCP服务等工具进行网络搜索和信息收集。
    • 编码员:使用Python REPL工具处理代码分析、执行和技术任务。 每个智能体都可以访问针对其角色优化的特定工具,并在LangGraph框架内运行
  4. 报告员:研究输出的最终阶段处理器
    • 汇总研究团队的发现
    • 处理和组织收集的信息
    • 生成全面的研究报告

1.快速开始

DeerFlow使用Python开发,并配有用Node.js编写的Web UI。为确保顺利的设置过程,我们推荐使用以下工具:

  • 推荐工具
    • uv: 简化Python环境和依赖管理。uv会自动在根目录创建虚拟环境并为您安装所有必需的包—无需手动安装Python环境。
    • nvm: 轻松管理多个Node.js运行时版本。
    • pnpm: 安装和管理Node.js项目的依赖。
  • 环境要求 确保您的系统满足以下最低要求:
  • Python: 版本 3.12+
  • Node.js: 版本 22+

1.1安装

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 克隆仓库
git clone https://github.com/bytedance/deer-flow.git
cd deer-flow

# 安装依赖,uv将负责Python解释器和虚拟环境的创建,并安装所需的包
uv sync

# 使用您的API密钥配置.env
# Tavily: https://app.tavily.com/home
# Brave_SEARCH: https://brave.com/search/api/
# 火山引擎TTS: 如果您有TTS凭证,请添加
cp .env.example .env

# 查看下方的"支持的搜索引擎""文本转语音集成"部分了解所有可用选项

# 为您的LLM模型和API密钥配置conf.yaml
# 请参阅'docs/configuration_guide.md'获取更多详情
cp conf.yaml.example conf.yaml

# 安装marp用于PPT生成
# https://github.com/marp-team/marp-cli?tab=readme-ov-file#use-package-manager
brew install marp-cli

可选,通过pnpm安装Web UI依赖:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cd deer-flow/web
pnpm install
  • 控制台UI

运行项目的最快方法是使用控制台UI。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 在类bash的shell中运行项目
uv run main.py

1.2 Web UI

本项目还包括一个Web UI,提供更加动态和引人入胜的交互体验。

[!注意] 您需要先安装Web UI的依赖。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 在开发模式下同时运行后端和前端服务器
# 在macOS/Linux上
./bootstrap.sh -d

# 在Windows上
bootstrap.bat -d

打开浏览器并访问http://localhost:3000探索Web UI。

在web目录中探索更多详情。

1.3支持的搜索引擎

DeerFlow支持多种搜索引擎,可以在.env文件中通过SEARCH_API变量进行配置:

  • Tavily(默认):专为AI应用设计的专业搜索API
    • 需要在.env文件中设置TAVILY_API_KEY
    • 注册地址:https://app.tavily.com/home
  • DuckDuckGo:注重隐私的搜索引擎
    • 无需API密钥
  • Brave Search:具有高级功能的注重隐私的搜索引擎
    • 需要在.env文件中设置BRAVE_SEARCH_API_KEY
    • 注册地址:https://brave.com/search/api/
  • Arxiv:用于学术研究的科学论文搜索
    • 无需API密钥
    • 专为科学和学术论文设计

要配置您首选的搜索引擎,请在.env文件中设置SEARCH_API变量:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 选择一个:tavily, duckduckgo, brave_search, arxiv
SEARCH_API=tavily

1.4 文本转语音集成

DeerFlow现在包含一个文本转语音(TTS)功能,允许您将研究报告转换为语音。此功能使用火山引擎TTS API生成高质量的文本音频。速度、音量和音调等特性也可以自定义。

  • 使用TTS API

您可以通过/api/tts端点访问TTS功能:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 使用curl的API调用示例
curl --location 'http://localhost:8000/api/tts' \
--header 'Content-Type: application/json' \
--data '{
    "text": "这是文本转语音功能的测试。",
    "speed_ratio": 1.0,
    "volume_ratio": 1.0,
    "pitch_ratio": 1.0
}' \
--output speech.mp3

2.开发

2.1测试

运行测试套件:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 运行所有测试
make test

# 运行特定测试文件
pytest tests/integration/test_workflow.py

# 运行覆盖率测试
make coverage

2.2 代码质量

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 运行代码检查
make lint

# 格式化代码
make format
使用LangGraph Studio进行调试

DeerFlow使用LangGraph作为其工作流架构。您可以使用LangGraph Studio实时调试和可视化工作流。

  • 本地运行LangGraph Studio

DeerFlow包含一个langgraph.json配置文件,该文件定义了LangGraph Studio的图结构和依赖关系。该文件指向项目中定义的工作流图,并自动从.env文件加载环境变量。

  • Mac
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 如果您没有uv包管理器,请安装它
curl -LsSf https://astral.sh/uv/install.sh | sh

# 安装依赖并启动LangGraph服务器
uvx --refresh --from "langgraph-cli[inmem]" --with-editable . --python 3.12 langgraph dev --allow-blocking
  • Windows / Linux
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 安装依赖
pip install -e .
pip install -U "langgraph-cli[inmem]"

# 启动LangGraph服务器
langgraph dev

启动LangGraph服务器后,您将在终端中看到几个URL:

  • API: http://127.0.0.1:2024
  • Studio UI: https://smith.langchain.com/studio/?baseUrl=http://127.0.0.1:2024
  • API文档: http://127.0.0.1:2024/docs

在浏览器中打开Studio UI链接以访问调试界面。

  • 使用LangGraph Studio

在Studio UI中,您可以:

  1. 可视化工作流图并查看组件如何连接
  2. 实时跟踪执行情况,了解数据如何在系统中流动
  3. 检查工作流每个步骤的状态
  4. 通过检查每个组件的输入和输出来调试问题
  5. 在规划阶段提供反馈以完善研究计划

当您在Studio UI中提交研究主题时,您将能够看到整个工作流执行过程,包括:

  • 创建研究计划的规划阶段
  • 可以修改计划的反馈循环
  • 每个部分的研究和写作阶段
  • 最终报告生成

3. 示例展示

以下示例展示了DeerFlow的功能:

  1. 什么是MCP? - 对"MCP"一词在多个上下文中的全面分析
    • 探讨AI中的Model Context Protocol、化学中的Monocalcium Phosphate和电子学中的Micro-channel Plate
    • 查看完整报告
  2. 比特币价格波动 - 最近比特币价格走势分析
    • 研究市场趋势、监管影响和技术指标
    • 基于历史数据提供建议
    • 查看完整报告
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 最近三个月比特币价格波动分析报告  

## 执行摘要  
本报告分析了过去三个月内比特币的价格波动情况,主要依据现有的搜索结果进行总结。分析内容涵盖市场情绪、监管影响、经济因素以及技术分析指标。由于无法直接获取和处理原始数据,本报告基于多个来源的汇总信息进行研究。

## 关键发现  
- **特朗普政府政策影响**20254月实施的关税政策导致比特币价格从109,000美元下跌至84,000美元。  
- **经济不确定性**:整体经济环境的不确定性促使比特币价格跌破90,000美元。  
- **市场情绪**:加密货币“恐惧与贪婪指数”反映了市场整体情绪,该指数会因新闻事件而波动。  
- **技术分析**:关键支撑位约在80,400美元和74,000美元,阻力位则接近98,500美元和106,000美元。

## 详细分析  

### 影响因素  
#### 监管环境  
特朗普政府对加密货币的监管态度以及美国证券交易委员会(SEC)的相关行动对比特币价格产生了显著影响。  

#### 市场情绪  
“加密货币恐惧与贪婪指数”是衡量市场情绪的重要指标。此外,来自雅虎财经(Yahoo Finance)和Investing.com的历史交易数据显示了过去三个月的比特币交易量变化。  

#### 社交媒体情绪  
Reddit的r/cryptocurrency板块及推特(X)上的讨论可提供市场情绪洞察。  

#### GBTC持仓  
Grayscale比特币信托(GBTC)的历史价格和持仓数据反映了机构投资者的态度。  

#### 比特币期货  
根据雅虎财经的数据,比特币期货(BTC=F)的历史走势提供了市场预期的参考。  

#### Google趋势  
Google Trends显示,“比特币”关键词的搜索热度随时间变化。近期文章指出,“比特币”及“比特币价格”相关搜索兴趣有所下降。

### 价格波动情况  
- **关税政策影响**:受特朗普政府于202542日宣布的关税政策影响,比特币价格由109,000美元跌至84,000美元。  
- **经济不确定性影响**:整体经济形势不明朗,导致比特币价格跌破90,000美元。  
- **技术支撑与阻力位**:当前需关注的关键支撑位为80,400美元和74,000美元,阻力位分别为98,500美元和106,000美元。

## 结论与建议  

### 结论  
综合现有信息来看,过去三个月比特币价格波动主要受到监管政策、宏观经济状况以及市场情绪等多重因素的影响。

### 建议  
1. **密切关注监管动向**:持续跟踪各国政府及监管机构的政策调整,评估其对加密货币市场的潜在影响。  
2. **关注宏观经济指标**:密切留意全球经济增长、通胀数据等宏观指标,以判断其对投资者行为的影响。  
3. **利用市场情绪工具**:结合“加密货币恐惧与贪婪指数”及社交媒体舆情分析,掌握市场心理变化。  
4. **技术分析辅助决策**:运用技术分析工具识别关键支撑与阻力位,为投资策略提供参考依据。

### 局限性  
本报告基于公开渠道的汇总信息撰写,缺乏对原始数据的深入分析。如需得出更精确的结论,建议进一步开展基于完整数据分析的深入研究。
  1. 如何使用Claude进行深度研究? - 在深度研究中使用Claude的最佳实践和工作流程
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 深度研究中使用 Claude:工作流程与最佳实践  

## 执行摘要  
本报告概述了将 **Claude** 有效整合进深度研究流程的最佳实践,涵盖数据收集、预处理、分析与综合等关键环节。此外,还探讨了其与其他工具的集成方式、结果验证方法、成本管理策略、协作机制、文档撰写规范及相关案例研究。Claude 可作为辅助工具支持学术写作与研究,但应始终服务于原创性思考,而非替代之。

## 关键发现  
- **学术写作与研究支持**:Claude 能够辅助学术写作和研究,但应作为辅助工具,而非取代原创性思维。
- **项目功能(Project Feature)**:可上传相关文档以减少重复设置上下文信息的工作量。
- **数据分析能力**:内置的数据分析工具能够编写并运行 JavaScript 代码,对数据进行处理并提供洞察。
- **引用工具**:具备自动验证来源及规范引用格式的功能,有助于提升学术严谨性。
- **模型选择建议**:Haiku 是其智能等级中响应最快、性价比最高的模型。
- **虚拟团队成员角色**:Claude 可作为虚拟团队成员推动研究或产品开发进程。
- **协同创新**:分享由 Claude 协助生成的研究成果,有助于激发产品开发与科研中的创新。
- **技术文档撰写**:Claude 能高效生成技术文档,并保持内容一致性。
- **工具集成能力**:可与笔记、写作及参考文献管理工具无缝集成。

## 详细分析  

### 工作流程与最佳实践  

#### 明确研究问题  
在初始提示中清晰定义研究问题和关注领域,确保 Claude 理解任务目标。

#### 结构化数据输入  
提供结构化的数据信息,提高 Claude 的理解和处理效率。

#### 使用 Project 功能  
利用 Claude 的“项目”功能上传相关文档,避免重复输入背景信息,提升工作效率。  
[来源: https://support.anthropic.com/en/articles/9797557-usage-limit-best-practices]

#### 提示工程技巧  
采用提示工程技巧,如加入“请逐步思考”,以提升输出质量。  
[来源: https://aws.amazon.com/blogs/machine-learning/prompt-engineering-techniques-and-best-practices-learn-by-doing-with-anthropics-claude-3-on-amazon-bedrock/]

---

### 数据分析  

#### 内置数据分析工具  
Claude 提供内置数据分析工具,可通过执行 JavaScript 代码对数据进行处理并提取洞察。  
[来源: https://www.anthropic.com/news/analysis-tool, https://support.anthropic.com/en/articles/10008684-enabling-and-using-the-analysis-tool]

#### CSV 文件分析  
该工具也可用于分析上传的 CSV 数据文件,并实现可视化展示。  
[来源: https://support.anthropic.com/en/articles/10008684-enabling-and-using-the-analysis-tool]

---

### 结果验证  

#### 引用验证工具  
使用 Claude 提供的引用工具来验证来源准确性,并确保符合学术引用规范。  
[来源: https://www.yomu.ai/blog/claude-ai-in-academic-writing-and-research-essential-tips-for-optimal-results]

#### 提示词清洗与验证  
注意 Anthropic API 对用户提示词会进行基本的清洗与验证处理。  
[来源: https://docs.anthropic.com/en/api/prompt-validation]

---

### 成本管理  

#### 模型选择  
根据任务需求选择合适的模型,推荐在需要高性价比时使用 **Claude Haiku**,其在同级别智能模型中响应最快、成本最低。  
[来源: https://www.anthropic.com/news/claude-3-family]

---

### 协作策略  

#### 虚拟团队成员  
将 Claude 视为虚拟团队成员,协助完成资料整理、初稿撰写、逻辑梳理等工作。  
[来源: https://www.anthropic.com/team]

#### 共享共创成果  
共享由 Claude 协助生成的内容,尤其适用于产品开发和科研协作,可促进团队内部创新。  
[来源: https://www.anthropic.com/news/projects]

---

### 文档撰写  

#### 技术文档生成  
Claude 可快速生成高质量技术文档,并确保术语与风格的一致性。  
[来源: https://beginswithai.com/how-to-use-claude-ai-to-create-technical-documentation/]

---

### 与其他工具集成  

#### 笔记与写作工具  
与 Evernote、OneNote、Google Docs 等笔记与写作工具集成,便于实时同步与协作。  
[来源: https://beginswithai.com/using-claude-for-research/]

#### 参考文献管理工具  
支持 Zotero、Mendeley 和 EndNote 等参考文献管理工具的集成。  
[来源: https://beginswithai.com/using-claude-for-research/]

#### 平台集成  
确保与 Anthropic API、Google Cloud Vertex AI 等平台的良好兼容性,提升整体研究效率。  
[来源: https://www.yomu.ai/blog/claude-ai-in-academic-writing-and-research-essential-tips-for-optimal-results]

---

### 案例研究  

#### 多领域成功应用  
已有多个行业成功应用 Claude 的案例,包括鲸类保护、品牌管理、网络安全、招聘筛选、保险理赔、代码审查、客户服务和销售转化等领域。  
[来源: https://www.anthropic.com/customers]

---

## 结论与建议  

### 结论  
Claude 是一款在深度研究中极具价值的人工智能助手,只要合理规划使用方式,即可显著提升研究效率与质量。通过明确研究问题、结构化数据输入、善用项目功能与数据分析工具,研究人员可以充分发挥其潜力。同时,借助引用工具与提示工程优化输出内容的准确性和逻辑性至关重要。Claude 还能增强团队协作能力,并通过与其他研究工具的集成优化整体工作流。从多个领域的实际案例来看,Claude 展现出广泛的应用前景与强大的适应能力。

### 建议  
1. **明确研究目标**:在开始阶段就清晰定义研究问题与目标。
2. **结构化输入数据**:提供清晰、有组织的数据以提高处理效率。
3. **充分利用项目功能**:上传背景材料,节省反复解释时间。
4. **优化提示词设计**:采用分步引导、角色设定等方式提升输出质量。
5. **验证输出结果**:使用引用工具确保信息准确无误。
6. **控制成本支出**:根据任务复杂程度选择合适模型。
7. **加强团队协作**:鼓励团队共享与共创,推动知识沉淀与创新。
8. **完善文档记录**:利用 Claude 快速生成统一风格的技术文档。
9. **整合研究工具链**:打通与现有研究工具的数据与流程连接。
10. **学习成功案例**:借鉴其他行业的应用经验,探索更多可能性。
  1. 医疗保健中的AI采用:影响因素 - 影响医疗保健中AI采用的因素分析
    • 讨论AI技术、数据质量、伦理考虑、经济评估、组织准备度和数字基础设施
    • 查看完整报告

要运行这些示例或创建您自己的研究报告,您可以使用以下命令:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 使用特定查询运行
uv run main.py "哪些因素正在影响医疗保健中的AI采用?"

# 使用自定义规划参数运行
uv run main.py --max_plan_iterations 3 "量子计算如何影响密码学?"

# 在交互模式下运行,带有内置问题
uv run main.py --interactive

# 或者使用基本交互提示运行
uv run main.py

# 查看所有可用选项
uv run main.py --help
  • 交互模式

应用程序现在支持带有英文和中文内置问题的交互模式:

启动交互模式:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
uv run main.py --interactive

选择您偏好的语言(English或中文)

从内置问题列表中选择或选择提出您自己问题的选项

系统将处理您的问题并生成全面的研究报告

参考:

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-05-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
接口请求重试策略:保障稳定性的必杀技
你的应用程序是否对接口请求失败有足够的应对措施?接口请求重试机制是确保数据可靠传输的关键。本文将为你呈现无懈可击的接口请求,通过深入研究重试机制,实现完美的数据传输。
一只牛博
2025/05/31
860
Spring-Retry重试实现原理
Spring实现了一套重试机制,功能简单实用。Spring Retry是从Spring Batch独立出来的一个功能,已经广泛应用于Spring Batch,Spring Integration, Spring for Apache Hadoop等Spring项目。本文将讲述如何使用Spring Retry及其实现原理。
程序猿DD
2020/12/08
1.8K0
Spring-Retry重试实现原理
Spring-Retry重试实现原理,有点东西哈
> 公众号:[Java小咖秀](https://t.1yb.co/jwkk),网站:[javaxks.com](https://www.javaxks.com)
Java小咖秀
2021/03/24
9240
重试组件使用与原理分析(一)-spring-retry
在日常开发中,我们很多时候都需要调用二方或者三方服务和接口,外部服务对于调用者来说一般都是不可靠的,尤其是在网络环境比较差的情况下,网络抖动很容易导致请求超时等异常情况,这时候就需要使用失败重试策略重新调用 API 接口来获取。
叔牙
2020/11/19
3.8K0
重试组件使用与原理分析(一)-spring-retry
Spring Retry 学习记录
在很多场景中,我们需要“重试”,重试意味着反复执行一段代码直至成功,或者重试多次无果后标记失败。“重试”的出发点有可能是为了保持状态的一致,也有可能是为了容忍被调用方短暂的不可用。“重试”逻辑有可能是同步执行,也有可能是异步执行。异步有可能是将信息存入数据库定时任务重试,也有可能是通过异步消息,利用消息的重试机制,等等,不一而论。
LNAmp
2018/09/05
6480
Spring Retry 学习记录
Spring-Retry 和 Guava-Retry,各有千秋
点击上方蓝色字体,选择“设为星标” 回复”学习资料“获取学习宝典 一 重试框架之Spring-Retry Spring Retry 为 Spring 应用程序提供了声明性重试支持。它用于Spring批处理、Spring集成、Apache Hadoop(等等)。它主要是针对可能抛出异常的一些调用操作,进行有策略的重试 1. Spring-Retry的普通使用方式 1.准备工作 我们只需要加上依赖:  <dependency>     <groupId>org.springframework.retry</
猿天地
2022/08/31
8500
Spring-Retry 和 Guava-Retry,各有千秋
Spring-retry 使用指南
该项目为Spring应用程序提供声明式重试支持,它用于Spring Batch、Spring Integration、Apache Hadoop的Spring(以及其他),命令式重试也支持显式使用。
阿提说说
2022/12/02
1.4K0
聊聊spring cloud的consulRetryInterceptor
本文主要研究一下spring cloud的consulRetryInterceptor
code4it
2019/07/28
9020
聊聊spring cloud的consulRetryInterceptor
聊聊ribbon的retry
spring-cloud-netflix-ribbon-2.0.0.RELEASE-sources.jar!/org/springframework/cloud/netflix/ribbon/apache/HttpClientRibbonConfiguration.java
code4it
2018/09/17
1.3K0
重学SpringBoot3-Spring Retry实践
Spring Retry是Spring生态系统中的一个重要组件,它提供了自动重试失败操作的能力。在分布式系统中,由于网络抖动、服务暂时不可用等临时性故障,重试机制显得尤为重要。本文将详细介绍如何在 SpringBoot 3 应用中集成和使用 Spring Retry。
CoderJia
2024/11/23
2580
重学SpringBoot3-Spring Retry实践
Spring Cloud Stream 重点与总结
原本想开个Spring Cloud Stream系列文章连载,写Spring Cloud Stream算是个人夙愿了——首先这是个人非常喜欢的组件,它屏蔽了各种MQ的差异,统一了编程模型(可以类比成基于MQ通信圈的”Spring Data”);其次个人实体书《Spring Cloud 与 Docker 微服务架构实战》没有包含这部分内容也是一大遗憾;更重要的是,这货细节其实挺多,而且上手是稍微有一点曲线的。
用户1516716
2019/05/13
2.6K0
【最佳实践】如何优雅的进行重试
最近公司在搞活动,需要依赖一个第三方接口,测试阶段并没有什么异常状况,但上线后发现依赖的接口有时候会因为内部错误而返回系统异常,虽然概率不大,但总因为这个而报警总是不好的,何况死信队列的消息还需要麻烦运维进行重新投递,所以加上重试机制势在必行。
弗兰克的猫
2019/08/14
1.4K0
聊聊spring kafka的retry
spring-kafka-1.2.3.RELEASE-sources.jar!/org/springframework/kafka/listener/adapter/AbstractRetryingMessageListenerAdapter.java 主要有两个实现类RetryingAcknowledgingMessageListenerAdapter以及RetryingMessageListenerAdapter
code4it
2018/09/17
1.2K0
聊聊spring cloud的RetryableFeignLoadBalancer
本文主要研究一下spring cloud的RetryableFeignLoadBalancer
code4it
2019/07/13
7970
聊聊spring cloud的RetryableFeignLoadBalancer
接口请求重试的8种方法,你用哪种?
在实际业务中,可能第三方的服务器分布在世界的各个角落,所以请求三方接口的时候,难免会遇到一些网络问题,这时候需要加入重试机制了,这期就给大家分享几个接口重试的写法。
程序员大彬
2024/05/09
6680
接口请求重试的8种方法,你用哪种?
Spring Cloud Zuul重试机制探秘
作者:李刚 原文:http://www.spring4all.com/article/208 简介 本文章对应spring cloud的版本为(Dalston.SR4),具体内容如下: 开启Zuul功能 通过源码了解Zuul的一次转发 怎么开启zuul的重试机制 Edgware.RC1版本的优化 开启Zuul的功能 首先如何使用spring cloud zuul完成路由转发的功能,这个问题很简单,只需要进行如下准备工作即可: 注册中心(Eureka Server) zuul(同时也是Eureka Clien
程序猿DD
2018/02/01
4.3K1
Spring Retry
  在我们的业务场景中,经常要调用其他的API来获取信息,比如我们的业务场景需要依赖个人信息来处理,这个时候调用个人信息服务的API,但是由于可能同一时段多方在调用这个服务,可能该服务并发太多,没有及时响应我们的调用,我们的业务就不能执行下去,这个时候我们就需要重试机制了,当然 Spring 已经给我们提供了- Retry。  
haoming1100
2018/12/13
2.4K0
确实很优雅,所以我要扯下这个注解的神秘面纱。
前几天我 Review 代码的时候发现项目里面有一坨逻辑写的非常的不好,一眼望去简直就是丑陋之极。
why技术
2022/02/17
4170
确实很优雅,所以我要扯下这个注解的神秘面纱。
Spring Boot 优雅的实现重处理功能
这些错误可能是因为网络波动造成的,等待过后重处理就能成功。通常来说,会用try/catch,while循环之类的语法来进行重处理,但是这样的做法缺乏统一性,并且不是很方便,要多写很多代码。然而spring-retry却可以通过注解,在不入侵原有业务逻辑代码的方式下,优雅的实现重处理功能。
码猿技术专栏
2023/05/01
4590
Spring Boot 优雅的实现重处理功能
聊聊spring cloud的LoadBalancerAutoConfiguration
本文主要研究一下spring cloud的LoadBalancerAutoConfiguration
code4it
2018/09/17
1.1K0
相关推荐
接口请求重试策略:保障稳定性的必杀技
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验