写在前面
为了更好的学习springcloud,我们来一起开发一个实战项目,加深理解。
1:项目介绍
在开始项目实战之前先来做一个整体的项目介绍,从而能够让对项目的整体架构和模板有一个比较清晰的认知。
大家都知道双11,双12这种电商活动,企业会有各种各样眼花缭乱的优惠券供我们使用,如下图:
其中大红色对钩的就是优惠券提供的相关功能。
本部分我们就来实现一个优惠券平台项目,完整优惠券的发放,优惠券的删除,优惠券的优惠计算等服务,用来支撑电商的下单,优惠计算等核心功能,模块如下:
优惠券模板服务:
定义各种优惠券类型,给用户发放优惠券,优惠券的删除等功能
优惠券计算模块:
提供优惠券的计算服务,优惠券试算(帮助用户从多张优惠券中选择一张最划算的)
用户服务:
暴露给用户使用,如用户领取优惠券,删除优惠券,查看优惠券等
平台组建:
业务无关的组件,如gateway等
参考下图们:
组件图
:
整体架构图
:
2:基础环境准备
2.1:DB
点我 。
2.2:安装rabbitmq
// 1:下载镜像,启动容器
[root@localhost ~]# docker run -d --hostname my-rabbit --name rabbit -p 15672:15672 -p 5673:5672 rabbitmq
Unable to find image 'rabbitmq:latest' locally
Trying to pull repository docker.io/library/rabbitmq ...
latest: Pulling from docker.io/library/rabbitmq
7b1a6ab2e44d: Pull complete
37f453d83d8f: Pull complete
....
Digest: sha256:884146137011519524d506a12687127f3d2c7c37c2cc11206dc72c59bedea5e2
Status: Downloaded newer image for docker.io/rabbitmq:latest
2200a60ea88e814355827b6c8956fb4f60d7c6c1c4da0536e4b6b2d60e85cc38
// 2:查看容器信息
[root@localhost ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2200a60ea88e rabbitmq "docker-entrypoint..." 10 seconds ago Up 8 seconds 4369/tcp, 5671/tcp, 15691-15692/tcp, 25672/tcp, 0.0.0.0:15672->15672/tcp, 0.0.0.0:5673->5672/tcp rabbit
...
// 3:进入容器,执行rabbitmq-plugins enable rabbitmq_management,启动UI管理
[root@localhost ~]# docker exec -it 2200a60ea88e /bin/bash
root@my-rabbit:/#
root@my-rabbit:/#
root@my-rabbit:/# rabbitmq-plugins enable rabbitmq_management
Enabling plugins on node rabbit@my-rabbit:
rabbitmq_management
The following plugins have been configured:
rabbitmq_management
rabbitmq_management_agent
成功后:
2.3:安装redis
参考这篇文章 。