Go笔记服务实战整理与摘抄 | 青训营笔记

114 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 2 天

这里是实战项目Go语言笔记服务

环境配置

安装Docker/Postman/Git

  • 安装Minikube或Docker Desktop
  • 可以使用Minikube或者使用Docker Desktop启Docker
  • 安装Postman
  • 安装Git安装教程

HTTP框架Hertz初体验

通过阅读www.cloudwego.io/zh/docs/her…尝试运行Hertz的示例代码

RPC框架Kitex初体验

通过阅读www.cloudwego.io/zh/docs/kit…尝试运行Kitex的示例代码

  • kitex 暂时没有针对 Windows 做支持,如果本地开发环境是 Windows 建议使用 WSL2
  • KItex 框架地址: github.com/cloudwego/k…

Gorm初体验

通过阅读gorm.cn/docs/#Insta…尝试运行Gorm的示例代码

其他知识

了解Etcd和Opentracing

了解etcd是什么以及opentracing 是什么

什么是IDL以及IDL语法

项目介绍

项目简介

EasyNote提供了一套比较完整的笔记后端API服务局)

项目地址:github.com/cloudwego/k…

服务名称模块介绍技术框架传输协议注册中心链路追踪
demoapiAPI服务Gorm, Kitex, HertzhttpetcdOpentracing
demouser用户数据管理Gorm, KitexProtobufetcdopentracing
demonote笔记数据管理Gorm, KitexThriftetcdopentracing

项目服务调用关系

image-20230116202637375

项目模块功能介绍

image-20230116202703955

项目技术栈

image-20230116202726582

项目相关使用框架资料

项目代码介绍

项目代码目录结构介绍

  • idl: thrift/proto接口定义文件

  • kitex-gen: Kitex自动生成的代码

  • pkg包:

  • cmd包:

    • api - demoapi服务的业务代码:

      • handlers: 封装了api的业务逻辑
      • rpc: 封装了调用其他rpc服务的逻辑
    • note - demonote服务的业务代码:

    • user - demouser服务的业务代码:

      • dal: 封装了数据库的访问逻辑
      • service: 封装了业务逻辑
      • rpc: 封装了调用其他rpc服务的逻辑
      • pack: 数据打包/处理

项目运行

运行依赖基础

 docker -compose up

上述命令启动MySQL, Etcd, Jaeger的Docker镜像

运行demonote服务

 cd cmd/note
 sh build.sh
 sh output/bootstrap. sh

运行demouser服务

 cd cmd/user
 sh build.sh
 sh output/bootstrap.sh

运行demoapi服务

 cd cmd/api 
 chmod +x run. sh
 . /run. sh

References