从零开始带你实战搭建Spring Cloud Alibaba商城项目

一:环境搭建

本次项目在Linux系统下运行,虚拟机为VMware,操作系统为Centos8,需要的工具有Docker,MySql5.7,Redis,Git。

  1. MySql5.7:安装好docker’后,pull进来MySql5.7,配置好端口映射、目录挂载等,再创建my.cnf文件来配置MySql5.7。
docker下mysql配置:my.cnf
【client】
default-character-set=utf8
【mysql】
default-character-set=utf8
【mysqld】
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collection-server=utf8_unicode_ci
skip-character-set-client-handshake
skip-name-resolve 
设置mysql密码,挂载目录,端口映射等
docker run -p 3306:3306 --name mysql \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql \
-v /mydata/mysql/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:5.7
  1. Redis下载安装如下
mkdir -p /mydata/redis/conf
touch /mydata/redis/conf/redis.conf

docker run -p 6379:6379 --name redis -v /mydata/redis/data:/data \
-v/mydata/redis/conf/redis.conf:/etc/redis/redis.conf \
-d redis redis-server /etc/redis/redis.conf

在redis.conf中配置如下命令,保证持久化

appendonly yes
  1. 修改maven配置文件,使用jdk1.8,并且使用阿里云加速
  2. 本地git连接码云
  3. 码云新建仓库,获取HTTP连接。在idea中new一个project from version control,使用git,链接为刚才的HTTP地址,将仓库导入idea成功。

二:项目搭建

  1. new一个module,每一个module都是我们的一个微服务,导入如下两个依赖,依照此步骤完成后续服务搭建。在这里插入图片描述
  2. 需要的微服务搭建好后,在主pom文件中导入创建的module,刷新maven
  3. 在主.gitignore文件中添加忽略文件,将剩下的文件add to VCS,这样有更新时会在仓库中显示。
  4. 第一次提交,将文件commit,点击commit and push,即可同步到码云在这里插入图片描述
  5. 创建数据库
    Navicat连接Linux中docker创建的mysql,建好数据库,导入sql文件
  6. 在码云“人人开源项目”中克隆下来“renren-fast”到项目主目录 ,链接为
    link.同样在主pom文件中加入module依赖。然后将其在其目录下db文件mysql.sql代入数据库,并修改resources-static-application-dev.yml。启动renren-fast主函数,此时已经能打开localhost
  7. 在人人开源克隆renren-fast-vue,有了这个才能和后端联动,下载好后用VSCode打开,安装node.js。安装完成后,在vscode打开项目终端,输入:npm install来下载依赖,完成后 npm run dev则可联动成功!!
  8. 在人人开源下载renren-generator,导入idea,配置好配置文件(给哪个微服务产生代码,和连接的数据库是哪个),启动后在http://localhost/#/generator.html自动生成代码在这里插入图片描述
    生成成功后,解压将mian文件覆盖至原来服务的main
  9. 创建gulimall-common微服务,将一些公共依赖和类放进去,类似mybatis-plus-boot-starter,lombok,httpcore,commons-lang的依赖,并将原来renrne-fast的utils中的类转入到common的utils中(都是自己创建再复制进去),最终目的是使自动产生代码的微服务不再爆红!!

-----------------------------------------------------------------------------------2020.7.25
9.将需要自动生成代码的微服务(非common)添加配置文件application.yml来配置自己服务的数据库信息等。
10.以此类推,将所有微服务都自动生成代码并填写配置,我们的架构搭建告与段落。

三:分布式组件–Spring Cloud Alibaba

在这里插入图片描述

1.微服务架构简介

如图所示,必备注册中心,服务中心,网关。

  • 注册中心:每个微服务都应进入注册中心,这样若订单服务想远程调用商品服务,就会在注册中心查询是否有此服务,然后进行远程调用。
  • 配置中心:每个服务可能搭建在数十台服务器中,若要一一配置太繁琐,但在配置中心配置后,即可实现全场景更新。
  • 网关:前端请求进来后,先进入网关,由网关来进行过滤。
2.为什么使用SpringCloud Alibaba作为组件
  • 曾经的Spring Cloud部分组件停止更新。
  • 这些组件配置复杂,没有图形化界面,难以上手
3.本次项目技术构成
  • SpringCloud Alibaba-Nacos:注册中心(服务发现/注册),配置中心(动态配置管理)
  • SpringCloud Alibaba Sentinel:服务容错(限流,降级,熔断)
  • SpringCloud Alibaba Seata:分布式事务解决方案
  • SpringCloud Ribbon:负载均衡
  • SpringCloud Feign:声明式HTTP客户端(远程调用)
  • SpringCloud-Gateway:API网关(webflux编程模式)
  • SpringCloud-Sleuth:调用链监控

四:SpringCloud Alibaba-Nacos引入

  • 在官网下载安装好Nacos后,启动Nacos,用startup.cmd
  • ①在common中引入nacos的依赖spring-cloud-starter-alibaba-nacos-discovery,并②在每个微服务的application.yml中配置本地端口号,nacos服务地址,application name(在nacos中显示为服务名称)等,③在main函数中添加注解@EnableDiscoveryClient。最后启动微服务,即可在nacos网站http://localhost:8848/nacos中看到此微服务。

五:服务调用

调用前须知
  • 在将所有服务都写进nacos后,我们
  • 2
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

匿名王同学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值