微软开源 rDSN 分布式系统开发框架

简介:

微软亚洲研究院系统组开发的分布式系统开发框架——Robust Distributed System Nucleus(rDSN)通过GitHub平台开源。rDSN旨在为广大分布式系统的开发者,学生,和研究人员提供一个开放式的框架,用于快速搭建和运维高性能和高鲁棒的分布式系统,而后者对于当前很多技术的成功都至关重要,比如云计算,大数据和物联网等。

rDSN的思想来源于系统组过去在分布式系统开发和运维各个阶段进行的各种自动化项目。这些项目尝试帮助开发者更快捷有效地测试,调试,优化,监控,扩展(Scale-out),复制(Replicate),组合(Compose),甚至推理(Reason)。这些项目遇到了很多的困难,很多是由于开始的代码工作没有考虑这些需求,导致后期的开发事倍功半。rDSN提供了一个开发框架使得开发人员一开始也不需要考虑这些问题,但是代码会符合一定的原则,使得后期可以用很小的甚至零代价升级他们的代码来实现上面提到的需求。rDSN的一个早期版本在Bing里面用于开发一个分布式数据服务系统,该系统已经上线并运行良好。根据产品组的反馈,rDSN进行了改进并希望通过开源的方式对社区有所贡献,特别是对那些分布式系统的相关开发人员,学生和研究者有所帮助。

对于开发者而言,rDSN可以帮助改善开发和运维体验,来提高系统的编程敏捷性,性能以及鲁棒性。rDSN最简单的用法可以看成是一个和主流RPC框架(比如Apache Thrift)等兼容的升级版RPC框架,或者是一个采用基于事件编程的高性能任务库。开发者设置rDSN为测试模式,来系统性地模拟各种各样的调度决策和系统错误,来提早暴露系统可能的缺陷。当错误发生时,rDSN能重放发生的错误,并把分布式系统所有节点的状态放在一个进程里调试,而且不必担心由于调试导致意外的timeout。当系统上线以后,rDSN提供了自动过的执行流跟踪和性能检测。如果你对rDSN自带的底层库不满意(比如网络库或者日志系统等),rDSN是一个开放的框架因此你可以非常方便地替换它们。再比如,当你需要处理更大规模的输入并且想要提高系统的可用性,rDSN提供了复制框架(replication framework)来把单机服务变成多机+自动复制的服务,而这其中只需要非常少的进一步的开发。总之,rDSN提供并且帮助开发工具和运行时框架能够和上层应用无缝集成,能够极大地提高开发和运维的效率。

对于学生来说,rDSN提供了一个能够方便地简化,理解,和操纵分布式系统的平台。当学习一个分布式系统协议的时候,你可以在rDSN的模拟器模式下编写和调试。该模拟器能够简化实际系统中的很多复杂性,并在需要的时候慢慢把这些复杂性加回去。比如,从单线程到多线程,从同步且可靠的网络到异步不可靠网络。为了理解协议是如何运作的,rDSN提供了自动的执行流跟踪,并且会产生一个“事件矩阵”来记录代码之间的调用关系和频率,以揭示系统内部的依赖关系及其相关权重。

很多分布式系统的研究人员常常期望提供通用的分布式系统的相关工具和运行时策略。rDSN提供了专门的工具API(Tool API)来帮助这方面的工作。工具API提供了底层模块的虚拟化,并且把上层系统的所有不确定性都暴露了出来。这使得构建高效和可靠的工具和运行时策略成为可能。目前开源的这个版本里面就包含了很多这方面的例子。此外,rDSN的设计保证了这些工具和运行时策略能够和基于rDSN的上策应用无缝集成,因此这些研究成果都能很快地进入实际部署。

