微服务实践(一)概览

微服务实践系列用于加深对微服务组件的理解以及基本的使用,本文只列举市面流行的微服务框架进行开,所涉及的主要内容包括:Spring Boot服务搭建、微服务的设计原则、服务注册与发现、负载均衡、断路器等等。

技术选型

技术版本说明
Spring Boot2.3.3.RELEASEMVC核心框架
Nacos2.2.0.RELEASE服务注册于发现,配置中心
Open Feign2.2.0.RELEASE用于服务之间远程调用
Hytstrix2.2.0.RELEASE提供服务降级和熔断
Spring Cloud Gateway2.2.0.RELEASESpring提供的一种新型API网关,可以更灵活地实现路由和过滤等功能。
Swagger-UI2.9.2文档生产工具
Hibernator-Validator6.0.17验证框架
hikari2.3.3.RELEASESpringBoot内置连接池
调度服务Xxl-Job
Swagger-UI2.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  -- 订单服务对外暴露接口