littlebot
Published on 2025-04-03 / 0 Visits
0

【源码】基于Golang和Kitex框架的笔记管理微服务系统

项目简介

本项目是基于Golang和Kitex框架构建的简单微服务架构web应用,主要用于笔记管理。系统包含三个微服务,分别是对外暴露HTTP接口的api服务,以及内部的note笔记微服务和user用户微服务。微服务之间借助Kitex框架的RPC功能交互,接入Opentelemetry和Jaeger实现观测与链路追踪,还通过ETCD进行服务注册与解析,各服务使用GORM操作MySQL数据库完成CRUD操作。

项目的主要特性和功能

  1. 微服务架构:将系统拆分为api、note、user三个微服务,提升系统的可扩展性和可维护性。
  2. 高效通信:微服务间采用Kitex框架的RPC功能交互,使服务间通信更高效可靠。
  3. 服务注册与发现:通过ETCD实现服务的注册与解析,保障服务间有效通信。
  4. 链路追踪与观测:接入Opentelemetry和Jaeger,可对系统进行全面观测与链路追踪。
  5. 数据库操作:note与user服务使用GORM操作MySQL数据库,实现数据的增删改查。
  6. HTTP接口服务:api服务利用Hertz框架对外提供HTTP接口,方便客户端访问。

安装使用步骤

安装工具

shell

代码生成

通过Makefile进行代码生成,对应命令如下: | Catalog | Command | | -------------------- | ----------------------------------- | | hertz_api_model | make hertz_gen_model | | hertz_api_client | make hertz_gen_client | | kitex_user_client | make kitex_gen_user | | kitex_note_client | make kitex_gen_note | | hertz_api_new | cd cmd/api && make hertz_new_api | | hertz_api_update | cd cmd/api && make hertz_update_api | | kitex_user_server | cd cmd/user && make kitex_gen_server | | kitex_note_server | cd cmd/note && make kitex_gen_server |

启动依赖环境

bash docker-compose up

启动服务

  • 启动user服务 bash cd cmd/user make run
  • 启动note服务 bash cd cmd/note make run
  • 启动api服务 bash cd cmd/api make run

访问服务

参考 api_request/api_service/api_service_test.go 文件构建客户端,通过HTTP接口进行访问,该测试文件包含IDL中定义的所有api接口服务。示例接口如下: thrift service ApiService { CreateUserResponse CreateUser(1: CreateUserRequest req) (api.post="/v1/user/register") CheckUserResponse CheckUser(1: CheckUserRequest req) (api.post="/v1/user/login") CreateNoteResponse CreateNote(1: CreateNoteRequest req) (api.post="/v1/note") QueryNoteResponse QueryNote(1: QueryNoteRequest req) (api.get="/v1/note/query") UpdateNoteResponse UpdateNote(1: UpdateNoteRequest req) (api.put="/v1/note/:note_id") DeleteNoteResponse DeleteNote(1: DeleteNoteRequest req) (api.delete="/v1/note/:note_id") }

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】