10 分钟上手 openYuanrong快速构建你的第一个分布式函数 【免费下载链接】yuanrongopenYuanrong runtimeopenYuanrong 多语言运行时提供函数分布式编程支持 Python、Java、C 语言实现类单机编程高性能分布式运行。项目地址: https://gitcode.com/openeuler/yuanrong前往项目官网免费下载https://ar.openeuler.org/ar/openYuanrong 是一款强大的 Serverless 分布式计算引擎它让分布式应用开发变得像编写单机程序一样简单。无论你是 AI 工程师、大数据开发者还是微服务架构师openYuanrong 都能为你提供统一的多语言函数编程接口实现高性能的分布式运行。在本文中我将带你快速上手 openYuanrong在短短 10 分钟内构建你的第一个分布式函数什么是 openYuanrong openYuanrong 是一个创新的分布式计算引擎它由三个核心组件构成多语言函数运行时支持 Python、Java、C 三种主流语言让你用熟悉的编程语言编写分布式函数函数系统提供大规模分布式动态调度支持函数实例的极速弹性扩缩和跨节点迁移数据系统提供异构分布式多级缓存支持 Object 和 Stream 语义实现函数间高性能数据共享函数是 openYuanrong 的核心抽象概念它类似于单机操作系统中的进程可以表达任意分布式应用的运行实例。相比传统的 Serverless 函数openYuanrong 函数更加通用支持运行中动态创建、长时运行、相互间异步调用和有状态计算。环境准备 安装 openYuanrong首先确保你的环境满足以下要求Python 环境Python 3.9-3.11Java 环境Java 8/17/21C 环境gcc ≥ 10.3.0 且 stdc ≥ 14使用 pip 安装 openYuanrongpip install https://openyuanrong.obs.cn-southwest-2.myhuaweicloud.com/release/0.8.0/linux/x86_64/openyuanrong-0.8.0-cp39-cp39-manylinux_2_34_x86_64.whl pip install https://openyuanrong.obs.cn-southwest-2.myhuaweicloud.com/release/0.8.0/linux/x86_64/openyuanrong_runtime-0.8.0-cp39-cp39-manylinux_2_34_x86_64.whl pip install https://openyuanrong.obs.cn-southwest-2.myhuaweicloud.com/release/0.8.0/linux/x86_64/openyuanrong_datasystem-0.8.0-cp39-cp39-manylinux_2_34_x86_64.whl pip install https://openyuanrong.obs.cn-southwest-2.myhuaweicloud.com/release/0.8.0/linux/x86_64/openyuanrong_functionsystem-0.8.0-py3-none-manylinux_2_34_x86_64.whl pip install https://openyuanrong.obs.cn-southwest-2.myhuaweicloud.com/release/0.8.0/linux/x86_64/openyuanrong_cpp_sdk-0.8.0-cp39-cp39-manylinux_2_34_x86_64.whl第一个分布式函数Python 版本 无状态函数示例让我们从最简单的 Python 无状态函数开始。创建一个名为hello_yuanrong.py的文件# hello_yuanrong.py import yr # 定义无状态函数 yr.invoke def say_hello(name): return hello, name # 初始化 openYuanrong yr.init() # 并行异步调用无状态函数 results_ref [say_hello.invoke(yuanrong) for i in range(3)] print(yr.get(results_ref)) # 释放环境资源 yr.finalize()运行这个程序python hello_yuanrong.py # 输出[hello, yuanrong, hello, yuanrong, hello, yuanrong]看到这里你可能会有疑问这不就是普通的函数调用吗 实际上say_hello.invoke(yuanrong)是在远程节点上执行的openYuanrong 自动将你的函数分发到集群中并行执行而yr.get()则负责收集所有远程执行的结果。代码解析yr.invoke装饰器将普通 Python 函数标记为可在远程执行的分布式函数yr.init()初始化 openYuanrong 运行环境.invoke()方法触发函数在远程执行返回数据对象的引用yr.get()从引用中获取实际的返回值有状态函数实战 无状态函数适合处理独立的任务但很多实际应用需要维护状态。openYuanrong 的有状态函数让类实例也能在集群中分布式运行有状态函数示例创建一个计数器类的分布式版本# counter_example.py import yr # 定义有状态函数 yr.instance class Counter: def __init__(self): self.value 0 def increment(self): self.value 1 return self.value def get_value(self): return self.value # 初始化 yr.init() # 创建三个分布式计数器实例 counters [Counter.invoke() for i in range(3)] # 并行异步调用有状态函数 for i in range(5): results_ref [counter.increment.invoke() for counter in counters] print(f第 {i1} 次增量后的值{yr.get(results_ref)}) # 获取最终值 final_results [counter.get_value.invoke() for counter in counters] print(f最终计数器值{yr.get(final_results)}) # 销毁实例 [counter.terminate() for counter in counters] # 释放资源 yr.finalize()运行这个程序你会看到三个计数器实例在并行计数每个实例都维护着自己的状态Java 和 C 支持 ☕️⚡️openYuanrong 不仅支持 Python还支持 Java 和 C让你可以用熟悉的语言开发分布式应用。Java 无状态函数示例// Greeter.java package org.yuanrong.example; public class Greeter { // 定义无状态函数 public static String sayHello(String name) { return hello, name; } }C 无状态函数示例#include iostream #include yr/yr.h // 定义无状态函数 std::string SayHello(std::string name) { return hello, name; } YR_INVOKE(SayHello)部署模式选择 openYuanrong 支持多种部署模式满足不同场景的需求进程模式在单台主机上部署适合学习和开发环境。Kubernetes 模式在生产环境中无缝扩展到大型集群。监控与调试 openYuanrong 提供了强大的可观测性工具帮助你监控集群性能和调试应用通过监控面板你可以实时查看集群资源使用情况函数实例运行状态任务执行进度系统日志和错误信息实际应用场景 AI 模型并行推理openYuanrong 特别适合 AI 和大数据场景。例如你可以使用 openYuanrong 将大型语言模型LLM部署到多个节点上进行并行推理微服务 Serverless 化将传统的微服务转换为 Serverless 函数享受自动扩缩容和按需计费的优势。大数据批处理将数据处理任务分解为多个函数在集群中并行执行大幅提升处理速度。最佳实践建议 从简单开始先尝试无状态函数熟悉后再使用有状态函数合理设计函数粒度函数不宜过大或过小保持适当的复杂度利用数据共享使用 openYuanrong 的数据系统在函数间高效传递数据监控性能定期查看监控面板优化函数性能错误处理为分布式函数添加适当的异常处理机制下一步学习路径 掌握了基础之后你可以深入学习多语言函数编程接口docs/source_zh_cn/multi_language_function_programming_interface/安装部署指南docs/source_zh_cn/deploy/可观测性工具docs/source_zh_cn/observability/实际用例docs/source_zh_cn/use_cases/常见问题解答 ❓Q: openYuanrong 支持哪些编程语言A: 目前支持 Python、Java 和 C 三种主流语言。Q: 需要多少台服务器才能使用 openYuanrongA: 单台服务器即可开始使用后续可无缝扩展到大型集群。Q: openYuanrong 适合什么样的应用场景A: 适合 AI 推理、大数据处理、微服务、科学计算等需要分布式计算的场景。Q: 如何监控分布式函数的运行状态A: 通过 openYuanrong 提供的监控面板可以实时查看函数实例状态、资源使用情况和执行日志。总结 通过本文的 10 分钟快速入门你已经掌握了 openYuanrong 的核心概念和基本使用方法。openYuanrong 的强大之处在于它让分布式编程变得简单直观你只需要关注业务逻辑而无需担心复杂的分布式系统细节。记住这个简单的三部曲定义函数用yr.invoke或yr.instance装饰你的函数或类初始化环境调用yr.init()启动分布式环境异步调用使用.invoke()触发远程执行用yr.get()收集结果现在就开始你的分布式编程之旅吧openYuanrong 将为你打开分布式计算的新世界大门 ✨想要了解更多高级功能和最佳实践请查看官方文档docs/source_zh_cn/【免费下载链接】yuanrongopenYuanrong runtimeopenYuanrong 多语言运行时提供函数分布式编程支持 Python、Java、C 语言实现类单机编程高性能分布式运行。项目地址: https://gitcode.com/openeuler/yuanrong创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考