一个快速生成web和微服务代码工具sponge

zhufuyi · · 3389 次点击 · 开始浏览    置顶
这是一个创建于 的主题,其中的信息可能已经有所发展或是发生改变。

[sponge](https://github.com/zhufuyi/sponge) 是一个微服务框架,一个快速创建web和微服务代码工具。sponge拥有丰富的生成代码命令,一共生成12种不同功能代码,这些功能代码可以组合成完整的服务(类似人为打散的海绵细胞可以自动重组成一个新的海绵)。微服务代码功能包括日志、服务注册与发现、注册中心、限流、熔断、链路跟踪、指标监控、pprof性能分析、统计、缓存、CICD等功能。代码解耦模块化设计,包括了从开发到部署完整工程,常用代码和脚本是自动生成,只需在按照代码模板去编写业务逻辑代码,使得开发效率提高不少。 <br> ### sponge 生成代码框架 生成代码基于**Yaml**、**SQL DDL**和**Protocol buffers**三种方式,每种方式拥有生成不同功能代码,生成代码的框架图如下所示: <p align="center"> <img width="1200px" src="https://static.golangjob.cn/230103/cbe37c5bd2e8a4cc4be20f7915088165.png"> </p> <br> ### 微服务框架 sponge创建的微服务代码框架如图下图所示,这是典型的微服务分层结构,具有高性能,高扩展性,包含常用的服务治理功能。 <p align="center"> <img width="800px" src="https://static.golangjob.cn/230103/688c17049d33ff365ca2e703e0392323.png"> </p> <br> ### 安装 **(1) 安装 sponge** ```bash go install github.com/zhufuyi/sponge/cmd/sponge@latest ``` **(2) 安装依赖插件和工具** ```bash sponge init ``` 如果有插件安装出错(`protoc`除外), 执行命令重试 `sponge tools --install` <br> **(3) 安装 protoc** protoc 下载地址 `https://github.com/protocolbuffers/protobuf/releases/tag/v3.20.3`, 然后把 **protoc** 二进制文件添加到系统path下。 <br> 💡 注意: > 如果使用windows环境, 还需要安装额外依赖工具, 安装详情看 [windows dependency tools](https://github.com/zhufuyi/sponge/blob/main/assets/sponge-doc-cn.md#21-window%E7%8E%AF%E5%A2%83%E5%AE%89%E8%A3%85%E4%BE%9D%E8%B5%96%E5%B7%A5%E5%85%B7). <br> ### 快速开始 启动命令行的UI服务: ```bash sponge run ``` 在浏览器访问 `http://localhost:24631`。 💡 注意: > 不要在sponge二进制文件所在的目录下执行 "sponge run"命令,否则生成代码时会报错: > >> exec: "sponge": cannot run executable found relative to current directory >> <br> 根据sql生成web项目代码的一个示例如下图所示: <p align="center"> <img width="1500px" src="https://static.golangjob.cn/230103/0821b17050121c9b9978b31bafdc79fc.gif"> </p> 下载web项目代码后,执行命令启动服务: ```bash # 更新swagger文档 make docs # 编译和运行服务 make run ``` <br> 生成其他类型代码可以自己尝试。 <br><br>

有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

3389 次点击  ∙  1 赞  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传