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

点击蓝字

关注我们

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

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

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

有一些定义良好的模式和最佳实践可以提高性能和扩展数据库。想要了解如何将数据划分为分区,以提高可伸缩性、减少和优化性能, 请参阅水平、垂直和功能性数据分区。想要深入研究微服务的伸缩性,分布式数据,为什么每个微服务都有数据库,在关系数据库和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/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/302118.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

超级智能玩具《小小机器人》|全新50种玩法,创造力之源

致砖《小小机器人》全新套装电动机械的完美结合先来看看视频过过眼瘾吧来自美国STEAM教育让孩子跨学科学知识积木向来是STEAM教育很重要的一部分,因为它涉及到了多种学科:要搭建得稳固——这是工程学;要精准搭建——这是数学;要外…

链表归并成递减c语言,将两个递增的单链表合并为一个递减的单链表

问题描述:假设有两个按元素值递增次序排列的线性表,均以单链表形式存储。请编写算法将这两个单链表归并为一个按元素值递减次序排列的单链表,并要求利用原来两个单链表的结点存放归并后的单链表。问题解答:算法思想:两…

强烈推荐!孩子的科普从这套全球畅销250万册的最酷科学书起步

在马斯的学生时代的记忆中,数学定义定理、化学方程式、物理公式……这些科学知识点总是冷冰冰的,枯燥、深奥也总是科学的代名词。如今教育局明确规定科学课是小学必修课,孩子也逐步接受科学知识的熏陶。但科学课上冷冰冰的,枯燥、…

技术分享|手机推送原理剖析指南

源宝导读:本文旨在对手机推送原理进行剖析和阐述,对业务开发做一些方向性的解惑。一、手机推送的基本概念 ——什么是手机推送?百度词条:手机推送服务是指服务器 定向将信息实时送达手机的服务词条中有2组概念:第一组是…

IO控制命令

ioctl 控制套接字IO行为,获取套接字未决IO的信息。 向套接字发送ioctl命令的函数有两个 一个是源于winsock1 的 ioctlsocket 另一个是 winsock2 新引进的 WSAIoctl ioctl的常用命令: FIONBIO:将套接字设置于非阻塞模式 FIONREAD:返回套接字上…

闽高校计算机二级c语言模拟器,闽高校计算机二级C语言模拟卷及答案.doc

闽高校计算机二级C语言模拟卷及答案.doc (54页)本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦!9.90 积分一、单项选择题(每小题2分,共20分)1.以下4组用户定义标识符中&#xf…

重磅!中国最赚钱的公司,要上市了!

全世界只有3.14 % 的人关注了数据与算法之美12月31日,中国烟草子公司中烟国际(香港)神秘地向香港交易所递交了IPO的材料,赶上了2018年的末班车。嫡子上市,中国烟草自己向众人掀起了裙裾一角。过去三年,中烟…

浅谈VS2012单元测试

1、先建一个工程此工程带有待测试的方法 2、在解决方案中建立单元测试 3、在测试项目中添加测试项目的引用 4、写测试用例 namespace UnitTestProject1 {[TestClass]public class UnitTest1{[TestMethod]public void TestMethod1(){var restClient (IRestClient)new JsonServi…

我写代码时的小倔强

分享自己写代码时的好习惯,让你的编程能力突飞猛进!大家好,我是鱼皮,上回说到,很多同学在学编程时不注重代码质量,养成坏习惯的同时,失去了提升自己编程能力的机会。还没读上篇文章的同学&#…

c语言管理系统信息以文件保存,求大神给一份能用的c语言的学籍管理系统:且能进行文件保存...

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼#include#include#pragma comment(lib,"libmysql.lib")void showmenu(){system("cls");prinft("\n\n\n\n\n");prinft("\t ┏━━━━━━━━━━━━━━━━━━━━━━━┓ \n");prin…

10个舍不得删的高质量公号

全世界有3.14 % 的人已经关注了数据与算法之美在信息爆炸的时代快节奏的生活里 你是否曾有一瞬间觉得忙碌而空虚?以下10个优质公众号能让你在闲暇的时候不断的提升自我,拓宽视野愿以书卷气,行我路千里历史学资讯ID:tongbanlishi▲…

数据初始化

成员初始化:java保证所有变量在使用前必须初始化。对于方法的局部变量,java以编译时错误的形式来保证,所以如果写成:void f(){int i;i; //Error.. i not initialized}会得到一条错误信息,告诉你i 可能尚未初始化。当然…

ML.NET Cookbook:(7)如何训练回归模型?

通常,为了在ML.NET中训练任何模型,您将经历三个步骤:弄清楚训练数据如何以IDataView形式进入ML.NET。将“学习管道”构建为一系列基本的“运算符”(估计器)。在管道上调用Fit以获得经过训练的模型。示例文件[1]:featur…

android动画送礼物,Android仿直播类app赠送礼物功能

直播界面实现的是播放本地的视频文件:/*** 直播界面,用于对接直播功能*/public class LiveFrag extends Fragment {private ImageView img_thumb;private VideoView video_view;NullableOverridepublic View onCreateView(NonNull LayoutInflater inflat…

一张纸一幅图,竟然提高了10倍的学习和工作效率!?

人类大脑的容量远远超出一般人的想象,时到21世纪的今天,我们对大脑的运用远远不够。大脑机能的使用率基于我们的思维模式,而思维导图正是开发大脑中最有效的利器!之前小木给大家推荐了一套基于少儿大脑思维开发的书籍——东尼博赞…

ftp 使用

先假设有一FTP服务器,FTP服务器:qint.ithot.net,用户名:username 密码:user1234。在本地电脑D:盘创建一个文件夹"qint"。将要上传的文件复制到d:\qint里。通过FTP命令将文件从本地上传&#xf…

C# 消息队列之MSMQ

首先说一下,消息队列 (MSMQ Microsoft Message Queuing)是MS提供的服务,也就是Windows操作系统的功能,并不是.Net提供的。消息队列(MSMQ)技术使得运行于不同时间的应用程序能够在各种各样的网络和可能暂时脱机的系统之…

单调谐回路谐振放大器等效电路分析_手把手教你如何分析三极管电路

三极管有静态和动态两种工作状态。未加信号时三极管的直流工作状态称为静态,此时各极电流称为静态电流。给三极管加入交流信号之后的工作电流称为动态工作电流,这时三极管是交流工作状态,即动态。一个完整的三极管电路分析有4步:直…

android工程jrr版本怎么改,ionic3 生成android 如何控制versionCode版本号

POJ 1321 DFS题意:POJ少见的中文题,福利啊. 思路: 一开始也没有思路呃呃呃 . 裸搜,连样例都过不去...参照了网上的题解:一行一行DFS 茅塞顿开啊. #include #in ...SlickGrid example 4: 过滤ompoment" syntax. But ng-annotate doesnt understand ".co ...…

惊呆了!竟然还有这样的操作!

2018已成为过去,2019的序幕已经悄然打开!2019开年钜惠盛大来袭!(福利在最后!!!)Python专场Python快速入门实战(59.9)人工智能的浪潮下,Python因其…