zoukankan      html  css  js  c++  java
  • .NET跨平台之旅:将QPS 100左右的ASP.NET Core站点部署到Linux服务器上团队

    今天下午我们将生产环境中一个单台服务器 QPS(每秒请求数)在100左右的 ASP.NET Core 站点部署到了 Linux 服务器上,这是我们解决了在 .NET Core 上使用 EnyimMemcached(memcached客户端)的问题之后,.NET 跨平台之旅迈出的重要一步。这个 ASP.NET Core 站点,既用了缓存,也有数据库访问操作,是一个典型的 Web 站点,如果它能持续稳定运行,将为我们全站迁移至 ASP.NET Core + Linux 扫清障碍。

    这个 ASP.NET Core 站点用的 memcached 客户端是我们在 nuget.org 上最新发布的 EnyimMemcachedCore

    public void ConfigureServices(IServiceCollection services)
    {
        services.AddEnyimMemcached(options => options.AddServer("memcached", 11211));
    }

    .NET Core 用的是最新的 .NET Core 1.0.1;以 self-contained 方式部署,用 dotnet publish 命令发布出来的文件中包含可以直接在 Linux 上运行的可执行文件,因此服务器上无需另外安装 .NET Core 运行环境,用 scp 命令将 dotnuet publish 命令生成的文件上传到部署服务器即可。

    "frameworks": {
      "netcoreapp1.0.1": {
        "imports": [ "dnxcore50", "portable-net45+win8" ],
        "dependencies": {
          "Microsoft.NETCore.App": "1.0.1"
        }
      }
    }

    最前端用的是阿里云负载均衡,后端 2 台 Linux 服务器的配置是 1 核 CPU 与 1G 内存,Linux 发行版用的是 Ubuntu 14.04,使用 supervisor 以服务的方式运行站点。Web 服务器用的是 Kestrel,Kestrel 目前最大的问题是不支持主机名绑定,同一台服务器上的不同站点必须绑定不同的端口,这给部署带来了麻烦。数据库服务器用的是阿里云 RDS(SQL Server 2008 R2)。Memcached 缓存服务器用的是阿里云云数据库 Memcache 版。

    Now listening on: http://*:8003
    Application started. Press Ctrl+C to shut down.

    接下来,我们将一边观察已经运行在 ASP.NET Core + Linux 上的站点的运行情况,一边将更多项目迁移至 ASP.NET Core 。

  • 相关阅读:
    SilverLight之路(四)
    SilverLight之路(十一)
    SilverLight之路(五)
    SilverLight之路(九)
    SilverLight之路(八)
    设计silverlight的MediaPlay控件silverlight(银光)学习(3)
    自学MVC(三):郁闷的表单验证2009年05月04日
    silverlight的Button控件补完设计silverlight(银光)学习(2)
    拖动MediaPlay控件的滚动条来控制媒体播放silverlight(银光)学习(4)
    自学MVC(四):注册页面的完成2009年05月06日
  • 原文地址:https://www.cnblogs.com/cmt/p/5913155.html
Copyright © 2011-2022 走看看