网站右侧浮动导航,wordpress 钩子怎么用,可口可乐的网站建设,免费建网站可以找哪家英文网站一.前言Dubbo 是比较流行的服务治理框架#xff0c;国内不少大厂都在使用。以前的 Dubbo 使用的是私有协议#xff0c;采集用的 hessian 序列化#xff0c;对于多语言生态来说是极度的不友好。现在 Dubbo 发布了新版本 v3#xff0c;推出了基于 gRPC 的新协议 Triple#…一.前言Dubbo 是比较流行的服务治理框架国内不少大厂都在使用。以前的 Dubbo 使用的是私有协议采集用的 hessian 序列化对于多语言生态来说是极度的不友好。现在 Dubbo 发布了新版本 v3推出了基于 gRPC 的新协议 Triple完全兼容 gRPC。目前和几个小伙伴正在探索 ASP.NET Core 接入 Dubbo 生态的可行性本文算是一个先行测试。Triple 协议说明dubbo-go 3.0 新特性 | Apache DubboASP.NET Core GRPC: Overview for gRPC on .NET | Microsoft Learn二.测试说明Dubbo 使用的是 dubbo-go 项目提供的 samples apache/dubbo-go-samples: Apache dubbo (github.com)使用 direct 直连例子。ASP.NET Core Grpc 基于 .NET 5。分别作为 client 和 server 来测试是否能相互调用。三.测试一dubbo-go 作为 client 通过 tri 协议调用ASP.NET Core 作为 Server。1.ASP.NET Core直接根据模板新建一个 Grpc 项目因为我是 macOS 环境目前 HTTP/2 无法支持 TLS所以我配置了 Kestrel不使用 TLS 启用 HTTP/2。2.同步 proto文件在 go 项目找到 proto 文件复制粘贴到 grpc 项目 greet.proto 文件里并修改 csharp_namespace然后编译 Grpc 修改 Service 代码3.dubbo-go 调用修改 dubbo-go client 调用地址端口号为 5000然后运行 client从日志输出我们可以看到成功进行了调用dubbo- asp.net core grpc ok四.测试二dubbo-go 作为 server tri 协议.NET 作为 Client grpc 调用。1.dotnet新建一个控制台项目安装 3 个 nuget 包包名说明Grpc.Net.Client.NET 客户端Google.Protobufprotobuf apiGrpc.Tools支持 proto 文件生成 C# 代码编辑项目文件 .csproj加入 proto 文件引用ItemGroupProtobuf Include..\GrpcService1\Protos\greet.proto GrpcServicesClient /
/ItemGroup编译时 Grpc.Tools 会根据 proto 文件生成 grpc C# client。生成路径obj\Debug\[TARGET_FRAMEWORK]\Protos\Greet.cs编写 client 调用代码static async Task Main(string[] args)
{using var channel GrpcChannel.ForAddress(https://localhost:20000);var client new Greeter.GreeterClient(channel);var reply await client.SayHelloAsync(new HelloRequest { Name GreeterClient });Console.WriteLine($Reply: Age: {reply.Age}, Id: {reply.Id}, Name: {reply.Name});
}2.go直接运行 server3.运行测试从日志输出我们可以看到成功进行了调用dotnet- dubbo ok五.总结从上面测试我们确定了 ASP.NET Core 结合 Grpc 接入 Dubbo 生态和 dubbo 互通的可能性我们也在积极的朝这一方向进行努力大家都比较忙推进慢。