rDSN的开源一方面能够帮助到社区,另一方面也期待着社区反馈相关成果来大家一起把分布式系统的开发变得更加简单高效。
文章转载自 开源中国社区 [http://www.oschina.net]

相关文章
|
5月前
|
人工智能 安全 Java
智慧工地源码,Java语言开发,微服务架构,支持分布式和集群部署,多端覆盖
智慧工地是“互联网+建筑工地”的创新模式,基于物联网、移动互联网、BIM、大数据、人工智能等技术,实现对施工现场人员、设备、材料、安全等环节的智能化管理。其解决方案涵盖数据大屏、移动APP和PC管理端,采用高性能Java微服务架构,支持分布式与集群部署,结合Redis、消息队列等技术确保系统稳定高效。通过大数据驱动决策、物联网实时监测预警及AI智能视频监控,消除数据孤岛,提升项目可控性与安全性。智慧工地提供专家级远程管理服务,助力施工质量和安全管理升级,同时依托可扩展平台、多端应用和丰富设备接口,满足多样化需求,推动建筑行业数字化转型。
192 5
|
6月前
|
数据采集 存储 数据可视化
分布式爬虫框架Scrapy-Redis实战指南
本文介绍如何使用Scrapy-Redis构建分布式爬虫系统,采集携程平台上热门城市的酒店价格与评价信息。通过代理IP、Cookie和User-Agent设置规避反爬策略,实现高效数据抓取。结合价格动态趋势分析,助力酒店业优化市场策略、提升服务质量。技术架构涵盖Scrapy-Redis核心调度、代理中间件及数据解析存储,提供完整的技术路线图与代码示例。
593 0
分布式爬虫框架Scrapy-Redis实战指南
|
5月前
|
消息中间件 缓存 弹性计算
纯PHP+MySQL手搓高性能论坛系统!代码精简,拒绝臃肿
本内容分享了一套经实战验证的社交系统架构设计,支撑从1到100万用户的发展,并历经6次流量洪峰考验。架构涵盖客户端层(App、小程序、公众号)、接入层(API网关、负载均衡、CDN)、业务服务层(用户、内容、关系、消息等服务)、数据层(MySQL、Redis、MongoDB等)及运维监控层(日志、监控、告警)。核心设计包括数据库分库分表、多级缓存体系、消息队列削峰填谷、CQRS模式与热点数据动态缓存。同时提供应对流量洪峰的弹性伸缩方案及降级熔断机制,并通过Prometheus实现全链路监控。开源建议结构清晰,适合大型社交平台构建与优化。
220 11
|
1月前
|
SQL 容灾 安全
云时代SQL Server的终极答案:阿里云 RDS SQL Server如何用异地容灾重构系统可靠性
在数字化转型的浪潮中,数据库的高可用性已成为系统稳定性的生命线。作为经历过多次生产事故的资深开发者,肯定深知传统自建SQL Server架构的脆弱性——直到遇见阿里云 RDS SQL Server,其革命性的异地容灾架构彻底改写了游戏规则。
|
4月前
|
安全 JavaScript 前端开发
HarmonyOS NEXT~HarmonyOS 语言仓颉:下一代分布式开发语言的技术解析与应用实践
HarmonyOS语言仓颉是华为专为HarmonyOS生态系统设计的新型编程语言,旨在解决分布式环境下的开发挑战。它以“编码创造”为理念,具备分布式原生、高性能与高效率、安全可靠三大核心特性。仓颉语言通过内置分布式能力简化跨设备开发,提供统一的编程模型和开发体验。文章从语言基础、关键特性、开发实践及未来展望四个方面剖析其技术优势,助力开发者掌握这一新兴工具,构建全场景分布式应用。
474 35
|
4月前
|
监控 Java 调度
SpringBoot中@Scheduled和Quartz的区别是什么?分布式定时任务框架选型实战
本文对比分析了SpringBoot中的`@Scheduled`与Quartz定时任务框架。`@Scheduled`轻量易用,适合单机简单场景,但存在多实例重复执行、无持久化等缺陷;Quartz功能强大,支持分布式调度、任务持久化、动态调整和失败重试,适用于复杂企业级需求。文章通过特性对比、代码示例及常见问题解答,帮助开发者理解两者差异,合理选择方案。记住口诀:单机简单用注解,多节点上Quartz;若是任务要可靠,持久化配置不能少。
474 4
|
4月前
|
开发框架 Java 关系型数据库
在Linux系统中安装JDK、Tomcat、MySQL以及部署J2EE后端接口
校验时,浏览器输入:http://[your_server_IP]:8080/myapp。如果你看到你的应用的欢迎页面,恭喜你,一切都已就绪。
391 17
|
5月前
|
关系型数据库 MySQL Linux
CentOS 7系统下详细安装MySQL 5.7的步骤:包括密码配置、字符集配置、远程连接配置
以上就是在CentOS 7系统下安装MySQL 5.7的详细步骤。希望这个指南能帮助你顺利完成安装。
1432 26
|
4月前
|
消息中间件 缓存 算法
分布式开发:数字时代的高性能架构革命-为什么要用分布式?优雅草卓伊凡
分布式开发:数字时代的高性能架构革命-为什么要用分布式?优雅草卓伊凡
237 0
分布式开发:数字时代的高性能架构革命-为什么要用分布式?优雅草卓伊凡

热门文章

最新文章

推荐镜像

更多