在咱们最近让咱们一起学习.NET 的微服务专场流动中,咱们收到了一些很好的问题。咱们在现场曾经答复很多问题,但咱们想持续答复一些在会议中呈现的最热门的问题。如果你错过了现场直播,不要放心,因为你能够按需观看。
https://www.bilibili.com/vide…
当咱们扩大这些服务时,咱们如何扩大与这些服务相干的数据库?
有一些定义良好的模式和最佳实际能够进步性能和扩大数据库。想要理解如何将数据划分为分区,以进步可伸缩性、缩小和优化性能, 请参阅程度、垂直和功能性数据分区。想要深入研究微服务的伸缩性,分布式数据,为什么每个微服务都有数据库,在关系数据库和 NoSQL 数据库之间进行抉择,请参考咱们对于为 Azure 构建云原生.net 应用程序的领导或下载收费的电子书。
咱们是否须要为每个微服务应用一个新的数据库,或者微服务能够共享雷同的数据库实例?
团队应用微服务的自主性是构建云原生利用的一个重要益处。为了可能使团队可能灵便地在生产中推出更新、安全补丁和 bug 修复,而不会毁坏其余微服务, 最好应用独立的数据库实例。原生云利用架构的灵感来自于驰名的 12 因素应用程序方法论。其中一个因素“反对服务”指出,数据存储、缓存、音讯代理等辅助资源应该通过一个可寻址 URL 公开。云提供商提供了各种各样丰盛的托管反对服务。咱们倡议查看云中可用的数据库选项,而不是本人领有和保护数据库。
单个 Web API 能与微服务通信吗?
是的。如果微服务的端点在基础设施中是可达到的,或者应用公共端点平安地拜访,那么单片应用程序能够与微服务进行通信。微服务及其数据能够通过其端点进行同步生产,或也能够通过消息传递 (如事件总线) 进行异步生产。作为现代化技术的一部分,咱们举荐有助于渐进地迁徙旧零碎的扼杀模式。作为解决方案的一部分,您须要创立一个阻止申请的 façade。façade 将这些申请路由到旧应用程序或新服务。想要理解更多对于微服务通信和现代化技术的信息,请参阅.net 体系结构指南。
如果微服务是涣散耦合和独立部署的,它们如何互相通信? 如何在微服务之间同步数据?
这是个很好的问题。在《为 Azure 构建云原生.net 应用程序》一书的两个章节中具体解释了这个问题。这些链接会对你有所帮忙:
- 原生云通信模式或下载收费电子书。
- 在分布式应用中治理数据。
- 你也能够下载对于微服务架构指南的收费电子书,其中涵盖了一些模式,如 DDD、CQRS、事件源等。
微服务须要应用容器吗?
没有必要的。然而,应用容器也有它的益处。微服务,通常称为微服务体系结构,是设计领导和最佳实际。它帮忙您将应用程序合成为由特定业务边界定义的多个较小的服务,这些服务由较小的团队独立治理。容器将应用程序及其配置和依赖项组合成一个独自的、独立的可部署单元。容器非常适合绑定和部署独立的微服务。您能够通过编写第一个微服务端点并将其容器化来理解其益处。
更多的 microservices 资源
您是否正在寻找更多用于.net 开发的微服务和本地云资源? 请继续关注微软的 blog 和官网文档。有任何问题,欢送来 Microsoft Q&A 论坛发问:
https://docs.microsoft.com/en…