你还在手撕微服务?快试试 go-zero 的微服务自动生成

  • service bookstore-api {这一行定义了service名字

  • @server部分用来定义server端用到的属性

  • handler定义了服务端handler名字

  • get /add(addReq) returns(addResp)定义了get方法的路由、请求参数、返回参数等

  • 使用goctl生成API Gateway代码

你还在手撕微服务?快试试 go-zero 的微服务自动生成

生成的文件结构如下:

你还在手撕微服务?快试试 go-zero 的微服务自动生成

启动API Gateway服务,默认侦听在8888端口

你还在手撕微服务?快试试 go-zero 的微服务自动生成

测试API Gateway服务

你还在手撕微服务?快试试 go-zero 的微服务自动生成

返回如下:

你还在手撕微服务?快试试 go-zero 的微服务自动生成

可以看到我们API Gateway其实啥也没干,就返回了个空值,接下来我们会在rpc服务里实现业务逻辑

  • 可以修改internal/svc/servicecontext.go来传递服务依赖(如果需要)

  • 实现逻辑可以修改internal/logic下的对应文件

  • 可以通过goctl生成各种客户端语言的api调用代码

  • 到这里,你已经可以通过goctl生成客户端代码给客户端同学并行开发了,支持多种语言,详见文档

6. 编写add rpc服务

===============

在rpc/add目录下编写add.proto文件

可以通过命令生成proto文件模板

你还在手撕微服务?快试试 go-zero 的微服务自动生成

修改后文件内容如下:

你还在手撕微服务?快试试 go-zero 的微服务自动生成

用goctl生成rpc代码,在rpc/add目录下执行命令

你还在手撕微服务?快试试 go-zero 的微服务自动生成

文件结构如下:

你还在手撕微服务?快试试 go-zero 的微服务自动生成

直接可以运行,如下:

$ go run add.go -f etc/add.yaml

Starting rpc server at 127.0.0.1:8080…

复制代码

etc/add.yaml文件里可以修改侦听端口等配置

7. 编写check rpc服务

=================

在rpc/check目录下编写check.proto文件

可以通过命令生成proto文件模板

你还在手撕微服务?快试试 go-zero 的微服务自动生成

用goctl生成rpc代码,在rpc/check目录下执行命令

你还在手撕微服务?快试试 go-zero 的微服务自动生成

文件结构如下:

你还在手撕微服务?快试试 go-zero 的微服务自动生成

etc/check.yaml文件里可以修改侦听端口等配置

需要修改etc/check.yaml的端口为8081,因为8080已经被add服务使用了,直接可以运行,如下:

你还在手撕微服务?快试试 go-zero 的微服务自动生成

8. 修改API Gateway代码调用add/check rpc服务

====================================

  • 修改配置文件bookstore-api.yaml,增加如下内容

你还在手撕微服务?快试试 go-zero 的微服务自动生成

  • 通过etcd自动去发现可用的add/check服务

  • 修改internal/config/config.go如下,增加add/check服务依赖

你还在手撕微服务?快试试 go-zero 的微服务自动生成

  • 修改internal/svc/servicecontext.go,如下:

你还在手撕微服务?快试试 go-zero 的微服务自动生成

  • 通过ServiceContext在不同业务逻辑之间传递依赖

  • 修改internal/logic/addlogic.go里的Add方法,如下:

你还在手撕微服务?快试试 go-zero 的微服务自动生成

  • 通过调用adder的Add方法实现添加图书到bookstore系统

  • 修改internal/logic/checklogic.go里的Check方法,如下:

你还在手撕微服务?快试试 go-zero 的微服务自动生成

  • 通过调用checker的Check方法实现从bookstore系统中查询图书的价格

9. 定义数据库表结构,并生成CRUD+cache代码

============================

  • bookstore下创建rpc/model目录:mkdir -p rpc/model

  • 在rpc/model目录下编写创建book表的sql文件book.sql,如下:

你还在手撕微服务?快试试 go-zero 的微服务自动生成

  • 创建DB和table create database gozero

你还在手撕微服务?快试试 go-zero 的微服务自动生成

生成后的文件结构如下:

你还在手撕微服务?快试试 go-zero 的微服务自动生成

10. 修改add/check rpc代码调用crud+cache代码

====================================

  • 修改rpc/add/etc/add.yaml和rpc/check/etc/check.yaml,增加如下内容:

你还在手撕微服务?快试试 go-zero 的微服务自动生成

你还在手撕微服务?快试试 go-zero 的微服务自动生成

修改rpc/check/internal/logic/checklogic.go,如下:

你还在手撕微服务?快试试 go-zero 的微服务自动生成

至此代码修改完成,凡是手动修改的代码我加了标注

11. 完整调用演示

===========

  • add api调用

你还在手撕微服务?快试试 go-zero 的微服务自动生成

返回如下:

你还在手撕微服务?快试试 go-zero 的微服务自动生成

  • check api调用

《MySql面试专题》

全网火爆MySql 开源笔记,图文并茂易上手,阿里P8都说好

全网火爆MySql 开源笔记,图文并茂易上手,阿里P8都说好

《MySql性能优化的21个最佳实践》

全网火爆MySql 开源笔记,图文并茂易上手,阿里P8都说好

全网火爆MySql 开源笔记,图文并茂易上手,阿里P8都说好

全网火爆MySql 开源笔记,图文并茂易上手,阿里P8都说好

全网火爆MySql 开源笔记,图文并茂易上手,阿里P8都说好

《MySQL高级知识笔记》

全网火爆MySql 开源笔记,图文并茂易上手,阿里P8都说好

全网火爆MySql 开源笔记,图文并茂易上手,阿里P8都说好

全网火爆MySql 开源笔记,图文并茂易上手,阿里P8都说好

全网火爆MySql 开源笔记,图文并茂易上手,阿里P8都说好

全网火爆MySql 开源笔记,图文并茂易上手,阿里P8都说好

全网火爆MySql 开源笔记,图文并茂易上手,阿里P8都说好

全网火爆MySql 开源笔记,图文并茂易上手,阿里P8都说好

全网火爆MySql 开源笔记,图文并茂易上手,阿里P8都说好

全网火爆MySql 开源笔记,图文并茂易上手,阿里P8都说好

全网火爆MySql 开源笔记,图文并茂易上手,阿里P8都说好

文中展示的资料包括:**《MySql思维导图》《MySql核心笔记》《MySql调优笔记》《MySql面试专题》《MySql性能优化的21个最佳实践》《MySq高级知识笔记》**如下图

全网火爆MySql 开源笔记,图文并茂易上手,阿里P8都说好

关注我,点赞本文给更多有需要的人
dw75v-1719187510492)]

