从零开始实现基于go-zero框架的微服务电商项目(一)——背景介绍及环境搭建
项目地址:liuxianloveqiqi/XianShop: 使用go-zero搭建的电商项目 (github.com)
项目背景
基于最近楼主开始学习go-zero,官方给的文档也看的差不多了,由于没有写过微服务的项目,这次正好写一个微服务项目练练手,为什么选择电商项目呢?因为这一项目资源广泛,而且有官方的参考项目。本项目就是参考:microShop: 基于go-zero的微服务商城 (gitee.com)
go-zero实战:让微服务Go起来 - Ving的专栏 - 掘金 (juejin.cn)
基础要求
-
go-zero的了解,详情请参考官方文档:go-zero
-
docker的使用
-
Gprc,go-zero的插件
环境搭建
新建docker-compose.yaml文件,先就这些后续有要求可以加入。
version: '3'
services:
mysql:
image: mysql:latest
environment:
MYSQL_ROOT_PASSWORD: 自己设置
MYSQL_DATABASE: 你的库
volumes:
- ./mysql-data:/var/lib/mysql
ports:
- "3306:3306"
redis:
image: redis
ports:
- "6379:6379"
volumes:
- ./redis-data:/data
command: redis-server --appendonly yes
etcd:
image: quay.io/coreos/etcd:latest
command: etcd --listen-client-urls=http://0.0.0.0:2379 --advertise-client-urls=http://0.0.0.0:2379
ports:
- "2379:2379"
minio:
image: minio/minio
container_name: minio_1
environment:
MINIO_ROOT_USER: 自己设置
MINIO_ROOT_PASSWORD: 自己设置
ports:
- "9000:9000"
- "9001:9001"
volumes:
- /Users/liuxian/minio/data
- /Users/liuxian/minio/config
command: server --console-address ':9001' /data #指定容器中的目录 /data
privileged: true
restart: always
nsqlookupd:
image: nsqio/nsq
command: /nsqlookupd
ports:
- "4160:4160" # tcp
- "4161:4161" # http
nsqd:
image: nsqio/nsq
# 广播地址不填的话默认就是oshostname(或虚拟机名称),那样 lookupd 会连接不上,所以直接写IP
command: /nsqd --broadcast-address=10.236.92.208 --lookupd-tcp-address=nsqlookupd:4160
depends_on:
- nsqlookupd
ports:
- "4150:4150" # tcp
- "4151:4151" # http
nsqadmin:
image: nsqio/nsq
command: /nsqadmin --lookupd-http-address=nsqlookupd:4161
depends_on:
- nsqlookupd
ports:
- "4171:4171" # http
zookeeper:
image: confluentinc/cp-zookeeper:6.2.0
container_name: zookeeper
ports:
- "2181:2181"
kafka:
image: confluentinc/cp-kafka:6.2.0
container_name: kafka
ports:
- "9092:9092"
depends_on:
- zookeeper
environment:
KAFKA_BROKER_ID: 1
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka:29092,PLAINTEXT_HOST://localhost:9092
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
然后终端输入$ docker-compose up -d
启动。
项目框架
先copy一个图,大概就是六大服务,下一章我们将开始完成User服务
感谢
如果你觉得我的文章对你有帮忙,欢迎点赞,关注,star!有问题可以在评论区直接提出来,感谢大家的阅读!🥰🥰🥰🥰🥰🥰
参考
(94条消息) go-zero 成长之路—微服务电商实战系列(一、需求篇)_go-zero官方文档_码一行的博客-CSDN博客