一、项目背景
公司内很多业务线都有抽奖和礼品兑换的需求,之前是每个业务线都有自己一套营销逻辑,为了减少各业务线的重复开发,因此单独抽取一个market服务,实现了营销的功能,对外提供了抽奖和兑换的dubbo接口,各业务线只需要做一些活动配置,即可完成营销活动的创建和使用。
二、项目框架

三、数据流转
1、业务方需要先在market服务的管理后台market-admin里创建活动
2、业务方调用market服务的抽奖/兑换接口,market服务校验数据通过后,会返回调用结果,并进行相关奖品库存和用户积分的扣减。
3、Market服务将中奖结果转换为json消息,发送至rocketmq
4、tstock出库服务,从mq中获取用户中奖的数据,写到仓储表中,安排发货
四、部署zookeeper
1、将zookeeper安装包上传至Linux任意目录下,进行解压"tar -xvf zookeeper-3.4.9.tar.gz"
2、进到zookeeper的conf目录下,创建zoo.cfg文件
cp zoo_sample.cfg zoo.cfg
3、进到zookeeper的bin目录下,执行 "./zkServer.sh start" 启动zookeeper,有以下提示代表成功

五、部署rocketmq
1、确保Linux时间是准确的,如果不准确,使用ntp来同步最新时间
yum install -y ntp
ntpdate pool.ntp.org
2、将rocketmq-all-4.5.1-bin-release.zip上传至Linux系统任意目录下,执行解压
unzip rocketmq-all-4.5.1-bin-release.zip
3、进入到rocketmq的bin目录下,修改以下配置文件
根据自己Linux系统内存大小,将jvm参数设置为一个合理的值

根据自己Linux系统内存大小,将jvm参数设置为一个合理的值

根据自己Linux系统内存大小,将jvm参数设置为一个合理的值

4、启动 nameserver
nohup ./mqnamesrv &
查看当前目录下的nohup.out日志,如有下面信息,则启动成功

5、启动 broker
nohup ./mqbroker -n 127.0.0.1:9876 autoCreateTopicEnable=true -c ../conf/broker.conf &
查看当前目录下的nohup.out日志,如有下面信息,则启动成功

6、启动 rocketmq 控制台
将rocketmq-console-ng-1.0.0.jar上传到mq服务器上,执行命令启动
nohup java -jar rocketmq-console-ng-1.0.0.jar --rocketmq.config.namesrvAddr=127.0.0.1:9876 &
注:默认使用8080端口,如果想使用其他端口,添加参数--server.port=xxxx
查看当前目录下的nohup.out日志,如有以下日志,代表启动成功

7、在浏览器里访问mq控制台,能看到页面,代表成功 http://{ip}:8080