前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Spring Cloud:视频讲解编程题

Spring Cloud:视频讲解编程题

作者头像
RendaZhang
发布2020-11-19 16:42:04
3430
发布2020-11-19 16:42:04
举报
文章被收录于专栏:RendaRenda

视频讲解

1_基础环境介绍

2_商品微服务

3_订单微服务

4_配置中心

5_Nginx限流

代码

建立数据库相关表的代码:

代码语言:javascript
复制
# 创建数据库
CREATE DATABASE IF NOT EXISTS renda01 DEFAULT CHARACTER SET utf8;
# 选择使用数据库
USE renda01;

# 创建商品表
DROP TABLE IF EXISTS products;
CREATE TABLE products
(
    `id`          INT PRIMARY KEY AUTO_INCREMENT,
    `name`        VARCHAR(50),  # 商品名称
    `price`       DOUBLE,
    `flag`        VARCHAR(2),   # 上架状态
    `goods_desc`  VARCHAR(100), # 商品描述
    `images`      VARCHAR(400), # 商品图片
    `goods_stock` INT,          # 商品库存
    `goods_type`  VARCHAR(20)   # 商品类型
) ENGINE = INNODB AUTO_INCREMENT = 1 DEFAULT CHARSET = utf8;
INSERT INTO products
VALUES (1, 'HUAWEI P40', 5999, '1', '华为P40 5G手机 分期 麒麟990 晨曦金 8+256GB', 'https://img14.360buyimg.com/n0/jfs/t1/133822/33/8832/135985/5f4da578E7c6efde1/2cd53a53083ab2ed.jpg', 99, '1');
INSERT INTO products
VALUES (2, 'XIAOMI', 6999, '1', '小米 P40 5G手机 分期 麒麟990 晨曦金 8+256GB', 'https://img14.360buyimg.com/n0/jfs/t1/133822/33/8832/135985/5f4da578E7c6efde1/2cd53a53083ab2ed.jpg', 99, '1');
INSERT INTO products
VALUES (3, 'APPLE', 7999, '1', '苹果 P40 5G手机 分期 麒麟990 晨曦金 8+256GB', 'https://img14.360buyimg.com/n0/jfs/t1/133822/33/8832/135985/5f4da578E7c6efde1/2cd53a53083ab2ed.jpg', 99, '2');

# 创建订单表
DROP TABLE IF EXISTS orders;
CREATE TABLE orders
(
    `id`          INT PRIMARY KEY AUTO_INCREMENT,
    `flag`        VARCHAR(2),   # 订单状态(未支付、已支付、已失效、已删除)
    `create_time` DATETIME      # 创建时间
) ENGINE = INNODB AUTO_INCREMENT = 1 DEFAULT CHARSET = utf8;
INSERT INTO orders VALUES (1, '1', '2020-10-11 15:41:46');
INSERT INTO orders VALUES (2, '1', '2020-10-12 15:41:46');
INSERT INTO orders VALUES (3, '3', '2020-10-13 15:41:46');
INSERT INTO orders VALUES (4, '4', '2020-10-14 15:41:46');

# 创建订单商品中间表
DROP TABLE IF EXISTS orders_products_relation;
CREATE TABLE orders_products_relation
(
    `id`          INT PRIMARY KEY AUTO_INCREMENT,
    `order_id`    INT,   # 订单 id
    `product_id`  INT    # 商品 id
) ENGINE = INNODB AUTO_INCREMENT = 1 DEFAULT CHARSET = utf8;
INSERT INTO orders_products_relation VALUES (1, 1, 1);
INSERT INTO orders_products_relation VALUES (2, 1, 2);
INSERT INTO orders_products_relation VALUES (3, 2, 1);
INSERT INTO orders_products_relation VALUES (4, 2, 2);
INSERT INTO orders_products_relation VALUES (5, 2, 3);
INSERT INTO orders_products_relation VALUES (6, 3, 1);
INSERT INTO orders_products_relation VALUES (7, 4, 1);
INSERT INTO orders_products_relation VALUES (8, 4, 2);

说明

访问域名:www.springcloudgateway.com

需求

系统架构图

微服务搭建

lagou-parent:父微服务,所有微服务继承

lagou-cloud-gateway:网关微服务,集群环境,端口号分别为:9000、9001

lagou-service-order:订单微服务,集群环境,端口号分别为:9100、9101

lagou-service-goods:商品微服务,商品微服务,集群环境,端口号为别为:9200、9201

laoug-service-common:公共组件微服务,放置所有业务微服务的 POJO 和 Feign 接口

lagou-cloud-eureka:服务注册与发现微服务,集群环境,端口号分别为 9300、9301

lagou-cloud-config:配置管理微服务,非集群环境,端口号 9400

技术规范

Boot 版本:2.1.6.RELEASE

数据访问:Mybatis-plus

编译插件:Lombok

访问风格:Restful

测试工具:Postman

商品微服务功能列表

通过 id 查询商品。

通过 id 删除商品。

通过 id 编辑商品。

分页查询:

  • pageSize = 10
  • 查询条件:商品名称、分类、价格范围、库存范围、上架状态(0 下架,1 上架)
  • 返回类型:Map,keys: List 商品集合、total 总条目数

商品表自行设计,保证核心字段存在。

订单微服务功能列表

根据 id 查询订单。

分页查询:

  • pageSize = 10
  • 查询条件:订单创建时间范围、订单状态(1 未支付、2 已支付、3 已失效、4 已删除)
  • 返回类型:Map,keys: List 订单集合、total 总条目数

根据订单 id 查询商品列表:

  • 调用商品微服务
  • Feign 接口调用,负载均衡
  • 超时时间 5 秒触发熔断
  • 熔断后服务降级,返回空商品列表
  • 线程池隔离,并发线程数 16,最大队列 1000,队列拒绝阈值 6000

订单表自行设计,注意表的拆分,遵循三大范式。

Nginx

设置 Gateway 访问 Gateway 负载均衡。

Nginx 限流(选做):

  • 令牌桶策略
  • 每秒新增 100 个令牌
  • 令牌桶一共有 500 个令牌
  • 每个 IP 最多并发 10 个连接
  • 限制并发连接数 200

Gateway

所有请求经过 Gateway 转发。

配置动态路由策略。

支付负载均衡。

CONFIG + Bus

从配置获取公司宣传标语 slogan - 中国梦!

支持动态刷新。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-11-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Renda 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 视频讲解
  • 代码
  • 说明
  • 需求
    • 系统架构图
      • 微服务搭建
        • 技术规范
          • 商品微服务功能列表
            • 订单微服务功能列表
              • Nginx
                • Gateway
                  • CONFIG + Bus
                  相关产品与服务
                  负载均衡
                  负载均衡(Cloud Load Balancer,CLB)提供安全快捷的流量分发服务,访问流量经由 CLB 可以自动分配到云中的多台后端服务器上,扩展系统的服务能力并消除单点故障。负载均衡支持亿级连接和千万级并发,可轻松应对大流量访问,满足业务需求。
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档