[外链图片转存中…(img-ny6JX1wL-1719187510492)]

[外链图片转存中…(img-qIzl0wFI-1719187510493)]

[外链图片转存中…(img-RP48kOSl-1719187510493)]

[外链图片转存中…(img-yeOyJZrf-1719187510493)]

文中展示的资料包括:**《MySql思维导图》《MySql核心笔记》《MySql调优笔记》《MySql面试专题》《MySql性能优化的21个最佳实践》《MySq高级知识笔记》**如下图

[外链图片转存中…(img-p7UvGBbe-1719187510494)]

关注我,点赞本文给更多有需要的人

  • 9
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
MybatisPlus的分页插件可以在微服务架构中使用。引用指出,当前版本的分页插件依赖于mybatis,因此如果想要使用的话,需要引用mybatis依赖。这可能会导致一些依赖问题。然而,如果你计划将mybatis作为独立的分页插件,并且不想和mybatis耦合,那么可以使用这个插件来避免依赖问题。虽然mybatis本身提供了一些分页能力,但是缺乏统一的分页接口规范,这增加了应用开发的复杂性。而MybatisPlus的分页插件则可以帮助开发者简化分页操作,无需关心具体实现细节,使用起来就像普通的List查询一样方便。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [Java干货丨手MybatisPlus分页原理](https://blog.csdn.net/weixin_51689029/article/details/126490364)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [使用MyBatis分页插件MyBatisPlus来优化MyBatis分页查询](https://blog.csdn.net/universsky2015/article/details/131971503)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值