首页 > 其他分享 >Goravel 让微服务间通讯如此简单,省出来的时间想干点啥干点啥吧

Goravel 让微服务间通讯如此简单,省出来的时间想干点啥干点啥吧

时间:2022-11-13 13:00:57浏览次数:92  
标签:通讯 string ctx 干点 facades Goravel GetUser grpcuser

Goravel 升级 v1.4,使微服务间请求更加简单一体化。No bb, show the code.

Goravel 是一个功能完备、具有良好扩展能力的 Golang Web 应用程序框架。风格与 Laravel 保持一致,让 PHPer 不用学习新的框架,也可以愉快的玩转 Golang!

服务端

  1. 定义接口
func (r *UserController) GetUser(ctx context.Context, req *grpcuser.UserRequest) (*grpcuser.UserResponse, error) {
	return &grpcuser.UserResponse{Name: "Goravel"}, nil
}
  1. 运行服务
facades.Grpc.Run(facades.Config.GetString("grpc.host"))

客户端

  1. 配置服务
facades.Config.Add("grpc", map[string]interface{}{
	"clients": map[string]any{
		"user": map[string]any{
			"host":         config.Env("GRPC_USER_HOST", ""),
			"interceptors": []string{"trace"},
		},
	},
})
  1. 发起请求
func (r *ServiceImpl) GetUser(ctx context.Context, userID uint64) (*grpcuser.User, error) {
	// 创建客户端实例
	client, _ := facades.Grpc.Client(ctx, "user")
	// 注册服务
	userServiceClient := grpcuser.NewUserServiceClient(client)
	// 调用接口
	resp, _ := userServiceClient.GetUser(ctx, &grpcuser.UserRequest{
	   UserID: userID,
	})
	return resp.Data, nil
}

Over, 欢迎 Star、PR、Issues!

标签:通讯,string,ctx,干点,facades,Goravel,GetUser,grpcuser
From: https://blog.51cto.com/u_15875870/5847734

相关文章

  • 安卓中的socket通讯
    2.serversocket的建立和使用: 新建一个javaproject然后新建一个class:importjava.io.BufferedReader;importjava.io.InputStreamReader;importjava.io.PrintStream;impor......
  • PROFINET 设备如何和西门子PLC通讯
    1、准备IO模块:耦合器BL200PN、数字量输出模块M2082、数字量输入M1081、模拟量输入模块M3401、模拟量输出M4043。模块的组装、接线。2、BL200PN、S7-200SMART、PC要......
  • 移动办公时代,政企为何首选私有化的即时通讯平台?
    随着数字技术和社会经济的飞速发展,政企组织关于数字化转型的计划也深入推进中。为了满足政企内外部业务的沟通需求,帮助更加灵活、高效地完成工作,大多数企业已经使用了一些......
  • 网络通讯篇1一Socket INADDR_ANY详解
    linux下的socketINADDR_ANY表示的是一个服务器上所有的网卡(服务器可能不止一个网卡)多个本地ip地址都进行绑定端口号,进行侦听。不光是多个网卡的问题.见如下serverlisten......
  • 配置sshd_使用CA签名证书登录_更新sshd服务端的通讯密钥
    配置sshd_使用CA签名证书登录_更新sshd服务端的通讯密钥转载注明来源:本文链接来自osnosn的博客,写于2022-11-06.用CA签名证书登录请参考【SSH证书登录教程】,这个......
  • vue组件间的通讯(10种方法)【重要】(待补充。。。)
    1.props/$emitprops主要用于父组件传递数据给子组件,父==>子。Vue自定义事件父组件可以在使用子组件的地方直接用v-on来监听子组件触发的事件。即父组件中使用v-on绑定自......
  • WebRTC-web实时通讯(转)
    WebRTC(WebReal-Time-Communication)不需要插件便能支持音频和视频通信。主页:http://www.webrtc.org胖客户端,其实瘦客户端尽管有很多的优点,但......
  • 基于开源IM即时通讯框架MobileIMSDK:RainbowChat-iOS端v6.1版已发布
    关于MobileIMSDKMobileIMSDK是一套专门为移动端开发的开源IM即时通讯框架,超轻量级、高度提炼,一套API优雅支持UDP 、TCP 、WebSocket 三种协议,支持iOS、Android、H5......
  • 组件之间通讯方式
    props:父向子传递$emit/v-on:子向父(通过派发)传递v-model:双向绑定slot:插槽(子组件通过插槽的方法传给父组件)provide/inject:依赖注入(可以指定传给后代的数据和方法)roo......
  • C++基础入门通讯录管理系统
    记录代码#pragmaonce#include<iostream>#include<string>#defineSize100#defineOK1#defineError-1usingnamespacestd;//结构体,通讯录人structPerson{//名字......