dubbogo-1 基础rpc服务

news2024/10/6 16:29:00

文章目录

    • 基本环境处理
    • 编译pb接口
    • 开启rpc调用
    • 业务观察
    • qa1 能取出protoc里面的字段值吗?

基本环境处理

https://cn.dubbo.apache.org/zh-cn/overview/quickstart/go/install/

在这里插入图片描述

这里没有 protoc-gen-go --version

执行

 go get -u github.com/golang/protobuf/protoc-gen-go

在这里插入图片描述
进入到这个目录执行

go build
go install

这样就会出现在 go/bin 目录里面了,如果已经增加了这个环境变量了,就可以使用该命令了

在这里插入图片描述

分别验证

protoc --version

libprotoc 22.2

protoc-gen-go-triple --version

protoc-gen-go-triple 1.0.8

protoc-gen-go --version

protoc-gen-go: unknown argument “–version” (this program should be run by protoc, not directly)

这个错误先不管。

编译pb接口

protoc --go_out=. --go-triple_out=. ./samples_api.proto
  • –go_out=. 用到protoc-gen-go插件,生成文件到当前目录
  • –go-triple_out=. 使用 protoc-gen-go-triple插件,生成文件到当前目录

当然默认的样例工程其实已经包含了编译好的文件

开启rpc调用

回到项目根目录

go mod tidy

分别启动server端和client端

cd go-server/cmd
go run .
cd go-client/cmd
go run .

服务端效果

在这里插入图片描述

客户端效果

在这里插入图片描述

业务观察

在这里插入图片描述

这个的提供的样例模块

protoc的定义是

message HelloRequest {
  string name = 1;
}

翻译出来的go代码对应核心的地方就是这里
在这里插入图片描述

client代码增加注释

package main

import (
	"context"
)

import (
	"dubbo.apache.org/dubbo-go/v3/common/logger"
	"dubbo.apache.org/dubbo-go/v3/config"
	_ "dubbo.apache.org/dubbo-go/v3/imports"

	"helloworld/api"
)

// 创建一个grpc的实例
var grpcGreeterImpl = new(api.GreeterClientImpl)

// export DUBBO_GO_CONFIG_PATH= PATH_TO_SAMPLES/helloworld/go-client/conf/dubbogo.yaml
func main() {
	config.SetConsumerService(grpcGreeterImpl)
	if err := config.Load(); err != nil {
		panic(err)
	}

	logger.Info("start to test dubbo")
	// 传递参数
	req := &api.HelloRequest{
		Name: "laurence",
	}
	// grpc的调用
	reply, err := grpcGreeterImpl.SayHello(context.Background(), req)
	if err != nil {
		logger.Error(err)
	}
	logger.Infof("client response result: %v\n", reply) // reply是具体响应的信息
}

qa1 能取出protoc里面的字段值吗?

可以直接用reply.xxx 取值

package main

import (
	"context"
)

import (
	"dubbo.apache.org/dubbo-go/v3/common/logger"
	"dubbo.apache.org/dubbo-go/v3/config"
	_ "dubbo.apache.org/dubbo-go/v3/imports"

	"helloworld/api"
)

// 创建一个grpc的实例
var grpcGreeterImpl = new(api.GreeterClientImpl)

