分布式计算所面临的挑战
分布式体系结构的核心是能够调用对象上的方法或者与驻留在不同进程中甚至有可能在不同计算机上的服务进行通信。看起来这似
乎不难,但是您必须解决非常多的问题:
l 如何实例化远程对象?
l 如果您希望调用现有对象上的方法,那么如何获取对该对象的引用?
l 网络协议仅传输字节流,而不传输对象。如何才能通过字节流调用方法?
l 安全性如何?是否每个人都能够调用远程对象上的方法?
l 大多数网络在本质上都不可靠。如果无法访问远程对象,会出现什么情况?如果远程对象收到方法调用,但是因网络问题而
无法发送响应,该怎么办?
l 调用远程对象比调用本地方法慢得多。您是否希望异步调用远程方法,以便在远程对象处理请求的同时可以继续在本地处
理?
问题不胜枚举。幸运的是,.NET Framework 中的功能解决了其中的大多数问题,使得开发人员在创建分布式应用程序时不必处理
太多的细枝末节。这些功能使得远程调用对于程序员几乎是透明的(至少在句法级别是如此)。但是,这种简化可能存在一定的欺
骗性,因为开发人员还必须了解远程通信的一些基本原理,才能写出强大而高效的分布式应用程序。分布式系统模式群集有助于开
发人员在实现分布式应用程序时作出明智的设计决策。
使
乎不难,但是您必须解决非常多的问题:
l 如何实例化远程对象?
l 如果您希望调用现有对象上的方法,那么如何获取对该对象的引用?
l 网络协议仅传输字节流,而不传输对象。如何才能通过字节流调用方法?
l 安全性如何?是否每个人都能够调用远程对象上的方法?
l 大多数网络在本质上都不可靠。如果无法访问远程对象,会出现什么情况?如果远程对象收到方法调用,但是因网络问题而
无法发送响应,该怎么办?
l 调用远程对象比调用本地方法慢得多。您是否希望异步调用远程方法,以便在远程对象处理请求的同时可以继续在本地处
理?
问题不胜枚举。幸运的是,.NET Framework 中的功能解决了其中的大多数问题,使得开发人员在创建分布式应用程序时不必处理
太多的细枝末节。这些功能使得远程调用对于程序员几乎是透明的(至少在句法级别是如此)。但是,这种简化可能存在一定的欺
骗性,因为开发人员还必须了解远程通信的一些基本原理,才能写出强大而高效的分布式应用程序。分布式系统模式群集有助于开
发人员在实现分布式应用程序时作出明智的设计决策。
使
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
· 使用C#创建一个MCP客户端