Dapr + .NET 实战(十三)跨语言开发
歡迎大家參加4小時Dapr+.NET 5的實戰課程
課程鏈接? ? ?https://ke.qq.com/course/4000292?tuin=1271860f
?因為基于Dapr的服務架構是不限語言的,我們來看看Dapr的跨語言開發。我們使用golang,python,.NET來實現跨語言的服務調用,拓撲如下
?我們繼續使用.NET 5的fontend和backend,新增python的flask服務,新增golang的beego服務。
1.新增python的flask服務
新增python虛擬環境flask_env
mkvirtualenv flask_env進入flask_env,安裝flask和dapr
pip install flask pip install dapr新增簡單的flask服務,結構如下
指定服務端口5003,并調用frontend的Dapr/ip接口
from flask import Flask from dapr.clients import DaprClientapp = Flask(__name__)@app.route("/") def call_frontend():with DaprClient() as d:res = d.invoke_method('frontend','Dapr/ip',None)return res.text()app.run(port=5003)2.新增golang的beego服務
安裝beego
go get github.com/beego/bee/v2新增beego服務
bee new goapi項目結構如下
修改conf/app.conf中的監聽端口5004
appname = daprapi httpport = 5004 runmode = dev修改controllers/default.go api,調用pythonapi的接口/
package controllersimport (beego "github.com/beego/beego/v2/server/web"dapr "github.com/dapr/go-sdk/client""context" )type MainController struct {beego.Controller }func (c *MainController) Get() {ctx := context.Background()client, err := dapr.NewClient()if err != nil{c.Data["json"] = err.Error()c.ServeJSON()}// defer client.Close()resp, err := client.InvokeMethod(ctx, "pythonapi", "/", "get")if err != nil{c.Data["json"] = err.Error()c.ServeJSON()}c.Data["json"] = string(resp)c.ServeJSON() }3.啟動服務并測試
啟動backend
dapr run --dapr-http-port 3511 --app-port 5000 --app-id backend dotnet .\BackEnd\bin\Debug\net5.0\BackEnd.dll啟動frontend
dapr run --dapr-http-port 3501 --app-port 5001 --app-id frontend dotnet .\FrontEnd\bin\Debug\net5.0\FrontEnd.dll啟動pythonapi
dapr run --dapr-http-port 3503 --app-port 5003 --app-id pythonapi python ./flaskapi/app.py啟動goapi
dapr run --dapr-http-port 3504 --app-port 5004 --app-id goapi bee run現在調用goapi的默認接口,調用成功!!
最后,實戰源碼?https://github.com/cysnet/dapr-aspnetcore-demo
相關文章:
Dapr實戰(一) 基礎概念與環境搭建
Dapr + .NET Core實戰(二) 服務調用
Dapr + .NET Core實戰(三)狀態管理
Dapr + .NET 實戰(四)發布和訂閱
Dapr + .NET 實戰(五)Actor
Dapr + .NET 實戰(六)綁定
Dapr + .NET 實戰(七)Secrets
Dapr + .NET 實戰(八)服務監測
Dapr + .NET 實戰(九)本地調試
Dapr + .NET 實戰(十-終篇)K8S運行Dapr
Dapr + .NET實戰(十一)單機Dapr集群負載均衡
Dapr + .NET 實戰(十二)服務調用之GRPC
為什么 Dapr 如此令人興奮
總結
以上是生活随笔為你收集整理的Dapr + .NET 实战(十三)跨语言开发的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何分析 StackOverflow 异
- 下一篇: .NET 基金会项目介绍 - React