关于.NET微服务最热门的问题解答

dotNET跨平台 今天

在我们最近让我们一起学习 .NET的微服务专场活动中,我们收到了一些很好的问题。我们在现场已经回答很多问题,但我们想继续回答一些在会议中出现的最热门的问题。如果你错过了现场直播,不要担心,因为你可以按需观看。

我们一起学习 .NET:https://letslearndotnet.splashthat.com/

哔哩哔哩关于.NET微服务最热门的问题解答小程序

当我们扩展这些服务时,我们如何扩展与这些服务相关的数据库?

有一些定义良好的模式和最佳实践可以提高性能和扩展数据库。想要了解如何将数据划分为分区,以提高可伸缩性、减少和优化性能, 请参阅水平、垂直和功能性数据分区。想要深入研究微服务的伸缩性,分布式数据,为什么每个微服务都有数据库,在关系数据库和NoSQL数据库之间进行选择,请参考我们关于为Azure构建云原生.net应用程序的指导或下载免费的电子书。

水平、垂直和功能性数据分区:https://docs.microsoft.com/en-us/azure/architecture/best-practices/data-partitioning

为Azure构建云原生.net应用程序:https://docs.microsoft.com/en-us/dotnet/architecture/cloud-native/distributed-data

免费的电子书:https://dotnet.microsoft.com/learn/azure/architecture#ebook-cloud-native-azure-swimlane

我们是否需要为每个微服务使用一个新的数据库,或者微服务可以共享相同的数据库实例?

团队使用微服务的自主性是构建云原生应用的一个重要好处。为了能够使团队能够灵活地在生产中推出更新、安全补丁和bug修复,而不会破坏其他微服务, 最好使用独立的数据库实例。原生云应用架构的灵感来自于著名的12要素应用程序方法论。其中一个因素“支持服务”指出,数据存储、缓存、消息代理等辅助资源应该通过一个可寻址URL公开。云提供商提供了各种各样丰富的托管支持服务。我们建议检查云中可用的数据库选项,而不是自己拥有和维护数据库。

12要素应用程序方法论:https://12factor.net/

可用的数据库选项:https://docs.microsoft.com/en-us/dotnet/architecture/cloud-native/relational-vs-nosql-data

单个Web API能与微服务通信吗?

是的。如果微服务的端点在基础设施中是可到达的,或者使用公共端点安全地访问,那么单片应用程序可以与微服务进行通信。微服务及其数据可以通过其端点进行同步消费,或也可以通过消息传递(如事件总线)进行异步消费。作为现代化技术的一部分,我们推荐有助于渐进地迁移旧系统的扼杀模式。作为解决方案的一部分,您需要创建一个阻止请求的façade。façade将这些请求路由到旧应用程序或新服务。想要了解更多关于微服务通信和现代化技术的信息,请参阅.net体系结构指南。

扼杀模式:https://docs.microsoft.com/en-us/azure/architecture/patterns/strangler-fig

.net体系结构指南:https://dotnet.microsoft.com/learn/aspnet/microservices-architecture

如果微服务是松散耦合和独立部署的,它们如何相互通信?如何在微服务之间同步数据?

这是个很好的问题。在《为Azure构建云原生.net应用程序》一书的两个章节中详细解释了这个问题。这些链接会对你有所帮助:

  • 原生云通信模式或下载免费电子书。

  • 在分布式应用中管理数据。

  • 你也可以下载关于微服务架构指南的免费电子书,其中涵盖了一些模式,如DDD、CQRS、事件源等。

《为Azure构建云原生.net应用程序》:https://docs.microsoft.com/en-us/dotnet/architecture/cloud-native/

原生云通信模式:https://docs.microsoft.com/en-us/dotnet/architecture/cloud-native/communication-patterns

在分布式应用中管理数据:https://docs.microsoft.com/en-us/dotnet/architecture/cloud-native/distributed-data

微服务需要使用容器吗?

没有必要的。然而,使用容器也有它的好处。微服务,通常称为微服务体系结构,是设计指导和最佳实践。它帮助您将应用程序分解为由特定业务边界定义的多个较小的服务,这些服务由较小的团队独立管理。容器将应用程序及其配置和依赖项组合成一个单独的、独立的可部署单元。容器非常适合绑定和部署独立的微服务。您可以通过编写第一个微服务端点并将其容器化来了解其好处。

编写第一个微服务端点:https://dotnet.microsoft.com/learn/aspnet/microservice-tutorial/intro

更多的microservices资源

您是否正在寻找更多用于.net开发的微服务和本地云资源?请持续关注微软的blog和官方文档。有任何问题,欢迎来Microsoft Q&A 论坛提问:https://docs.microsoft.com/en-us/answers/products/dotnet。

blog:https://devblogs.microsoft.com/
(0)

