Skip to content

linuxing3/datacenter

Repository files navigation

基于 go-zero 框架写的一个数据中台中心示例

这是一个微服务grpc的自学项目,主要是熟悉练习go-zero这个新的框架

关于go-zero

go-zero 是一个集成了各种工程实践的 web 和 rpc 框架。通过弹性设计保障了大并发服务端的稳定性,经受了充分的实战检验。

go-zero 包含极简的 API 定义和生成工具 goctl,可以根据定义的 api 文件一键生成 Go, iOS, Android, Kotlin, Dart, TypeScript, JavaScript 代码,并可直接运行。

中台架构图

中台系统

如何运行?

先启动mysql、redis、es、 etcd 等服务,这里都使用docker

sh server.sh

输出如下 就显示 成功了

mysql
Start Redis Service...
etcd
es

elasticsearch 第一次需要初始化密码

执行下面的操作

# 进入docker
docker exec -it es /bin/bash
# 执行密码设置命令
[root@04b37b58f104 elasticsearch]# sh /usr/share/elasticsearch/bin/elasticsearch-setup-passwords auto
...
# 可以查看密码,得到elastic 的帐号: elastic ,密码: somepassword
Changed password for user elastic
PASSWORD elastic = somepassword

填入search/rpc/search.yaml 配置文件中

踩坑

注意添加--privileged=true,如果发现无法正常启动无权限则,运行 chmod -R 777 [mydata]

导入 sql.sql到 mysql数据中

  • 直接登录到Docker中的数据库
docker exec -it mysql /usr/bin/mysql -uroot -padmin
  • 导入数据库设置,生成数据表
mysql > set name utf8
mysql > create databse datacenter
mysql > use datacenter
mysql > source sql.sql

根据需要更新每个Rpc模块下的配置文件

cat etc/datacenter-api.yaml #网关配置,这里是api总的入口

cat user/rpc/etc/rpc.yaml #用户信息配置
cat common/rpc/etc/rpc.yaml #公共配置
cat votes/rpc/etc/rpc.yaml #投票配置
cat search/rpc/etc/search.yaml #搜索配置
cat questions/rpc/etc/questions.yaml #抽奖配置

cat oms/rpc/etc/oms.yaml #gozero配置
cat pms/rpc/etc/pms.yaml #gozero配置
cat ums/rpc/etc/ums.yaml #gozero配置
cat sys/rpc/etc/sys.yaml #gozero配置

使用脚本启动所有的Api服务和Rpc服务

sh restart-microservice.sh

可以分别查看是否启动成功

tail -F nohup.out  #网关的服务
tail -F user/rpc/nohup.out #用户的rpc服务
tail -F common/rpc/nohup.out #公共的
tail -F votes/rpc/nohup.out #投票的
tail -F search/rpc/nohup.out #搜索的
tail -F questions/rpc/nohup.out #问答抽奖

在postman 导入数据

postman_collection.json定义了基本的postman项目

扩展

感谢

参考项目:

功能列表

已完成的功能列表

  • go-zero-admin
    • oms
    • ums
    • pms
    • sys
  • 微信公众号登陆
  • 七牛上传获取token
  • 电影
    • 查询信息
  • 投票
    • 报名
    • 报名列表
    • 投票
  • 抽奖问答
    • 活动信息
    • 问答列表
    • 提交答案
    • 获取得分
    • 抽奖
    • 填写中奖人信息
  • 搜索
    • 基于elasticsearch

未完成的

  • 微信支付宝登陆
  • 微信支付宝支付

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published