首页 > 其他分享 >(3)go-micro微服务项目搭建

(3)go-micro微服务项目搭建

时间:2023-01-07 11:56:11浏览次数:62  
标签:服务项目 生成 micro common go 目录

目录

一 微服务项目介绍

  • 账户功能是每一个系统都绕不开的一部分,所以本次搭建的微服务项目就是账户微服务项目,其中向外暴露的功能有:
  1. 登录
  2. 注册
  3. 查询用户信息
  4. 修改信息
  5. 发送注册邮件
  6. 发送重置密码邮件
  7. 重置密码
  8. 获取权限
  9. 修改权限
  10. 退出账号
  11. 删除账号
  12. 禁用账号
  13. 启用账号

提供的功能总共有13个,基本上包含了账户相关的所有功能!

  • 在本次微服务项目中使用到的技术包括:
  1. go-micro v2
  2. Docker
  3. Mysql
  4. Redis
  5. Zap日志
  6. Consul配置、注册中心
  7. 发送邮件(QQ邮箱)
  8. Jaeger链路追踪
  9. Prometheus监控
  10. 雪花算法生成用户ID
  11. JWT跨域认证
  12. Makefile自动化编译工具
  13. Elasticsearch搜索引擎
  14. Logstash日志搜集
  15. Kibana日志分析可视化界面
  16. Filebeat数据收集
  17. 负载均衡

本次微服务项目中使用到的技术,基本上包含了微服务相关的技术,所以想要掌握微服务的小伙伴们,要跟紧我们的项目开发,早日掌握微服务。

二 go-micro安装

  • 大家自行安装Dokcer
  • 终端输入docker --version即可查看docker是否安装成功

1.拉取micro镜像

  • 打开Goland终端,输入:
docker pull micro/micro:v2.9.3

2.生成项目目录

  • 镜像拉取成功后,输入命令生成项目目录
docker run --rm -v /d/学习/GO_project/micro/micro-common:/d/学习/GO_project/micro/micro-common -w /d/学习/GO_project/micro/micro-common micro/micro:v2.9.3 new account
  • 命令讲解:
  1. --rm 是不再生成新的micro镜像
  2. /d/学习/GO_project/micro/micro-common 为你当前目录的路径地址,注意格式,使用的是 / 。
  3. micro/micro:v2.9.3 指定使用的镜像名称
  4. account 生成的项目名称,我使用的是 account。
  • 命令执行后等待即可生成go-micro项目目录,如果报错,可能跟网络有关,可以多次输入命令进行尝试。

三 项目搭建

使用DDD模式开发项目:

  • 打开项目,在根目录下新建 client、common、config、domain目录

  • 在common目录下新建 mail、micro、snow_flake、token、utils目录

  • 在config目录下新建 config、logger、mysql、redis目录

  • 在domain目录下新建 model、repository、service目录

  • data目录不用新建,可以使用filebeat自动生成,存放的信息为日志信息。

  • 项目目录如下所示:
    image.png

四 最后

  • 至此,go-micro微服务项目搭建工作就正式完成。

  • 接下来就开始正式的代码编写了,希望大家关注博主和关注专栏,第一时间获取最新内容,每篇博客都干货满满。

欢迎大家加入 夏沫の梦的学习交流群 进行学习交流经验,点击 夏沫の梦学习交流

标签:服务项目,生成,micro,common,go,目录
From: https://www.cnblogs.com/qi66/p/17032419.html

相关文章

  • MongoDB - 分片简介
    简介什么是分片高数据量和高吞吐量的数据库应用会对单机的性能造成较大压力,大的查询会将单机的CPU耗尽,大的数据量对单机的存储压力较大,最终会耗尽系统的内存压力转移到......
  • Go语言学习Day1
    1.Go的函数、变量、常量、自定义类型、包(package)的命名方式遵循以下规则:1)首字符可以是任意的Unicode字符或者下划线2)剩余字符可以是Unicode字符、下划线、数字3)字符长......
  • 既然有MySQL了,为什么还要有MongoDB?
    大家好,我是哪吒,最近项目在使用MongoDB作为图片和文档的存储数据库,为啥不直接存MySQL里,还要搭个MongoDB集群,麻不麻烦?让我们一起,一探究竟,了解一下MongoDB的特点和基本用法,实......
  • django
    django1纯手撸web框架、wsgiref模块下的手撸框架、jinja2模版语法、django框架简介、下载、基本操作等2django静态文件相关配置、请求方法、链接mysql以及django的ORM......
  • Django里ORM常用关键字
    一、ORM常用关键字 #关键概览1.create()2.filter()3.first()last()4.update()5.delete()6.all()7.values()8.values_list()9.distinct()10.order_by()11.g......
  • Microsoft cl编译器在命令提示符下的简单示例
    此刻我的电脑环境win10,64位,vs2022 由于安装的vs版本的不同,有一些函数库,比如stdio.h这个头文件不一定如有些博客所说在vs的安装目录下即:C:\ProgramFiles(x86)\Mi......
  • Uni-App 提交 App应用 到 Google Play 提示 API 级别过低的解决办法
    原文链接:Uni-App提交App应用到GooglePlay提示API级别过低的解决办法发现问题近日准备发布新版本上架到GooglePlay上时,突然出现了Changeyourapp'starget......
  • Golang的变量声明
    变量使用步骤声明赋值引用packagemainimport"fmt"funcmain(){ //1.变量的声明 varzlint //2.变量的赋值 zl=19 //3.变量的使用 fmt.Println(......
  • MongoDB—— if 分页操作 then must 先排序 =》分页前 必先排序
    https://www.mongodb.com/docs/manual/reference/operator/aggregation/skip/   https://www.mongodb.com/community/forums/t/single-fetch-with-skip-and-limit-......
  • golang range channel死锁问题
    今天采用WaitGroup来实现协程,发现rangechanel会死锁,代码如下:packagemainimport"sync"import"fmt"funcmain(){varwgsync.WaitGroupwg.Add(3)resultChanne......