相关推荐

  • Azure上的Java:云原生身份验证

    API通常需要识别其调用方.它可以是调用API的Web应用程序,也可以是调用API的另一个API.识别API的调用者也称为身份验证.建立自己的身份验证框架可能很棘手.值得庆幸的是,不必建立自己的身份验 ...

  • 温故知新,DotNet Core SDK和.Net CLI十八般武艺

    简介 .NET命令行接口 (CLI) 工具是用于开发.生成.运行和发布.NET应用程序的跨平台工具链. https://docs.microsoft.com/zh-cn/dotnet/core/too ...

  • ASP.NET Core学习路线图

    "作为 ASP.NET Core 开发者,我接下来应该学习什么?",下面将介绍需要学习的东西,其中包括:依赖注入.数据库.缓存.日志.模板引擎.实时通信.测试.任务调度.设计模式等 ...

  • 2021年,开发者必备的3款Kubernetes工具

    在过去几年,我们看到有大量工具被开发出来,用于简化在 Kubernetes 上的软件开发.正如生态系统中,优胜劣汰.适者生存一样,功能强大.操作便利的工具会不断壮大,反之,则不会被使用者接受.那么,2 ...

  • 一文看懂:什么是.NET Core以及.NET Core能做什么?

    我们都知道.NET Core是一个可以用来构建现代.可伸缩和高性能的跨平台软件应用程序的通用开发框架.可用于为Windows.Linux和MacOS构建软件应用程序. 与其他软件框架不同,.NET C ...

  • 使用cmd命令行(.NET Core CLI)来启动ASP.NET Core 应用程序的多个实例

    本章主要和大家分享下如何使用cmd命令行(.NET Core CLI)来启动ASP.NET Core 应用程序的多个实例,以此来模拟集群. .NET Core 命令行接口 (CLI) 工具是用于开发. ...

  • 下一代网络靶场:将事件响应演习带入云端

    HW期间,为防范钓鱼,即日起FreeBuf将取消投稿文章的一切外部链接.给您带来的不便,敬请谅解~ IBM X-Force始终秉承"以事件响应为中心",使客户始终处于网络安全体验的 ...

  • 数字化需要授之以渔,Azure动手实验营在等你

    20年前,尼古拉·尼葛洛庞帝在<数字化生存>中,对数字化时代就有了这样的预言:"我们无法否定数字化时代的存在,也无法阻止数字化时代的前进,就像我们无法对抗大自然的力量一样&quo ...

  • 微服务实践之分布式定时任务

    承接上篇:上篇文章讲到改造 go-zero 生成的 app module 中的 gateway & RPC .本篇讲讲如何接入 异步任务 以及 log的使用. Delay Job 日常任务开放 ...

  • 一文了解四种软件架构:Serverless架构、微服务架构、分布式架构、单体架构

    如果一个软件开发人员,不了解软件架构的演进,会制约技术的选型和开发人员的生存.晋升空间.这里我列举了目前主要的四种软件架构以及他们的优缺点,希望能够帮助软件开发人员拓展知识面. 一.单体架构 单体架构 ...

  • 通过Dapr实现一个简单的基于.net的微服务电商系统(九)——一步一步教你如何撸Dapr之OAuth2授权-百度版

    曾宇平 dotNET跨平台 今天 目录: 一.通过Dapr实现一个简单的基于.net的微服务电商系统 二.通过Dapr实现一个简单的基于.net的微服务电商系统(二)--通讯框架讲解 三.通过Dapr ...

  • 去中心化计算的未来:通过 RPC 从微服务过渡到 WASM

    在另外一篇文章<区块链.硬件与面向服务的架构,WASM 即将迎来大爆发?>,里面有绝佳的浏览器内的 WASM 应用程序示例,并辅以了对WebAssembly(Wasm)的详细解释. 但正如 ...

  • 微服务调用链日志追踪分析

    一.技术原理 1.1 背景 微服务架构是一个分布式架构,它按业务划分服务单元,一个分布式系统往往有很多个服务单元.由于服务单元数量众多,业务的复杂性,如果出现了错误和异常,很难去定位.主要体现在,一个 ...

  • .NET Core with 微服务 - 什么是微服务

    今天 以下文章来源于馒哥不光会玩当耐特 ,作者MJZHOU 馒哥不光会玩当耐特这个号主要分享.NET相关知识,但也不光是.NET,也会涉及其他任何技术. 微服务是这几年最流行的架构,说起架构不提微服务 ...

  • 微服务架构的前世今生

    传统行业向互联网行业的转型 背景 2012年以后,因为移动互联网的兴起,随着网名数量的增多,需求变化大,用户群体大.导致已有的应用程序无法抗住大规模的并发,且版本迭代麻烦,扩展不够灵活,应对外界环境能 ...

  • 微服务初级

    什么是服务治理: Spring Cloud封装了Netflix公司开发的Eureka模块来实现服务治理 在传统的rpc远程调用框架中,管理每个服务与服务之间依赖关系比较复杂,管理比较复杂,所以需要使用 ...

  • 分布式事务+DDD+负载均衡+服务治理已撸!微服务不就这点事?

    Go语言中文网 今天 最近有看到"微服务,分久必合.合久必分"的言论,我同意,微服务不是架构演变的终点,细说还有Serverless.FaaS等方向.但纠结要不要拆分是没有必要的, ...