前言

因为要运用 Spring Cloud Alibaba 开源组件到分布式项目中,所以这里先搭建一个不通过 Spring Cloud只通过 RestTemplate 来让SpringBoot和Mybatis进行模块之间

通讯,之后会在此基础上再添加Spring Cloud Alibaba框架及各个组件。

一、项目整体概述

这里整理了一张图,代表接下来这个项目的模块划分,同时用到的一些组件

从这幅图可以看出整个项目所需要用到的组件有:

 GateWay(网关),Feign(服务调用),Nacos(注册中心+配置中心),Zipkin(链路追踪组件),Sentinel(流量控制组件)

一共创建了三个服务

商品微服务
订单微服务
用户微服务

这篇博客的目的就是搭建上面三个服务,而不添加任何微服务的组件。

二、项目环境和数据库设计

上面已经说过,一共有三个微服务(商品微服务,订单微服务,用户微服务),所以这里也一共有三个数据库。

1、商品微服务

1).创建商品微服务的数据库

CREATE DATABASE mall_goods

2).创建商品表

CREATE TABLE `goods` (`id` int unsigned NOT NULL AUTO_INCREMENT,`goods_name` varchar(524) DEFAULT NULL COMMENT '商品名称',`price` int DEFAULT NULL COMMENT '商品价格(分)',`goods_img` varchar(524) DEFAULT NULL COMMENT '商品封⾯图',`summary` varchar(1026) DEFAULT NULL COMMENT '概述',`create_time` datetime DEFAULT NULL COMMENT '创建时间',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

3).表里插入几条模拟商品数据

INSERT INTO `goods` (`id`, `goods_name`, `price`, `goods_img`, `summary`, `create_time`)
VALUES(1,'男士纯棉短袖T恤',1800,'www.txun.com','很休闲的一款T恤','2021-04-03 11:48:46'),(2,'2021秋季风衣女装',7200,'www.fy.com','很好的一件风衣','2021-04-03 11:48:46'),(3,'2021春装新款简约显瘦圆领连衣裙',3600,'www.lyq.com','很好一件连衣裙','2021-04-03 11:48:46');

2、订单微服务

1).创建订单微服务的数据库

CREATE DATABASE mall_orders

2).创建订单表

CREATE TABLE `goods_order` (`id` int unsigned NOT NULL AUTO_INCREMENT,`order_no` varchar(64) DEFAULT NULL COMMENT '订单号',`total_fee` int DEFAULT NULL COMMENT '⽀付⾦额,单位分',`goods_id` int DEFAULT NULL COMMENT '商品ID',`goods_title` varchar(256) DEFAULT NULL COMMENT '商品标题',`goods_img` varchar(256) DEFAULT NULL COMMENT '商品图⽚',`user_id` int DEFAULT NULL COMMENT '⽤户id',`state` int DEFAULT NULL COMMENT '0表示未⽀付,1表示已⽀付',`create_time` datetime DEFAULT NULL COMMENT '订单⽣成时间',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

3).表里插入几条模拟订单数据

INSERT INTO `goods_order` (`id`, `order_no`, `total_fee`, `goods_id`, `goods_title`, `goods_img`, `user_id`, `state`, `create_time`)
VALUES(1,'2021033000001-1',1800,1,'男士纯棉短袖T恤','www.txun.com',1,1,'2021-04-03 11:48:46'),(2,'2021033000001-2',7200,2,'2021秋季风衣女装','www.fy.com',2,1,'2021-04-03 11:48:46');

3、用户微服务

1).创建用户微服务的数据库

CREATE DATABASE mall_user

2).创建用户表

