ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

go的微服务框架go-zero

2022-01-26 18:31:19  阅读:216  来源: 互联网

标签:框架 json goctl zero api user go


1.微服务

单一的模块无法再支撑大量的用户请求,如果一个功能挂了很可能导致整个项目奔溃,所以要将一个项目按照不同的功能分成多个模块进行部署,每个模块之间低耦合,每个模块通过RPC进行内部通讯。
    微服务的好处:将复杂的项目模块化、有利于程序员开发、有利于提高项目健壮性、也有利于测试和维护
    微服务的坏处:拆分项目需要一定的工足量、要部署多个模块、每个模块沟通需要成本、项目整体架构复杂了、还需要保证模块数据的一致性
在这里插入图片描述


2.微服务go-zero

    1).啥是go-zero
    go-zero 能自动生成微服务,是一个简单好用的微服务框架。
    go-zero 是一个集成了各种工程实践的 web 和 rpc 框架。通过弹性设计保障了大并发服务端的稳定性,经受了充分的实战检验。
    go-zero 包含极简的 API 定义和生成工具 goctl,可以根据定义的 api 文件一键生成 Go, iOS, Android, Kotlin, Dart, TypeScript, JavaScript 代码,并可直接运行。

    go-zero的码云地址
    go-zero中文文档地址

    使用go-zero的好处:

    ● 轻松获得支撑千万日活服务的稳定性
    ● 内建级联超时控制、限流、自适应熔断、自适应降载等微服务治理能力,无需配置和额外代码
    ● 微服务治理中间件可无缝集成到其它现有框架使用
    ● 极简的API描述,一键生成各端代码
    ● 自动校验客户端请求参数合法性
    ● 大量微服务治理和并发工具包

    2).安装goctl

        (1).兴建个目录,在项目根目录下安装goctl
        go get -u github.com/tal-tech/go-zero/tools/goctl

在这里插入图片描述

        (2).安装go-zero
        go get -u github.com/tal-tech/go-zero
在这里插入图片描述

        (3).快速生成api项目
        goctl api new user

在这里插入图片描述

        cd到user项目根目录,构建go项目
        go mod init user
        go mod tidy
在这里插入图片描述
        (6).修改user.api
        下载包
        go run user.go -f etc/user-api.yaml

service user-api {
	@handler UserHandler
	get /from/:name(Request) returns (Response);
}
type Request {
	Username string `json:"username"`
    Passwd   string `json:"passwd"`
    Age      int    `json:"age"`
    Sex      string `json:"sex"`
}

type Response {
	Username string `json:"username"`
    Passwd   string `json:"passwd"`
    Age      int    `json:"age"`
    Sex      string `json:"sex"`
}

service user-api {
	@doc(
		summary: 公开的api函数
		desc: >
		getUser: 获取用户,
		login: 用户登录
	)
	@server(
		handler: registerHandler
		folder: open
	)
	post /open/getUser(Request) returns(Response)

	@server(
		handler: authorizationHandler
		folder: open
	)
	post /open/login(Request) returns(Response)
}

        在user目录下执行以下命令重新生成api
        goctl api go -api user.api -dir .
在这里插入图片描述
在这里插入图片描述

        (7).在user文件夹下开始运行项目
        go run user.go -f etc/user-api.yaml
        默认端口在8888
        直接post请求http://127.0.0.1:8888/open/getUser即可

标签:框架,json,goctl,zero,api,user,go
来源: https://blog.csdn.net/k393393/article/details/122671578

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有