凡科建站官网登,科技术语有哪些,工程公司企业简介,精灵代理ip目录 引出小项目要求创建极简数据库表订单表#xff0c;订单明细表商品表积分表 相关微服务积分微服务产品微服务订单微服务调用积分和订单微服务 网关微服务登陆认证通过网关实现对外提供接口API走网关功能 sentinel相关使用Sentinel限流#xff0c;流量整形Sentinel降级服务… 目录 引出小项目要求创建极简数据库表订单表订单明细表商品表积分表 相关微服务积分微服务产品微服务订单微服务调用积分和订单微服务 网关微服务登陆认证通过网关实现对外提供接口API走网关功能 sentinel相关使用Sentinel限流流量整形Sentinel降级服务制造异常情况实现降级 总结 引出
使用Nacos、Open Feign、Gateway、Sentinel技术栈实现XX公司订单、库存、积分的案例开发以下是服务调用关系
git代码https://gitee.com/pet365/spring-cloud-goods https://github.com/RainbowForest/e-commerce-microservices https://awesomeopensource.com/project/RainbowForest/e-commerce-microservices 小项目要求
使用Nacos、Open Feign、Gateway、Sentinel技术栈实现XX公司订单、库存、积分的案例开发以下是服务调用关系
技术栈Nacos、Open Feign、Gateway、Sentinel技术栈 二数据库设计
1订单表、订单明细表 2商品表 3积分表
三项目需求
1现订单增删改查除功能 2实现商品增删改查除功能 3实现积分增删改查除功能 4实现nacos配置中心 5实现网关用户认证功能
在网关使用token实现认证功能
6实现对外提供接口API走网关功能
①积分查询列表②商品查询列表③订单查询列表④下单功能
7实现内部服务调用功能
①内部服务使用Open Feign②下单调用商品服务减库存③下单调用积分服务加积分
8Sentinel降级服务制造异常情况实现降级
9实现网关限流功能
使用Sentinel限流流量整形
创建极简数据库表
订单表订单明细表 /*Navicat Premium Data TransferSource Server : 127.0.0.1Source Server Type : MySQLSource Server Version : 80022Source Host : 127.0.0.1:3306Source Schema : consumer_goods_orderTarget Server Type : MySQLTarget Server Version : 80022File Encoding : 65001Date: 10/10/2023 21:51:03
*/SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS 0;-- ----------------------------
-- Table structure for goods_order
-- ----------------------------
DROP TABLE IF EXISTS goods_order;
CREATE TABLE goods_order (id int NOT NULL AUTO_INCREMENT COMMENT 主键暂不考虑高并发问题,user_id int NULL DEFAULT NULL COMMENT 用户id,price decimal(10, 2) NULL DEFAULT NULL COMMENT 总价格,PRIMARY KEY (id) USING BTREE
) ENGINE InnoDB CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci ROW_FORMAT Dynamic;-- ----------------------------
-- Table structure for goods_order_detail
-- ----------------------------
DROP TABLE IF EXISTS goods_order_detail;
CREATE TABLE goods_order_detail (id int NOT NULL AUTO_INCREMENT COMMENT 订单明细表主键,order_id int NULL DEFAULT NULL COMMENT 订单表的id,goods_id int NULL DEFAULT NULL COMMENT 商品的id,nums int NULL DEFAULT NULL COMMENT 数量,PRIMARY KEY (id) USING BTREE
) ENGINE InnoDB CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci ROW_FORMAT Dynamic;SET FOREIGN_KEY_CHECKS 1;
商品表 /*Navicat Premium Data TransferSource Server : 127.0.0.1Source Server Type : MySQLSource Server Version : 80022Source Host : 127.0.0.1:3306Source Schema : consumer_goods_productTarget Server Type : MySQLTarget Server Version : 80022File Encoding : 65001Date: 10/10/2023 21:52:45
*/SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS 0;-- ----------------------------
-- Table structure for goods_sku
-- ----------------------------
DROP TABLE IF EXISTS goods_sku;
CREATE TABLE goods_sku (id int NOT NULL AUTO_INCREMENT COMMENT 主键,name varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT 商品名,price decimal(10, 2) NULL DEFAULT NULL COMMENT 价格,stock int NULL DEFAULT NULL COMMENT 数量,PRIMARY KEY (id) USING BTREE
) ENGINE InnoDB CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci ROW_FORMAT Dynamic;-- ----------------------------
-- Records of goods_sku
-- ----------------------------
INSERT INTO goods_sku VALUES (1, iPhone 15 Pro Max 超视网膜 XDR 显示屏, 8999.00, 39);SET FOREIGN_KEY_CHECKS 1;
积分表 /*Navicat Premium Data TransferSource Server : 127.0.0.1Source Server Type : MySQLSource Server Version : 80022Source Host : 127.0.0.1:3306Source Schema : consumer_goods_pointsTarget Server Type : MySQLTarget Server Version : 80022File Encoding : 65001Date: 10/10/2023 21:53:48
*/SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS 0;-- ----------------------------
-- Table structure for goods_point
-- ----------------------------
DROP TABLE IF EXISTS goods_point;
CREATE TABLE goods_point (id int NOT NULL AUTO_INCREMENT COMMENT 主键,user_id int NULL DEFAULT NULL COMMENT 对应用户的主键,point decimal(10, 2) NULL DEFAULT NULL COMMENT 积分数量,PRIMARY KEY (id) USING BTREE
) ENGINE InnoDB AUTO_INCREMENT 1 CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci ROW_FORMAT Dynamic;-- ----------------------------
-- Records of goods_point
-- ----------------------------
INSERT INTO goods_point VALUES (1, 1, 10.89);
INSERT INTO goods_point VALUES (2, 1, 8999.00);
INSERT INTO goods_point VALUES (3, 1, 8999.00);
INSERT INTO goods_point VALUES (4, 1, 8999.00);
INSERT INTO goods_point VALUES (5, 1, 17998.00);
INSERT INTO goods_point VALUES (6, 1, 17998.00);
INSERT INTO goods_point VALUES (7, 1, 8999.00);
INSERT INTO goods_point VALUES (8, 1, 8999.00);SET FOREIGN_KEY_CHECKS 1;
相关微服务
积分微服务 产品微服务 订单微服务 调用积分和订单微服务
内部服务使用Open Feign 下单调用商品服务减库存 下单调用积分服务加积分 网关微服务 登陆认证通过网关
下面是我用的token eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZCI6MSwidXNlcm5hbWUiOiJhZG1pbiJ9.Gdsp9Fz9DTbekM7maxJVceuWZeEZlF0Ir0NuzHbE7kc 权限从redis中获取 实现对外提供接口API走网关功能
①积分查询列表 ②商品查询列表 ③订单查询列表 ④下单功能 sentinel相关
使用Sentinel限流流量整形 进行配置 JMeter测试工具 http请求 线程数设置 sentinel中查看监控波形图 JMeter后台结果树 消峰填谷 采用均匀排除的策略 Sentinel降级服务制造异常情况实现降级 在积分微服务中通过传的参数进行是否抛出异常 在调用积分微服务的订单order微服务中设置feign的fallback 对于order调用的积分的请求资源进行熔断规则的设置 总体概览多次调用触发了熔断降级发送正常请求次数处于熔断期间因此也被降级。 总结
使用Nacos、Open Feign、Gateway、Sentinel技术栈实现XX公司订单、库存、积分的案例开发以下是服务调用关系