// export DUBBO_GO_CONFIG_PATH= PATH_TO_SAMPLES/helloworld/go-client/conf/dubbogo.yaml
func main() {
	config.SetConsumerService(grpcGreeterImpl)
	if err := config.Load(); err != nil {
		panic(err)
	}

	logger.Info("start to test dubbo")
	// 传递参数
	req := &api.HelloRequest{
		Name: "laurence",
	}
	// grpc的调用
	reply, err := grpcGreeterImpl.SayHello(context.Background(), req)
	if err != nil {
		logger.Error(err)
	}
	logger.Infof("client response result: %v\n", reply) // reply是具体响应的信息
	logger.Infof("Name is %v \n", reply.Name)
	logger.Infof("Age is %v \n", reply.Age)
	logger.Infof("Id is %v \n", reply.Id)
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1116298.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

嵌入式养成计划-45----QT--事件机制--定时器事件--键盘事件和鼠标事件--绘制事件

一百一十五、事件机制 当这件事情发生时,会自动走对应的函数处理(重写的事件函数) 115.1 事件处理简介 什么是事件? (重点) 件是由窗口系统或者自身产生的,用以响应所发生的各类事情,比如用户按下并释放…

vscode调试技巧 断言 assert

目录 调试技巧标题debug release介绍调试技巧断点 断点的意思 就是代码执行到断点处停下来,让你去调试。不管前面有多少代码,直接跳到断点处(当然前面的已经执行)逐过程 不会进入调用函数内部,不管里面怎么执行。 逐语…

精讲stable diffusion的controlNet插件

controlNet插件是stable diffusion的一个重要插件,甚至可以说正是因为有了controlNet插件,stable diffusion才会具有midjourney所不具备的独特魅力! 我们今天就一起来学习下controlNet插件的安装和每个模型的用法 插件主页 独立的controlN…

MSP430F5529时钟系统配置

1、为什么要进行时钟管理?   时钟系统是一个数字器件的命脉,对于普通的51单片机来说,它的时钟来源只有外部晶振,然后每12个振荡周期完成一个基本操作,所以也叫做12T单片机,但对于当前高级一点的单片机来…

牛客:NC59 矩阵的最小路径和

牛客:NC59 矩阵的最小路径和 文章目录 牛客:NC59 矩阵的最小路径和题目描述题解思路题解代码 题目描述 题解思路 动态规划,递推公式:matrix[i][j] min(matrix[i-1][j], matrix[i][j-1]) 题解代码 func minPathSum( matrix [][…

性能压测工具 —— wrk

一般我们压测的时候,需要了解衡量系统性能的一些参数指标,比如。 1、性能指标简介 1.1 延迟 简单易懂。green:一般指响应时间 95线:P95。平均100%的请求中95%已经响应的时间 99线:P99。平均100%的请求中99%已经响应的时间 平…

maven聚合和继承

一、什么是maven的聚合和继承&why 随着技术飞速发展,各类用户对软件的要求越来越高,软件也变得越来越复杂。 软件设计人员往往会采用各种方式对软件划分模块,已得到更加清晰的设计及更高的复用性。 当把Maven应用到实际项目中的时候&am…

多年没有遇到如此流畅的面试了

美东一公司的面试,有多年没有遇到如此流畅的面试了。 本来说的面试时间是 30 分钟,这个还是第一轮处于电话面试那种,但是不知道为什么最后面试整个时间都延长到了快一个小时,貌似双方都还继续沟通下,有点意犹未尽的感觉…

ZKP5.1 Plonk Interactive Oracle Proofs (KZG‘10)

ZKP学习笔记 ZK-Learning MOOC课程笔记 Lecture 5: The Plonk SNARK (Dan Boneh) 5.1 KZG’10 general SNARK A polynomial commitment scheme A polynomial interactive oracle proof (IOP) Review: polynomial commitments The KZG poly-commit scheme commit a bind…

自动化测试07Selenium01

目录 什么是自动化测试 Selenium介绍 Selenium是什么 Selenium特点 工作原理 SeleniumJava环境搭建 Selenium常用的API使用 定位元素findElement CSS选择语法 id选择器:#id 类选择 .class 标签选择器 标签名 后代选择器 父级选择器 自己选择器 xpath …

AM@两种余项型泰勒公式的对比和总结@常用函数的麦克劳林公式

文章目录 abstract两种余项型泰勒公式的对比和总结Maclaurin公式常用函数的Maclaurin公式推导例求极限按幂展开 abstract 泰勒公式的两种余项型(Penao&Lagrange)泰勒公式的对比和总结常用的Maclaurin公式列举(Peano余项型为主) 两种余项型泰勒公式的对比和总结 Taylor公式…

Youtrack Linux 安装

我们考虑最后应该使用的是 ZIP 方式的安装。 按照官方的说法如何设置运行 YouTrack 应该是非常简单的。 准备环境 根据官方的说法,我们需要做的就是下载 Zip 包,然后把 Zip 包解压到指定的目录中就可以了。 下载 当前官方的下载地址为:Ge…

Vue解决 npm -v 报错(一)

报错内容: npm WARN config global --global, --local are deprecated. Use --locationglobal instead. 解决方案: 代码: prefix -g 替换为: prefix --locationglobal 原创作者:吴小糖 创作时间:2023.1…

盒式交换机堆叠配置

目录 1.配置环形拓扑堆叠 2.设备组建堆叠 3.设备组件堆叠 堆叠 istack,是指将多台支持堆叠特性的交换机设备组合在一起,从逻辑上组合成一台交换设备。如图所示,SwitchA与 SwitchB 通过堆叠线缆连接后组成堆叠 istack,对于上游和…

Windows Server服务器下的Linux子系统

Windows、Linux看似死敌一对,但其实微软对于开源实业还是相当支持的,Windows 10系统内就首次内置了一个Linux子系统(Windows Subsystem for Linux/WSL),允许开发者模拟Linux环境,而且有需要的可以直接从Windows应用商店下载SUSE、…

软件项目管理【UML-组件图】

目录 一、组件图概念 二、组件图包含的元素 1.组件(Component)->构件 2.接口(Interface) 3.外部接口——端口 4.连接器(Connector)——连接件 4.关系 5.组件图表示方法 三、例子 一、组件图概念…

Linux简单安装ffmpeg 实现用PHP压缩音频

一、下载安装 1、官方下载地址:Download FFmpeg 2、下载完上传到服务器然 然后解压就算安装完成了 tar -xf ffmpeg-git-amd64-static.tar.xz 3、然后配置一下全局变量(当然也可以不用配置 使用的时候带上文件路径就行) cd /usr/bin ln -s…

互联网Java工程师面试题·Java 总结篇·第十一弹

目录 90、简述一下你了解的设计模式。 91、用 Java 写一个单例类。 92、什么是 UML? 93、UML 中有哪些常用的图? 94、用 Java 写一个冒泡排序。 95、用 Java 写一个折半查找。 90、简述一下你了解的设计模式。 所谓设计模式,就是一套被…

Ae 效果:CC Overbrights

实用工具/CC Overbrights Utility/CC Overbrights CC Overbrights(CC 高光溢出,CC 过于鲜亮)主要用于改变图像中高光溢出(又称高光剪切、过曝)区域的显示方式,以便配合其它效果来更好地处理和控制这些区域的…

分类预测 | MATLAB实现SSA-CNN-LSTM麻雀算法优化卷积长短期记忆神经网络数据分类预测

分类预测 | MATLAB实现SSA-CNN-LSTM麻雀算法优化卷积长短期记忆神经网络数据分类预测 目录 分类预测 | MATLAB实现SSA-CNN-LSTM麻雀算法优化卷积长短期记忆神经网络数据分类预测分类效果基本描述程序设计参考资料 分类效果 基本描述 1.MATLAB实现SSA-CNN-LSTM数据分类预测&…