大家好!今天给大家带来一个好消息,Dapr(Distributed Application Runtime)1.15版本正式发布啦!对于不熟悉Dapr的朋友来说,Dapr是一个开源的、跨平台的运行时,它简化了微服务架构中的许多复杂问题,比如服务发现、配置管理、状态管理等。那么,Dapr 1.15版本都带来了哪些新特性和改进呢?让我们一起来看看吧!

1. Dapr Workflow(稳定版)

首先,Dapr Workflow在1.15版本中正式进入稳定阶段。这意味着你现在可以放心地使用Dapr Workflow来编写长期运行的有状态应用,而不用担心它会“翻车”。Workflow不仅支持持久化执行,还能实现动态扩展,让你的应用在运行时可以根据需求增加或减少副本数,同时还能保持任务的持久性。这对于需要处理大量复杂业务逻辑的应用来说,简直是个福音!

2. Dapr Actors重写

在1.15版本中,Dapr Actors的运行时引擎也进行了重写。虽然API层面没有变化,但这次重写显著提高了Actor在大规模和动态扩展环境中的可靠性和稳定性。更棒的是,这次重写还为未来实现更多高级Actor API和与其他系统的集成打下了坚实的基础。

3. Scheduler Service(稳定版)

Scheduler Service是Dapr中用于调度作业的控制平面服务,它在1.15版本中也正式稳定了。这意味着你可以放心地在生产环境中使用它来管理你的定时任务或周期性作业。现在,当你升级到1.15版本时,所有新的Actor提醒都会默认使用Scheduler Service,而不再是之前的Placement Service。当然,你也可以通过配置来选择是否迁移现有的Actor提醒。

4. Conversation API(Alpha版)

Dapr 1.15还引入了一个新的Conversation API(目前处于Alpha阶段)。这个API可以帮助你更轻松地与大型语言模型(LLM)进行交互,比如OpenAI的GPT系列模型。通过Conversation API,你可以发送提示和接收LLM的响应,同时还支持性能优化和安全功能,比如缓存提示以减少调用次数和隐藏个人信息(PII)以保护隐私。

5. SDK改进

在SDK方面,各个语言的SDK都进行了不同程度的更新和改进。比如:

  • .NET SDK:增加了对Jobs、Conversation和流式Pub/Sub API的支持,同时支持.NET 9。
  • Python SDK:增加了对流式Pub/Sub API和Conversation API的支持,还引入了Mock actors用于单元测试。
  • Java SDK:增加了Spring Boot集成,支持自动注入DaprClient和DaprWorkflowClient等。
  • Go SDK:增加了对Conversation API的支持,同时Workflow的编写和管理也达到了稳定状态。

6. 升级指南

如果你已经在使用Dapr,并且想要升级到1.15版本,那么不用担心,Dapr团队已经为你准备了详细的升级指南。无论你是在本地机器上运行Dapr,还是在Kubernetes集群中部署Dapr,都可以按照指南轻松完成升级。当然,升级过程中可能会遇到一些不兼容的变更,所以请务必仔细阅读升级指南中的“Breaking Changes”部分。

结语

总的来说,Dapr 1.15版本带来了许多令人兴奋的新特性和改进。无论是Workflow的稳定版发布,还是Scheduler Service的成熟应用,都让我们看到了Dapr在微服务架构中的巨大潜力。如果你还没有尝试过Dapr,那么现在正是一个好时机!赶紧来体验一下这个强大的微服务运行时吧!

最后说个冷笑话:使用Dapr后,你的代码量可能减少,但头发量一定会增加。1.15版本更推荐搭配咖啡饮用。官方博客文章有更详细的内容:https://blog.dapr.io/posts/2025/02/27/dapr-v1.15-is-now-available/