CREATE TABLE `user` (`id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT,`phone` varchar(32) DEFAULT NULL  COMMENT '手机号',`pwd` varchar(128) DEFAULT NULL  COMMENT '密码',`sex` int(2) DEFAULT NULL  COMMENT '性别',`img` varchar(128) DEFAULT NULL  COMMENT '头像',`username` varchar(128) DEFAULT NULL  COMMENT '用户名',`create_time` datetime DEFAULT NULL   COMMENT '创建时间',PRIMARY KEY (`id`)
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARSET = utf8mb4;

3).表里插入几条用户数据

INSERT INTO `user` (`id`, `phone`, `pwd`, `sex`, `img`, `username`, `create_time`)
VALUES(1,'18812345678','123456',1,'www.touxiang.com','小小','2021-04-03 11:48:46'),(2,'18887654321','654321',2,'www.touxiang.com','张三','2021-04-03 11:48:46');

三、项目搭建

1、技术架构

项目总体技术选型

SpringBoot2.3.3 + Maven3.5.4 +JDK8

2、项目整体结构

mall-parent  #父工程|---mall-common #公共模块|---mall-goods  #商品服务(端口:6001)|---mall-order  #订单服务(端口:7001)|---mall-user   #用户服务(端口:8001)

说明 有关项目具体的代码我这边就不放上去了,文章最下面会附上GitHub地址。

四、测试

这里主要测试两点

1)各模块连接数据库是否成功
2)订单服务调商品服务接口能否成功

1、订单接口代码

@RestController
@RequestMapping("api/v1/goods_order")
public class OrderController {@Autowiredprivate RestTemplate restTemplate;@RequestMapping("getGoods")public Object getGoods(int goodsId) {Goods goods = restTemplate.getForObject("http://localhost:6001/api/v1/goods/findByGoodsId?goodsId=" + goodsId, Goods.class);return goods;}
}

2、测试

通过postMan测试

通过图片可以说明

1)商品服务连接数据库成功
2)订单服务调商品服务成功

说明 这只是一个学习的项目,所以比较简单,下面就是一步一步添加spring cloud alibaba 框架及相应组件。

Spring Cloud Alibaba(2)---RestTemplate微服务项目相关推荐

  1. 阿里巴巴开源 Spring Cloud Alibaba,加码微服务生态建设

    转载自  阿里巴巴开源 Spring Cloud Alibaba,加码微服务生态建设 本周,Spring Cloud联合创始人Spencer Gibb在Spring官网的博客页面宣布:阿里巴巴开源 S ...

  2. Spring Cloud Alibaba 系统保护:微服务架构雪崩效应与服务限流

    前面我们介绍了 OpenFeign 微服务间通信与 Spring Cloud Gateway 网关通信,这些是日常业务中的正常处理情况,但是在微服务环境下受制于网络.机器性能.算法.程序各方面影响,运 ...

  3. spring cloud alibaba + tx-lcn 实现微服务的分布式事务管理

    Spring Cloud Alibaba官方文档:https://github.com/alibaba/spring-cloud-alibaba/blob/master/README-zh.md Sp ...

  4. 【Spring Cloud】新闻头条微服务项目:自媒体前后端搭建素材管理(含优化)

    个人简介:  >

  5. 【微服务 从0开始 】Spring Cloud 简单搭建一个微服务项目

  6. 【译文】用Spring Cloud和Docker搭建微服务平台

    by Kenny Bastani Sunday, July 12, 2015 转自:http://www.kennybastani.com/2015/07/spring-cloud-docker-mi ...

  7. 用Spring Cloud和Docker搭建微服务平台

    This blog series will introduce you to some of the foundational concepts of building a microservice- ...

  8. spring cloud+.net core搭建微服务架构:Api授权认证(六)

    前言 这篇文章拖太久了,因为最近实在太忙了,加上这篇文章也非常长,所以花了不少时间,给大家说句抱歉.好,进入正题.目前的项目基本都是前后端分离了,前端分Web,Ios,Android...,后端也基本 ...

  9. spring cloud+dotnet core搭建微服务架构:配置中心(四)

    前言 我们项目中有很多需要配置的地方,最常见的就是各种服务URL地址,这些地址针对不同的运行环境还不一样,不管和打包还是部署都麻烦,需要非常的小心.一般配置都是存储到配置文件里面,不管多小的配置变动, ...

最新文章

  1. 《微软飞行模拟》用AI还原全球15亿建筑,玩家发现bug:白金汉宫变成写字楼
  2. 在eclipse中把项目部署到tomcat中时,发现项目文件不完整
  3. EF中 GroupJoin 与 Join
  4. c语言 执行free函数程序被卡住,FreeRTOS操作系统,在按键中断函数中恢复被挂起的任务,程序卡死的原因和解决办法...
  5. memache的使用场景
  6. gulp-cli命令安装出错_Java Mac上的安装
  7. JS 向未声明的变量分配值(可删除)
  8. 计算机安全性分析建模,计算机网络安全性分析建模研究
  9. c# TcpClient 客户端断线重连类库
  10. word文档图标变成白纸_word文档图标显示异常怎么办
  11. STM32F103C8T6 核心板
  12. 手机文件夹为什么是英文?哪些可以删除?看完清理能多出10G内存
  13. 面试时如何回答离开上家公司的原因?
  14. XCode下Swift – WebView IOS demo
  15. 计算机等级考试准考证打河南,2019年河南牧院计算机等级考试准考证打印时间...
  16. 自行車基本知識 (zz)
  17. MySQL 大量sleeping before entering InnoDB 故障诊断
  18. 政策解读│软件产业企业所得税优惠政策介绍(2022年版)
  19. 都说打印机又笨又丑 这一回联想小新给你好看!
  20. UG NX 12 基准平面

热门文章

  1. 初入了解MySQL储存引擎和B+Tree索引
  2. hsqldb数据库启动遇到的问题
  3. Java使用File类生成文件报错:java.io.FileNotFoundException: C:\... (拒绝访问。)
  4. 北京游戏出版:全新时代正在来临
  5. 华农计算机研究生分数线,2020华南农业大学研究生分数线汇总(含2016-2019历年复试)...
  6. 手机麦克风声音太大_掌握这个话筒使用小技巧,你也可以变声音大师
  7. 经典故事---话说河南人
  8. 智能智慧发电厂相关技术领域
  9. python根据坐标点画线_Openlayers 根据坐标点画点线圆多边形
  10. 性能测试 性能测试实战(六)Jmeter + prometheus-plugin + Prometheus Jmeter性能测试环境搭建 普罗米修斯插件 性能监控 性能数据可视化平台 性能测试平台搭建