Bootstrap

一款基于SpringCloudAlibaba从0到1手敲的商城项目mtg-shop

项目介绍

mtg-shop是一款基于SpringCloudAlibaba从0到1构建的微服务商城项目,从环境准备->项目构建->业务开发->项目的部署->项目压测,整个从0到1的过程将会通过文章的形式记录下来。

微服务架构技术选型

通信方式:微服务之间的通信方式:RPC调用和Http调用,既然我们基于SpringCloudAlibaba来实现,所以我们遵循Http方式作为服务之间的通信,框架:OpenFeign。

注册中心:目前主流注册中心包括:Eureka、Nacos、Consul、Zookeeper等。

SpringCloudAlibaba默认使用Nacos,Nacos包含一个比较人性化的可视化控制台,用起来较为方便,它是阿里内部十年大促沉淀出来的组件。它提供两种模式CP和AP,当然目前web项目基本都使用AP的方式,同时也提供了配置中心可视化界面,目前社区也较为活跃,底层通讯基于http和gRPC长连接。

负载均衡:SpringCloudAlibaba使用loadbalance作为负载均衡。

配置中心:Nacos即可以提供注册中心的功能也提供了配置中心,共用一个可视化后台,使用方便,可以根据命名空间和组来隔离不同环境的配置数据。

网关:目前SpringCloud提供两种Zuul和getway,由于zuul更新迭代很慢,性能一般,SpringCloud自己研发了一套网关getway。

限流和降级:SpringCloud默认使用Hystrix作为熔断器,SpringCloudAlibaba则提供了Sentinel一站式解决方案,所以我们将会使用Sentinel。

缓存:Redis是现在主流的缓存中间件。

消息总线:SpringCloud默认使用了SpringCloud Bus。

链路监控:sleuth+zipkin

分布式事务:seata

......

内容简介

本篇主要涉及如下内容。

  1. CentOs虚拟环境安装:采用VirtualBox,主要作用是模仿真实项目的生产环境。

  2. SecureCRT下载安装:用于连接centos,方便操作。

  3. 在CentOs安装Docker:基于docker安装各种中间件,docker环境必须要安装的。

  4. 安装MySQL/Redis:基于docker安装MySQL/Redis。

  5. mtg-shop项目创建:基于用户购买核心流程创建5个模块:用户、商品、购物车、订单和库存模块。

  6. 版本选择:SpringCloud、SpringAlibaba版本对应

  7. 开源项目renren-fast集成:使用前后端分离的项目,同时集成代码生成器,主要用户商城后端运营,例如:维护商品、订单信息等等。

  8. Nacos安装部署:基于docker安装nacos,作为整个微服务的注册中心和配置中心。

CentOS虚拟机环境安装

我们使用VirtualBox和Vagrant是生成虚拟机的环境,要比VMWare速度要快很多,也很方便。

VirtualBox官网:https://www.virtualbox.org/  

Vagrant官网:https://www.vagrantup.com/

通过Vagrant安装虚拟机:

  • 创建一个空的目录,切换到该目录中,然后执行vagrant init centos/7 会在当前目录下自动创建Vagrantfile文件

  • 打开Vagrantfile文件,修改config.vm.network,作用是能够让本机访问虚拟机,具体位置如下图所示。

  • 执行vagrant up 第一次执行的时候会远程下相关的镜像文件,并启动虚拟机。

;