# devcloud-mini **Repository Path**: jasmine456/devcloud-mini ## Basic Information - **Project Name**: devcloud-mini - **Description**: devcloud-mini go12 微服务项目 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-01-15 - **Last Updated**: 2024-09-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # go12 微服务项目 devcloud-mini ## 如何抽象通用模块 ## 基于抽象的二方库写项目(workspace) 采用Go的多模块开发(workspace) 来开发多个项目组成的微服务工程 ```SHELL go mod init "gitee.com/jasmine456/devcloud-mini/example" ``` devcloud-mini 是一个微服务工程 ```shell go work init root@JMT-SW3-I18-OPS-2-118:~/go-src/gitee/devcloud-mini# go work use example root@JMT-SW3-I18-OPS-2-118:~/go-src/gitee/devcloud-mini# go work use cmdb root@JMT-SW3-I18-OPS-2-118:~/go-src/gitee/devcloud-mini# go work use mcenter root@JMT-SW3-I18-OPS-2-118:~/go-src/gitee/devcloud-mini# go work use maudit ``` ## mcenter 用户中心 ### 需求 1. 统一认证需求: - 用户名密码 - LDAP - 飞书/微信 2. 开发一个认证和鉴权的中间件,使用这个中间件来接入到用户中心 这个接入用户中心的中间件,是由用户中心提供的 开发流程 1. 服务端开发(认证和鉴权功能 2. rpc客户端开发(grpc自动生成 3. 基于mcenter grpc客户端 封装出一个http中间件供其他服务接入使用 难点: 分布式鉴权,需要每个服务把自己的功能列表注册给用户中心 之前用的是Gin框架, 1. 能不能获取到当前所有的路由条目 2. 基于当前路由相关信息 3. 路由状态:POST("/",handler),不能装饰路由,让注册功能时,提供跟丰富的信息 ```text NameSpace: Service: Resource: GET/LIST/DELETE/UPDATE,补充到路由上面,API文档 ``` 技术栈选型 1. web框架: GoRestful: 1. 支持路由装饰 2. 数据库 ### 环境准备 1. 数据库 mongodb ``` docker pull mongo docker run -itd -p 27017:27017 -e MONGO_INITDB_ROOT_USERNAME=admin -e MONGO_INITDB_ROOT_PASSWORD=123456 mongo ``` 设置账号名 密码 export HTTP_HOST="10.20.2.118" ### 编写go-restful 中间件 ### 使用中间件接入cmdb服务 ## maudit 审计中心 ## cmdb