华为云提供针对Nuget包管理器的缓存加速服务测试
在Visual Studio 2013、2015、2017中,使用的是Nuget包管理器對第三方組件進行管理升級的。而且 Nuget 是我們使用.NET Core的一項基礎設施,.NET的軟件包管理器NuGet.org是一項面向全球用戶搭建的服務,不論用戶身在何處,NuGet.org都應該有能力提供高性能的服務。2017 年微軟針對中國訪問Nuget服務的訪問慢的問題進行了優化,把Blob存儲備份到中國本地,并使用本地CDN服務商來處理軟件包下載請求,具體參考?https://blog.nuget.org/20170907/Changes-to-NuGet-dot-org-service-management-and-performance-improvements-in-China.html。
Nuget包的API分為搜索、注冊和存儲三大類。其中使用最為頻繁的是注冊和存儲兩類API。華為云鏡像站點https://mirrors.huaweicloud.com/?的Nuget鏡像 包含了緩存的反向代理來加速這些API。 使用這個鏡像可以在華為云和在應用開發可實現如下加速效果:
對于包的搜索:無加速效果。搜索組件包是由額外的域名提供的,因此無法提供加速。本加速僅針對?api.nuget.org?進行,目前僅支持?v3 版本的 api?以及包存儲
安裝、卸載、升級包等:完全加速。所有包信息均按天緩存在服務器上,每天每個包第一次訪問為代理訪問,隨后均為本地訪問
包安裝、升級下載文件:完全加速。每個包的每個版本第一次下載微代理訪問,之后所有同樣版本、ID的包均為本地訪問
華為云的鏡像服務需要登陸后才能看到鏡像地址:
https://repo.huaweicloud.com/repository/nuget/v3/index.json
使用方法:
在Visual Studio中點擊“工具”-“選項”,左側找到“Nuget包管理器”-“程序包源”,確認您的列表中包含有V3版的API(https://api.nuget.org/v3/index.json)。華為云的加速服務僅支持V3版包源,如果沒有這個記錄,那么您可能無法使用加速服務,請升級您的Nuget包管理器。
點擊添加按鈕,然后在下方輸入信息:
名稱:huaweicloud
包地址:https://repo.huaweicloud.com/repository/nuget/v3/index.json
輸入后,點擊更新按鈕更新,最后確認并關閉配置。
上面設置后,Nuget的配置文件里就加入了相關配置,文件位置在:C:\Users\geffzhang\AppData\Roaming\NuGet\Nuget.config ,其中geffzhang 是我的電腦賬號,更換你的賬號,下面是我的Nuget 配置樣例:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
?? <packageSources>
?? <add key="nuget.org" value="https://api.nuget.org/v3/index.json"?protocolVersion="3" />
?? <add key="orchardcore" value="https://www.myget.org/F/orchardcore-preview/api/v3/index.json"?/>
?? <add key="tarsnet" value="https://www.myget.org/f/tarsnet"?/>
??? <add key="Microsoft Visual Studio Offline Packages" value="C:\Program Files (x86)\Microsoft SDKs\NuGetPackages\" />
???? <add key="huaweicloud" value="https://repo.huaweicloud.com/repository/nuget/v3/index.json"?/>
?? </packageSources>
?? <packageRestore>
???? <add key="enabled" value="True" />
???? <add key="automatic" value="True" />
?? </packageRestore>
?? <bindingRedirects>
???? <add key="skip" value="False" />
?? </bindingRedirects>
?? <packageManagement>
???? <add key="format" value="0" />
???? <add key="disabled" value="False" />
?? </packageManagement>
</configuration>
上述操作我們都是在windows 10 上的,特別是做.NET Core的開發,很多同學喜歡用Mac,如果是Mac 與 Linux 中的路徑是,那么路徑是在 ~/.nuget/NuGet/NuGet.Config。
上面的配置是全局的配置, 如果我們的項目使用的是華為云的DevCloud 的持續集成可以在項目中引入Nuget.config來完成:
<?xml version="1.0" encoding="utf-8"?>
< configuration>
?? <packageSources>???
???? <add key="huaweicloud" value="https://repo.huaweicloud.com/repository/nuget/v3/index.json"?/>
?? </packageSources>
?? <packageRestore>
???? <add key="enabled" value="True" />
???? <add key="automatic" value="True" />
?? </packageRestore>
?? <bindingRedirects>
???? <add key="skip" value="False" />
?? </bindingRedirects>
?? <packageManagement>
???? <add key="format" value="0" />
???? <add key="disabled" value="False" />
?? </packageManagement>
< /configuration>
當你使用dotnet restore 時也可以通過 –s 指定使用華為云鏡像,下面我們就用這種方法來測試下華為云的鏡像的速度,下面我用兩個項目來測試,測試結果表明 華為云的鏡像的速度還是要比官方的要快:
D:\workshop\Github\abp\modules\account>dotnet restore -s?https://repo.huaweicloud.com/repository/nuget/v3/index.json
?? 正在還原 D:\workshop\Github\abp\framework\src\Volo.Abp.AspNetCore.Mvc.Contracts\Volo.Abp.AspNetCore.Mvc.Contracts.csproj 的包...
?? 正在還原 D:\workshop\Github\abp\framework\src\Volo.Abp.ApiVersioning.Abstractions\Volo.Abp.ApiVersioning.Abstractions.csproj 的包...
?? 正在還原 D:\workshop\Github\abp\framework\src\Volo.Abp.AspNetCore.Mvc.UI.Bundling\Volo.Abp.AspNetCore.Mvc.UI.Bundling.csproj 的包...
?? 正在還原 D:\workshop\Github\abp\framework\src\Volo.Abp.AspNetCore.Mvc.UI.Bootstrap\Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.csproj 的包...
?? 正在還原 D:\workshop\Github\abp\framework\src\Volo.Abp.AspNetCore.Mvc.UI.Packages\Volo.Abp.AspNetCore.Mvc.UI.Packages.csproj 的包...
?? 正在還原 D:\workshop\Github\abp\framework\src\Volo.Abp.AspNetCore.Mvc\Volo.Abp.AspNetCore.Mvc.csproj 的包...
?? 正在還原 D:\workshop\Github\abp\framework\src\Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared\Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.csproj 的包...
?? 正在還原 D:\workshop\Github\abp\framework\src\Volo.Abp.AspNetCore.Mvc.UI\Volo.Abp.AspNetCore.Mvc.UI.csproj 的包...
?? D:\workshop\Github\abp\framework\src\Volo.Abp.AspNetCore.Mvc.Contracts\Volo.Abp.AspNetCore.Mvc.Contracts.csproj 的還原在 446.67 ms 內完成。
?? D:\workshop\Github\abp\framework\src\Volo.Abp.ApiVersioning.Abstractions\Volo.Abp.ApiVersioning.Abstractions.csproj 的還原在 446.67 ms 內完成。
?? 正在還原 D:\workshop\Github\abp\framework\src\Volo.Abp.AspNetCore\Volo.Abp.AspNetCore.csproj 的包...
?? 正在還原 D:\workshop\Github\abp\framework\src\Volo.Abp.Auditing\Volo.Abp.Auditing.csproj 的包...
?? D:\workshop\Github\abp\framework\src\Volo.Abp.Auditing\Volo.Abp.Auditing.csproj 的還原在 68.02 ms 內完成。
?? 正在還原 D:\workshop\Github\abp\framework\src\Volo.Abp.Authorization\Volo.Abp.Authorization.csproj 的包...
?? D:\workshop\Github\abp\framework\src\Volo.Abp.Authorization\Volo.Abp.Authorization.csproj 的還原在 49.81 ms 內完成。
?? D:\workshop\Github\abp\framework\src\Volo.Abp.AspNetCore\Volo.Abp.AspNetCore.csproj 的還原在 203.87 ms 內完成。
?? 正在還原 D:\workshop\Github\abp\framework\src\Volo.Abp.AutoMapper\Volo.Abp.AutoMapper.csproj 的包...
?? 正在還原 D:\workshop\Github\abp\framework\src\Volo.Abp.Caching\Volo.Abp.Caching.csproj 的包...
?? D:\workshop\Github\abp\framework\src\Volo.Abp.Caching\Volo.Abp.Caching.csproj 的還原在 88.01 ms 內完成。
?? D:\workshop\Github\abp\framework\src\Volo.Abp.AutoMapper\Volo.Abp.AutoMapper.csproj 的還原在 80.04 ms 內完成。
?? D:\workshop\Github\abp\framework\src\Volo.Abp.AspNetCore.Mvc\Volo.Abp.AspNetCore.Mvc.csproj 的還原在 910.08 ms 內完成。
?? 正在還原 D:\workshop\Github\abp\framework\src\Volo.Abp.Data\Volo.Abp.Data.csproj 的包...
?? 正在還原 D:\workshop\Github\abp\framework\src\Volo.Abp.Core\Volo.Abp.Core.csproj 的包...
?? D:\workshop\Github\abp\framework\src\Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared\Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.csproj 的還原在 921.41 ms 內完成。
?? D:\workshop\Github\abp\framework\src\Volo.Abp.AspNetCore.Mvc.UI.Packages\Volo.Abp.AspNetCore.Mvc.UI.Packages.csproj 的還原在 955.39 ms 內完成。
?? D:\workshop\Github\abp\framework\src\Volo.Abp.AspNetCore.Mvc.UI.Bundling\Volo.Abp.AspNetCore.Mvc.UI.Bundling.csproj 的還原在 954.79 ms 內完成。
?? D:\workshop\Github\abp\framework\src\Volo.Abp.AspNetCore.Mvc.UI\Volo.Abp.AspNetCore.Mvc.UI.csproj 的還原在 923.08 ms 內完成。
?? D:\workshop\Github\abp\framework\src\Volo.Abp.AspNetCore.Mvc.UI.Bootstrap\Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.csproj 的還原在 970.79 ms 內完成。
?? 正在還原 D:\workshop\Github\abp\framework\src\Volo.Abp.Ddd.Application\Volo.Abp.Ddd.Application.csproj 的包...
?? 正在還原 D:\workshop\Github\abp\framework\src\Volo.Abp.EventBus\Volo.Abp.EventBus.csproj 的包...
?? 正在還原 D:\workshop\Github\abp\framework\src\Volo.Abp.Ddd.Domain\Volo.Abp.Ddd.Domain.csproj 的包...
?? 正在還原 D:\workshop\Github\abp\framework\src\Volo.Abp.Guids\Volo.Abp.Guids.csproj 的包...
?? 正在還原 D:\workshop\Github\abp\framework\src\Volo.Abp.Http.Abstractions\Volo.Abp.Http.Abstractions.csproj 的包...
?? D:\workshop\Github\abp\framework\src\Volo.Abp.Core\Volo.Abp.Core.csproj 的還原在 116.76 ms 內完成。
?? D:\workshop\Github\abp\framework\src\Volo.Abp.Data\Volo.Abp.Data.csproj 的還原在 116.35 ms 內完成。
?? 正在還原 D:\workshop\Github\abp\framework\src\Volo.Abp.Http\Volo.Abp.Http.csproj 的包...
?? 正在還原 D:\workshop\Github\abp\framework\src\Volo.Abp.Json\Volo.Abp.Json.csproj 的包...
?? D:\workshop\Github\abp\framework\src\Volo.Abp.Ddd.Application\Volo.Abp.Ddd.Application.csproj 的還原在 93.06 ms 內完成。
?? D:\workshop\Github\abp\framework\src\Volo.Abp.EventBus\Volo.Abp.EventBus.csproj 的還原在 92.87 ms 內完成。
?? 正在還原 D:\workshop\Github\abp\framework\src\Volo.Abp.Localization.Abstractions\Volo.Abp.Localization.Abstractions.csproj 的包...
?? D:\workshop\Github\abp\framework\src\Volo.Abp.Http.Abstractions\Volo.Abp.Http.Abstractions.csproj 的還原在 85.25 ms 內完成。
?? 正在還原 D:\workshop\Github\abp\framework\src\Volo.Abp.Localization\Volo.Abp.Localization.csproj 的包...
?? D:\workshop\Github\abp\framework\src\Volo.Abp.Guids\Volo.Abp.Guids.csproj 的還原在 115 ms 內完成。
?? D:\workshop\Github\abp\framework\src\Volo.Abp.Ddd.Domain\Volo.Abp.Ddd.Domain.csproj 的還原在 130.02 ms 內完成。
?? 正在還原 D:\workshop\Github\abp\framework\src\Volo.Abp.MultiTenancy.Abstractions\Volo.Abp.MultiTenancy.Abstractions.csproj 的包...
?? D:\workshop\Github\abp\framework\src\Volo.Abp.Http\Volo.Abp.Http.csproj 的還原在 96.88 ms 內完成。
?? 正在還原 D:\workshop\Github\abp\framework\src\Volo.Abp.Security\Volo.Abp.Security.csproj 的包...
?? 正在還原 D:\workshop\Github\abp\framework\src\Volo.Abp.ObjectMapping\Volo.Abp.ObjectMapping.csproj 的包...
?? 正在還原 D:\workshop\Github\abp\framework\src\Volo.Abp.Settings\Volo.Abp.Settings.csproj 的包...
?? 正在還原 D:\workshop\Github\abp\framework\src\Volo.Abp.Serialization\Volo.Abp.Serialization.csproj 的包...
?? D:\workshop\Github\abp\framework\src\Volo.Abp.Json\Volo.Abp.Json.csproj 的還原在 92.34 ms 內完成。
?? 正在還原 D:\workshop\Github\abp\framework\src\Volo.Abp.Threading\Volo.Abp.Threading.csproj 的包...
?? D:\workshop\Github\abp\framework\src\Volo.Abp.Localization.Abstractions\Volo.Abp.Localization.Abstractions.csproj 的還原在 90.79 ms 內完成。
?? D:\workshop\Github\abp\framework\src\Volo.Abp.Localization\Volo.Abp.Localization.csproj 的還原在 120.39 ms 內完成。
?? D:\workshop\Github\abp\framework\src\Volo.Abp.MultiTenancy.Abstractions\Volo.Abp.MultiTenancy.Abstractions.csproj 的還原在 106.73 ms 內完成。
?? D:\workshop\Github\abp\framework\src\Volo.Abp.Security\Volo.Abp.Security.csproj 的還原在 83.47 ms 內完成。
?? D:\workshop\Github\abp\framework\src\Volo.Abp.Serialization\Volo.Abp.Serialization.csproj 的還原在 81.14 ms 內完成。
?? D:\workshop\Github\abp\framework\src\Volo.Abp.ObjectMapping\Volo.Abp.ObjectMapping.csproj 的還原在 90.69 ms 內完成。
?? D:\workshop\Github\abp\framework\src\Volo.Abp.Settings\Volo.Abp.Settings.csproj 的還原在 92.39 ms 內完成。
?? 正在還原 D:\workshop\Github\abp\framework\src\Volo.Abp.UI.Navigation\Volo.Abp.UI.Navigation.csproj 的包...
?? 正在還原 D:\workshop\Github\abp\framework\src\Volo.Abp.Timing\Volo.Abp.Timing.csproj 的包...
?? 正在還原 D:\workshop\Github\abp\framework\src\Volo.Abp.UI\Volo.Abp.UI.csproj 的包...
?? 正在還原 D:\workshop\Github\abp\framework\src\Volo.Abp.Validation\Volo.Abp.Validation.csproj 的包...
?? D:\workshop\Github\abp\framework\src\Volo.Abp.Threading\Volo.Abp.Threading.csproj 的還原在 85.68 ms 內完成。
?? 正在還原 D:\workshop\Github\abp\framework\src\Volo.Abp.Uow\Volo.Abp.Uow.csproj 的包...
?? 正在還原 D:\workshop\Github\abp\framework\src\Volo.Abp.VirtualFileSystem\Volo.Abp.VirtualFileSystem.csproj 的包...
?? 正在還原 D:\workshop\Github\abp\modules\account\src\Volo.Abp.Account.Web\Volo.Abp.Account.Web.csproj 的包...
?? 正在還原 D:\workshop\Github\abp\modules\identityserver\src\Volo.Abp.IdentityServer.Domain.Shared\Volo.Abp.IdentityServer.Domain.Shared.csproj 的包...
?? D:\workshop\Github\abp\framework\src\Volo.Abp.Timing\Volo.Abp.Timing.csproj 的還原在 128.06 ms 內完成。
?? D:\workshop\Github\abp\framework\src\Volo.Abp.UI\Volo.Abp.UI.csproj 的還原在 128.03 ms 內完成。
?? D:\workshop\Github\abp\framework\src\Volo.Abp.VirtualFileSystem\Volo.Abp.VirtualFileSystem.csproj 的還原在 91.36 ms 內完成。
?? D:\workshop\Github\abp\framework\src\Volo.Abp.UI.Navigation\Volo.Abp.UI.Navigation.csproj 的還原在 147.08 ms 內完成。
?? D:\workshop\Github\abp\framework\src\Volo.Abp.Validation\Volo.Abp.Validation.csproj 的還原在 143.89 ms 內完成。
?? D:\workshop\Github\abp\framework\src\Volo.Abp.Uow\Volo.Abp.Uow.csproj 的還原在 111.94 ms 內完成。
?? D:\workshop\Github\abp\modules\identityserver\src\Volo.Abp.IdentityServer.Domain.Shared\Volo.Abp.IdentityServer.Domain.Shared.csproj 的還原在 107.53 ms 內完成。
?? 正在還原 D:\workshop\Github\abp\modules\permission-management\src\Volo.Abp.PermissionManagement.Domain.Shared\Volo.Abp.PermissionManagement.Domain.Shared.csproj 的包...
?? 正在還原 D:\workshop\Github\abp\modules\identity\src\Volo.Abp.Identity.Domain.Shared\Volo.Abp.Identity.Domain.Shared.csproj 的包...
?? 正在還原 D:\workshop\Github\abp\modules\identityserver\src\Volo.Abp.IdentityServer.Domain\Volo.Abp.IdentityServer.Domain.csproj 的包...
?? 正在還原 D:\workshop\Github\abp\modules\identity\src\Volo.Abp.Identity.AspNetCore\Volo.Abp.Identity.AspNetCore.csproj 的包...
?? 正在還原 D:\workshop\Github\abp\modules\users\src\Volo.Abp.Users.Abstractions\Volo.Abp.Users.Abstractions.csproj 的包...
?? 正在還原 D:\workshop\Github\abp\modules\permission-management\src\Volo.Abp.PermissionManagement.Domain\Volo.Abp.PermissionManagement.Domain.csproj 的包...
?? 正在還原 D:\workshop\Github\abp\modules\identity\src\Volo.Abp.Identity.Domain\Volo.Abp.Identity.Domain.csproj 的包...
?? D:\workshop\Github\abp\modules\permission-management\src\Volo.Abp.PermissionManagement.Domain.Shared\Volo.Abp.PermissionManagement.Domain.Shared.csproj 的還原在 119.46 ms 內完成。
?? D:\workshop\Github\abp\modules\identity\src\Volo.Abp.Identity.Domain.Shared\Volo.Abp.Identity.Domain.Shared.csproj 的還原在 136.13 ms 內完成。
?? D:\workshop\Github\abp\modules\users\src\Volo.Abp.Users.Abstractions\Volo.Abp.Users.Abstractions.csproj 的還原在 119.18 ms 內完成。
?? D:\workshop\Github\abp\modules\permission-management\src\Volo.Abp.PermissionManagement.Domain\Volo.Abp.PermissionManagement.Domain.csproj 的還原在 207.33 ms 內完成。
?? D:\workshop\Github\abp\modules\identity\src\Volo.Abp.Identity.Domain\Volo.Abp.Identity.Domain.csproj 的還原在 204.05 ms 內完成。
?? 正在還原 D:\workshop\Github\abp\modules\users\src\Volo.Abp.Users.Domain.Shared\Volo.Abp.Users.Domain.Shared.csproj 的包...
?? 正在還原 D:\workshop\Github\abp\modules\users\src\Volo.Abp.Users.Domain\Volo.Abp.Users.Domain.csproj 的包...
?? D:\workshop\Github\abp\modules\identity\src\Volo.Abp.Identity.AspNetCore\Volo.Abp.Identity.AspNetCore.csproj 的還原在 249.32 ms 內完成。
?? D:\workshop\Github\abp\modules\users\src\Volo.Abp.Users.Domain.Shared\Volo.Abp.Users.Domain.Shared.csproj 的還原在 48.91 ms 內完成。
?? D:\workshop\Github\abp\modules\users\src\Volo.Abp.Users.Domain\Volo.Abp.Users.Domain.csproj 的還原在 93.33 ms 內完成。
?? D:\workshop\Github\abp\modules\identityserver\src\Volo.Abp.IdentityServer.Domain\Volo.Abp.IdentityServer.Domain.csproj 的還原在 437.86 ms 內完成。
?? D:\workshop\Github\abp\modules\account\src\Volo.Abp.Account.Web\Volo.Abp.Account.Web.csproj 的還原在 699.7 ms 內完成。
總結
以上是生活随笔為你收集整理的华为云提供针对Nuget包管理器的缓存加速服务测试的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 在.NET Core中使用Excepti
- 下一篇: ASP.NET Core 2.2 : 扒