微服务实践(一)概览
微服务实践系列用于加深对微服务组件的理解以及基本的使用,本文只列举市面流行的微服务框架进行开,所涉及的主要内容包括:Spring Boot服务搭建、微服务的设计原则、服务注册与发现、负载均衡、断路器等等。
技术选型
技术 | 版本 | 说明 |
---|---|---|
Spring Boot | 2.3.3.RELEASE | MVC核心框架 |
Nacos | 2.2.0.RELEASE | 服务注册于发现,配置中心 |
Open Feign | 2.2.0.RELEASE | 用于服务之间远程调用 |
Hytstrix | 2.2.0.RELEASE | 提供服务降级和熔断 |
Spring Cloud Gateway | 2.2.0.RELEASE | Spring提供的一种新型API网关,可以更灵活地实现路由和过滤等功能。 |
Swagger-UI | 2.9.2 | 文档生产工具 |
Hibernator-Validator | 6.0.17 | 验证框架 |
hikari | 2.3.3.RELEASE | SpringBoot内置连接池 |
调度服务 | Xxl-Job | |
Swagger-UI | 2.5.0 | 文档生产工具 |
服务说明
订单服务:
只提供订单的基本的增删改查,用于demo
模型
CREATE TABLE orders (
order_id INT AUTO_INCREMENT PRIMARY KEY, -- 自动递增的订单号作为主键
customer_name VARCHAR(50), -- 客户名称,最大长度50个字符
customer_address VARCHAR(100), -- 客户地址,最大长度100个字符
customer_phone VARCHAR(20), -- 客户联系电话,最大长度20个字符
product_id, int -- 商品id
product_name VARCHAR(50), -- 商品名称,最大长度50个字符
quantity INT, -- 商品数量,整数类型
price DECIMAL(10, 2), -- 商品单价,最大10位数,小数点后保留2位
total DECIMAL(10, 2), -- 订单总价,最大10位数,小数点后保留2位
shipping_info VARCHAR(100), -- 发货信息,最大长度100个字符
order_status VARCHAR(20), -- 订单状态,最大长度20个字符
payment_info VARCHAR(100), -- 支付信息,最大长度100个字符
order_date DATE -- 订单日期,日期类型
);
项目结构
├─product-center-- 商品中心 │ ├─product-center-server -- 商品服务 │ ├─product-center-api -- 商品服务对外暴露接口
商品服务
只提供商品的基本的增删改查,用于demo
模型
CREATE TABLE products (
product_id INT AUTO_INCREMENT PRIMARY KEY, -- 自动递增的产品ID作为主键
product_name VARCHAR(50), -- 产品名称,最大长度50个字符
description TEXT, -- 产品描述,文本类型
category VARCHAR(50), -- 产品类别,最大长度50个字符
price DECIMAL(10, 2), -- 产品价格,最大10位数,小数点后保留2位
stock INT, -- 产品库存,整数类型
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, -- 产品创建时间,时间戳类型,默认值为当前时间
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP -- 产品更新时间,时间戳类型,更新时自动更新为当前时间
);
项目结构
├─order-center-- 订单中心 │ ├─order-center-server -- 订单服务 │ ├─order-center-api -- 订单服务对外暴露接口
Leave a Reply