Dapr,可能是传统应用转向微服务式应用最快的技术路线( 二 )


dapr dashboard -p 9999 #端口号指定一个空闲的就可以,不指定就是默认的8080
2.几个案例
案例其实我也不想说太多,一是因为官方也提供了案例,再有就是我们这边正式的项目也还没有开始向基于dapr的微服务方向转,但总算是有了个比较明确的方向,关于微服务的分享肯定也不是一篇两篇博客就能说清楚的,后续肯定会持续输出 。这里就主要聊一下在跑通这些案例的过程中需要注意的地方 。
0.开始之前
初始化dapr环境
dapr init --runtime-version 1.9.1
1.在本地跑通的案例
Dapr官方提供了基于诸多开发语言的SDK,包括了,所以,开发基于Dapr的应用非常方便 。
这里我们先假设一个微服务项目,包含一个前台服务,一个后台服务 。
前台服务
dotnet add package Dapr.AspNetCore
var builder = WebApplication.CreateBuilder(args);// Add services to the container.builder.Services.AddDaprClient();//...
using Dapr.Client;using Microsoft.AspNetCore.Mvc.RazorPages;namespace MyFrontEnd.Pages;public class IndexModel : PageModel{private readonly DaprClient _daprClient;public IndexModel(DaprClient daprClient){_daprClient = daprClient;}public async Task OnGet(){var forecasts = await _daprClient.InvokeMethodAsync>(HttpMethod.Get,"MyBackEnd",//后台服务的名称,这个要注意!"weatherforecast");ViewData["WeatherForecastData"] = forecasts;}}
@page@model IndexModel@{ViewData["Title"] = "Home page";}WelcomeLearn about building Web apps with ASP.NET Core.
@foreach (var forecast in (IEnumerable)ViewData["WeatherForecastData"]!){The forecast for @forecast.Date is @forecast.Summary!
}

后台服务
添加容器支持
关于添加容器支持的部分,我这里不多说了,就直接过一下流程,至于怎么启动容器,怎么配置等等网上也有很多教程,我在之前的博客里也提到过,可以参考简单:把项目打包成镜像,并发布到腾讯云?!为自己带盐写作社区
version: '3.4'services:myfrontend:image: ${DOCKER_REGISTRY-}myfrontendbuild:context: .dockerfile: MyFrontEnd/Dockerfileports:- "51000:50001"myfrontend-dapr:image: "daprio/daprd:1.9.1" #注意最好天上版本号,和本机开发环境保持一致,下面的同理command: [ "./daprd", "-app-id", "MyFrontEnd", "-app-port", "80" ] #注意这里的app-port参数要和项目对应的dockerfile里指定的端口参数对应depends_on:- myfrontendnetwork_mode: "service:myfrontend"mybackend:image: ${DOCKER_REGISTRY-}mybackendbuild:context: .dockerfile: MyBackEnd/Dockerfileports:- "52000:50001"mybackend-dapr:image: "daprio/daprd:1.9.1"command: [ "./daprd", "-app-id", "MyBackEnd", "-app-port", "80" ]depends_on:- mybackendnetwork_mode: "service:mybackend"
3.在开发环境下的集群上跑通案例()
要把项目移植到集群,对初学者来说其实不是件轻松事 。但我们如果要转型到微服务开发,就必须要尝试走通这一步 。
环境准备
的官方站点是:
根据文档的说明,先完成的安装 。这里要说明的是,安装需要环境,需要先检查自己的Linux系统或者虚拟机里是否安装了 。
我这里实际测试了基于.9和WSL2两种环境,其中的话,需要自己参照教程安装一下,WSL2和宿主机器共享运行环境,只要安装了,并配置了下图选项就可以
安装好后的效果
安装好之后,就可以安装了