首页 > 其他分享 >在非k8s 环境下 的应用 使用 Dapr Sidekick for .NET

在非k8s 环境下 的应用 使用 Dapr Sidekick for .NET

时间:2022-11-28 15:39:18浏览次数:58  
标签:http 6001 -- Sidekick Dapr dapr NET

在k8s 环境下,通过Operator 可以管理Dapr sidecar, 在虚拟机环境下,我们也是非常需要这样的一个管理组件,类似下图:


​​在非k8s 环境下 的应用 使用 Dapr Sidekick for .NET_应用程序​​

在这张图片中,在上图左面,我们看到了“dapr.exe”、我们的应用程序和另一个进程“daprd.exe”之间的通信,该进程实际上是 Sidecar 进程。这是通常的方式(“开箱即用”),例如:

dapr run --app-id backend --app-port 5001  -- dotnet run --urls=http://localhost:5001/ -p ./WeatherForecastService/WeatherForecastService.csproj

dapr run --app-id proxy --app-port 6001  -- dotnet run --urls=http://localhost:6001/ -p ./WeatherForecastProxyService/WeatherForecastProxyService.csproj

图片右面,使用 Sidekick简化了此过程/通信,并且我们可以更好地控制以及其他功能。​Dapr Sidekick for .NET

我的示例代码放在这里:​​https://github.com/geffzhang/ServiceToService-Sideckick​​ ,通过简单的三步就可以完成这项工作。

1、添加Nuget 包 Man.Dapr.Sidekick.AspNetCore :

dotnet add package Man.Dapr.Sidekick.AspNetCore --version 1.2.12、修改类 Startup.cs 的  ConfigureServices 方法如下:

public void ConfigureServices(IServiceCollection services) { services.AddControllers(); // Add Dapr Sidekick services.AddDaprSidekick(Configuration); }

3、接下来,当我们的调用(或代理)应用程序调用另一个应用程序时,名称/id 为“ backend ”,我们需要指定其AppId。以同样的方式,由于我们使用“ http”,我们必须指出"AppSsl": false。所有这些规范都通过“ appsetings.json ” 文件传递给 Sidekick,如下所示。

项目backend 的配置:

"DaprSidekick": {
   // Set the runtime location of config/components files to be the "dapr" folder under the deployed application
   "RuntimeDirectory": "dapr",
   "Sidecar": {
     "AppId": "backend",
     "AppSsl": false,
     "AppPort": 5001,
     "DaprHttpPort": 3501,
     "DaprGrpcPort": 50001
   },
   "Placement": {},
   "Sentry": {}
}

项目 proxy的配置

"DaprSidekick": {
   // Set the runtime location of config/components files to be the "dapr" folder under the deployed application
   "RuntimeDirectory": "dapr",
   "Sidecar": {
     "AppId": "proxy",
     "AppSsl": false,
     "AppPort": 6001,
     "DaprHttpPort": 3601,
     "DaprGrpcPort": 60001
   },
   "Placement": {},
   "Sentry": {}
}

注意对于上述配置文件,由于我们运行多个项目,我们还必须指定“ AppPort ”、“ DaprHttpPort ”和“ DaprGrpcPort ”属性。其余的“Placement”和“Sentry”部分,以及其他属性,暂时可以忽略

RuntimeDirectory  是Dapr 运行时配置文件位置,我们在示例里测试使用Consul 作为服务注册和服务发现组件。

改造后直接运行就可以了,这个特别适合IOT场景下使用Dapr。

dotnet WeatherForecastService.dll --urls=http://localhost:5001

dotnet WeatherForecastProxyService.dll --urls=http://localhost:6001




标签:http,6001,--,Sidekick,Dapr,dapr,NET
From: https://blog.51cto.com/shanyou/5891337

相关文章

  • Dapr 和 Azure Functions : Hello world
    本篇文章内容来自​​https://charliedigital.com/2021/07/01/dapr-and-azure-functions-part-1-hello-world/​​,是按这篇文章的操作记录。使用AzureFunctionsCoreTo......
  • .NET团队送给.NET开发人员的云原生学习资源
    企业正在迅速采用云的功能来满足用户需求,提高应用程序的可伸缩性和可用性。要完全拥抱云并优化节约成本,就需要在设计应用程序时考虑到云的环境,也就是要用云原生的应用开发方......
  • ASP.NET MVC Framework 动态汇集
    ASP.NETMVC还会使用aspx,但是它没有viewstate,没有postback,所以它在这里只是个模板引擎.这和Castle的Monorail项目是一样的,只是Monorail的非强类型的Prope......
  • Kubernetes应用程序开发认证(CKAD) 经验分享
    众所周知,Kubernetes在容器编排器大战中脱颖而出后,从2020年以来变得越发的火热。那么云原生计算基金会(CNCF)联合Linux基金会就适时的推出了皆在考察相关从业者对Kubernetes的......
  • 将Quartz.NET集成到 Castle中
    Castle是针对.NET平台的一个开源项目,从数据访问框架ORM到IOC容器,再到WEB层的MVC框架、AOP,基本包括了整个开发过程中的所有东西,为我们快速的构建企业级的......
  • Net6 CodeFirst注入MySQL数据库上下文
    十年河东,十年河西,莫欺少年穷学无止境,精益求精 2022太难了,好多公司倒闭,互联网不景气,工作难找,苏州的C#/Net程序员的招聘更是少之又少,java,C,等其他语言也是供大于求,总之,难上......
  • OS X 上使用.NET开发应用程序
    MonoMac是面向MacOSXAPI的C#绑定,其API设计主要受到了MonoTouch的启发,后者可以基于Mono开发原生的iOS应用程序。MonoMac套件的目标之一,也是发布独立的.......
  • DevExpress作为企业赞助商加入.NET基金会
    .NET基金会是一个独立的非营利组织,于2014年成立,旨在围绕.NET不断增长的开源技术集合,促进开放开发和协作。它是商业和社区开发人员的论坛,通过促进开放性,社区参与和快速创新......
  • Jexus 5.8.2 正式发布为Asp.Net Core进入生产环境提供平台支持
    Jexus是一款运行于Linux平台,以支持 ASP.NET、PHP为特色的集高安全性和高性能为一体的WEB服务器和反向代理服务器。最新版5.8.2已经发布,有如下更新:1,现在大部分网站......
  • 通过Mono 在 Heroku 上运行 .NET 应用
    英文原文:​​Running.NETonHeroku​​中文原文:​​在Heroku上运行.NET应用​​自从加入了Heroku之后,我就想在这个平台上运行.NET程序。现在我很高兴向大家宣布,我......