我有这种情况,我有一个外部.net核心API网关,我的移动设备与之交谈,然后是网关调用的许多单独的内部“微型”服务。
我的问题是本地服务器和Azure上的IIS / Kestrel(因为我的开发设置在Azure中,但在个人服务器上生产)。
问题是如果在两种情况下内部api的调用开箱即用的延迟时间都很小吗?或者我可以做一些事情来“连接”外部和内部api到减少延迟?
我真的找不到任何关于此的好数据,所以我觉得我没有这个问题的正确术语。
希望你能帮助我阐明一下。
答案 0 :(得分:0)
简答:在调用远程服务时,在.NET代码中使用async/await pattern。尽可能将服务和服务器放在一起,以减少网络开销。
如果您的代码通过HTTPS调用其他服务,则总会存在与以下内容相关的延迟:
前两个是最小的,你不能对它们做很多事情。数据包在两个物理位置之间所需的时间可能在5毫秒到200毫秒(或更长)之间变化,这就是将服务放在同一地理区域或数据中心的常见原因。
就您的代码而言,只要您使用async/await pattern,您的代码就已经以最佳网络速度运行。如果延迟不符合您的要求,您需要让服务器更快,或者将它们靠得更近。
公平警告:我不是网络工程师,这是一个非常高级的概述。我建议在Server Fault询问技术网络问题。