从零开始实现基于go-zero框架的微服务电商项目(一)——背景介绍及环境搭建

540 阅读2分钟

# 从零开始实现基于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 启动。

项目框架

Snipaste_2023-04-27_10-15-39.png

先copy一个图,大概就是六大服务,下一章我们将开始完成User服务

感谢

如果你觉得我的文章对你有帮忙,欢迎点赞,关注,star!有问题可以在评论区直接提出来,感谢大家的阅读!🥰🥰🥰🥰🥰🥰

参考

(94条消息) go-zero 成长之路—微服务电商实战系列(一、需求篇)go-zero官方文档码一行的博客-CSDN博客

go-zero

go-zero实战:让微服务Go起来——1 项目介绍 - 掘金 (juejin.cn)