白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了的更多相关文章

  1. 面试都在问的「微服务」「RPC」「服务治理」「下一代微服务」一文带你彻底搞懂!

    ❝ 文章每周持续更新,各位的「三连」是对我最大的肯定.可以微信搜索公众号「 后端技术学堂 」第一时间阅读(一般比博客早更新一到两篇) ❞ 单体式应用程序 与微服务相对的另一个概念是传统的「单体式应用程 ...

  2. 「 从0到1学习微服务SpringCloud 」03 Eureka的自我保护机制

    系列文章(更新ing): 「 从0到1学习微服务SpringCloud 」01 一起来学呀! 「 从0到1学习微服务SpringCloud 」02 Eureka服务注册与发现 Eureka的高可用需要 ...

  3. 「 从0到1学习微服务SpringCloud 」10 服务网关Zuul

    系列文章(更新ing): 「 从0到1学习微服务SpringCloud 」06 统一配置中心Spring Cloud Config 「 从0到1学习微服务SpringCloud 」07 RabbitM ...

  4. 「 从0到1学习微服务SpringCloud 」09 补充篇-maven父子模块项目

    系列文章(更新ing): 「 从0到1学习微服务SpringCloud 」06 统一配置中心Spring Cloud Config 「 从0到1学习微服务SpringCloud 」07 RabbitM ...

  5. 「 从0到1学习微服务SpringCloud 」08 构建消息驱动微服务的框架 Spring Cloud Stream

    系列文章(更新ing): 「 从0到1学习微服务SpringCloud 」01 一起来学呀! 「 从0到1学习微服务SpringCloud 」02 Eureka服务注册与发现 「 从0到1学习微服务S ...

  6. 「 从0到1学习微服务SpringCloud 」07 RabbitMq的基本使用

    系列文章(更新ing): 「 从0到1学习微服务SpringCloud 」01 一起来学呀! 「 从0到1学习微服务SpringCloud 」02 Eureka服务注册与发现 「 从0到1学习微服务S ...

  7. 「 从0到1学习微服务SpringCloud 」06 统一配置中心Spring Cloud Config

    系列文章(更新ing): 「 从0到1学习微服务SpringCloud 」01 一起来学呀! 「 从0到1学习微服务SpringCloud 」02 Eureka服务注册与发现 「 从0到1学习微服务S ...

  8. 「 从0到1学习微服务SpringCloud 」05服务消费者Fegin

    系列文章(更新ing): 「 从0到1学习微服务SpringCloud 」01 一起来学呀! 「 从0到1学习微服务SpringCloud 」02 Eureka服务注册与发现 「 从0到1学习微服务S ...

  9. 「 从0到1学习微服务SpringCloud 」04服务消费者Ribbon+RestTemplate

    系列文章(更新ing): 「 从0到1学习微服务SpringCloud 」01 一起来学呀! 「 从0到1学习微服务SpringCloud 」02 Eureka服务注册与发现 「 从0到1学习微服务S ...

  10. 「 从0到1学习微服务SpringCloud 」02 Eureka服务注册与发现

    系列文章(更新ing): 「 从0到1学习微服务SpringCloud 」01 一起来学呀! Spring Cloud Eureka 基于Netflix Eureka做了二次封装(Spring Clo ...

随机推荐

  1. django目录结构、app概念和三板斧的初步介绍

    目录 一.django app(应用)的概念 概念 命令行创建应用 pycharm创建应用 创建应用注意事项 二.django主要目录结构 三.django小白必会三板斧 一.django app(应 ...

  2. 【MyBatis】学习笔记13:延迟加载(懒加载)

    目录 Mybatis13:延迟加载(懒加载) 测试 测试1 测试2 部分特殊情况处理 Mybatis13:延迟加载(懒加载) 延迟加载是分步查询的好处,默认是不开启延迟加载的,要开启需要在核心配置文件 ...

  3. Specifications动态查询

    [前言说明] 针对CRUD种的查询,因为我们的查询总是具有各种各样的筛选条件 为了我们的程序能够更加适应筛选条件的变化,SpringDataJpa提供了Specifications这种解决方案 Spe ...

  4. 如何判断平台是x86还是arm

    case $(uname -m) in x86_64) echo x86;; aarch64) echo arm;; esac ref 上面的代码片改自这里 https://stackoverflow ...

  5. Linux readonly

    1. 概念readonly在shell脚本中,用来标记变量是只读的,后续执行过程中就不能对其值进行改变,这个用来定义一些常量类的变量. 如果对其进行重新赋值,会提示错误 [root@localhost ...

  6. How to Use cURL HTTP/2 on macOS

    cURL is one of most powerful tools for testing HTTP traffic. We typically use cURL to interact with ...

  7. 推荐一个C#轻量级矢量图形库

    推荐一个轻量级矢量图形库,可用于生成 PDF.SVG.PNG等. 01 项目简介 VectSharp 是一个功能强大的 C# 库,专门用于创建矢量图形,包括文本,不依赖任何第三方,支持跨平台运行,包括 ...

  8. Qt数据库应用1-数据导入导出csv

    一.前言 在经历过大大小小十几个甚至几十个纯QtWidget项目后,涉及到数据库相关的项目,几乎都有一个需求,将少量的信息数据比如设备信息.防区信息等,导出到文件保存好,然后用户可以打开该表格进行编辑 ...

  9. 解决pip命令报错及Python环境配置指南:从安装到优化

    1. 错误日志 当我在 Linux 机器(使用 Debian 或 Ubuntu 或衍生发行版)上运行 pip install xyz 时,会出现这样的错误: error: externally-man ...

  10. 安装OpenCV时提示缺少boostdesc_bgm.i文件的问题解决方案

    安装OpenCV时,会遇到下面的错误 /home/zhang/slam/opencv-3.4.5/opencv_contrib/modules/xfeatures2d/src/boostdesc.cp ...