天天看點

SpringCloud Alibaba微服務實戰一 - 基礎環境準備

SpringCloud Alibaba微服務實戰一 - 基礎環境準備

Spring Cloud Alibaba

Spring Cloud Alibaba 緻力于提供微服務開發的一站式解決方案。此項目包含開發分布式應用微服務的必需元件,友善開發者通過 Spring Cloud 程式設計模型輕松使用這些元件來開發分布式應用服務。

依托 Spring Cloud Alibaba,您隻需要添加一些注解和少量配置,就可以将 Spring Cloud 應用接入阿裡微服務解決方案,通過阿裡中間件來迅速搭建分布式應用系統。

Spring Cloud Netflix

目前市場上主流的 第一套微服務架構解決方案:Spring Boot + Spring Cloud Netflix

Spring Cloud 為開發人員提供了快速建構分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智能路由,微代理,控制總線)。分布式系統的協調導緻了樣闆模式, 使用 Spring Cloud 開發人員可以快速地支援實作這些模式的服務和應用程式。他們将在任何分布式環境中運作良好,包括開發人員自己的筆記本電腦,裸機資料中心,以及 Cloud Foundry 等托管平台。

目前業界對 Spring Cloud 使用最廣的就是 Spring Cloud Netflix 了

項目已經進入維護模式

【官方新聞】Spring Cloud Greenwich.RC1 available now

2018 年 12 月 12 日,Netflix 宣布 Spring Cloud Netflix 系列技術棧進入維護模式(不再添加新特性)

最近,Netflix 宣布 Hystrix 正在進入維護模式。自 2016 年以來,Ribbon 已處于類似狀态。雖然 Hystrix 和 Ribbon 現已處于維護模式,但它們仍然在 Netflix 大規模部署。

Hystrix Dashboard 和 Turbine 已被 Atlas 取代。這些項目的最後一次送出分别是 2 年前和 4 年前。Zuul1 和 Archaius1 都被後來不相容的版本所取代。

以下 Spring Cloud Netflix 子產品和相應的 Starter 将進入維護模式:

  • spring-cloud-netflix-archaius
  • spring-cloud-netflix-hystrix-contract
  • spring-cloud-netflix-hystrix-dashboard
  • spring-cloud-netflix-hystrix-stream
  • spring-cloud-netflix-hystrix
  • spring-cloud-netflix-ribbon
  • spring-cloud-netflix-turbine-stream
  • spring-cloud-netflix-turbine
  • spring-cloud-netflix-zuul

什麼是維護模式

将子產品置于維護模式,意味着 Spring Cloud 團隊将不會再向子產品添加新功能。我們将修複 block 級别的 bug 以及安全問題,我們也會考慮并審查社群的小型 pull request

替代品

我們建議對這些子產品提供的功能進行以下替換:

CURRENT REPLACEMENT
Hystrix Resilience4j
Hystrix Dashboard / Turbine Micrometer + Monitoring System
Ribbon Spring Cloud Loadbalancer
Zuul 1 Spring Cloud Gateway
Archaius 1 Spring Boot external config + Spring Cloud Config

2018 年 10 月 31 日的淩晨,這個偉大的日子裡,Spring Cloud Alibaba 正式入駐了 Spring Cloud 官方孵化器,并在 Maven 中央庫釋出了第一個版本。

Spring Cloud for Alibaba 0.2.0 released

The Spring Cloud Alibaba project, consisting of Alibaba’s open-source components and several Alibaba Cloud products, aims to implement and expose well known Spring Framework patterns and abstractions to bring the benefits of Spring Boot and Spring Cloud to Java developers using Alibaba products.

Spring Cloud for Alibaba,它是由一些阿裡巴巴的開源元件和雲産品組成的。這個項目的目的是為了讓大家所熟知的 Spring 架構,其優秀的設計模式和抽象理念,以給使用阿裡巴巴産品的 Java 開發者帶來使用 Spring Boot 和 Spring Cloud 的更多便利。

github位址

主要功能

  • 服務限流降級:預設支援 WebServlet、WebFlux、OpenFeign、RestTemplate、Spring Cloud Gateway、Zuul、Dubbo 和 RocketMQ 限流降級功能的接入,可以在運作時通過控制台實時修改限流降級規則,還支援檢視限流降級 Metrics 監控。
  • 服務注冊與發現:适配 Spring Cloud 服務注冊與發現标準,預設內建了 Ribbon 的支援。
  • 分布式配置管理:支援分布式系統中的外部化配置,配置更改時自動重新整理。
  • 消息驅動能力:基于 Spring Cloud Stream 為微服務應用建構消息驅動能力。
  • 分布式事務:使用 @GlobalTransactional 注解, 高效并且對業務零侵入地解決分布式事務問題。
  • 阿裡雲對象存儲:阿裡雲提供的海量、安全、低成本、高可靠的雲存儲服務。支援在任何應用、任何時間、任何地點存儲和通路任意類型的資料。
  • 分布式任務排程:提供秒級、精準、高可靠、高可用的定時(基于 Cron 表達式)任務排程服務。同時提供分布式的任務執行模型,如網格任務。網格任務支援海量子任務均勻配置設定到所有 Worker(schedulerx-client)上執行。
  • 阿裡雲短信服務:覆寫全球的短信服務,友好、高效、智能的互聯化通訊能力,幫助企業迅速搭建客戶觸達通道。

元件

Sentinel:把流量作為切入點,從流量控制、熔斷降級、系統負載保護等多個次元保護服務的穩定性。

Nacos:一個更易于建構雲原生應用的動态服務發現、配置管理和服務管理平台。

RocketMQ:一款開源的分布式消息系統,基于高可用分布式叢集技術,提供低延時的、高可靠的消息釋出與訂閱服務。

Dubbo:Apache Dubbo™ 是一款高性能 Java RPC 架構。

Seata:阿裡巴巴開源産品,一個易于使用的高性能微服務分布式事務解決方案。

Alibaba Cloud OSS: 阿裡雲對象存儲服務(Object Storage Service,簡稱 OSS),是阿裡雲提供的海量、安全、低成本、高可靠的雲存儲服務。您可以在任何應用、任何時間、任何地點存儲和通路任意類型的資料。

Alibaba Cloud SchedulerX: 阿裡中間件團隊開發的一款分布式任務排程産品,提供秒級、精準、高可靠、高可用的定時(基于 Cron 表達式)任務排程服務。

Alibaba Cloud SMS: 覆寫全球的短信服務,友好、高效、智能的互聯化通訊能力,幫助企業迅速搭建客戶觸達通道。

版本管理規範

項目的版本号格式為 x.x.x 的形式,其中 x 的數值類型為數字,從 0 開始取值,且不限于 0~9 這個範圍。項目處于孵化器階段時,第一位版本号固定使用 0,即版本号為 0.x.x 的格式。

由于 Spring Boot 1 和 Spring Boot 2 在 Actuator 子產品的接口和注解有很大的變更,且spring-cloud-commons 從 1.x.x 版本更新到 2.0.0 版本也有較大的變更,是以我們采取跟 SpringBoot 版本号一緻的版本:

  • 1.5.x 版本适用于 Spring Boot 1.5.x
  • 2.0.x 版本适用于 Spring Boot 2.0.x
  • 2.1.x 版本适用于 Spring Boot 2.1.x
  • 2.2.x 版本适用于 Spring Boot 2.2.x
  • 2021.x 版本适用于 Spring Boot 2.4.x

特别注意:

Spring Cloud Alibaba 項目都是基于 Spring Cloud,而 Spring Cloud 項目又是基于 Spring Boot 進行開發,是以三者之間的版本關系特别重要,一旦選錯版本,項目就沒法運作

版本說明 遵循這個官方的版本說明解決版本沖突的問題(課件下面的版本僅供參考)

元件版本關系

Spring Cloud Alibaba Version Sentinel Version Nacos Version RocketMQ Version Dubbo Version Seata Version
2.2.6.RELEASE 1.8.1 1.4.2 4.4.0 2.7.8 1.3.0
2021.1 or 2.2.5.RELEASE or 2.1.4.RELEASE or 2.0.4.RELEASE 1.8.0 1.4.1 4.4.0 2.7.8 1.3.0
2.2.3.RELEASE or 2.1.3.RELEASE or 2.0.3.RELEASE 1.8.0 1.3.3 4.4.0 2.7.8 1.3.0
2.2.1.RELEASE or 2.1.2.RELEASE or 2.0.2.RELEASE 1.7.1 1.2.1 4.4.0 2.7.6 1.2.0
2.2.0.RELEASE 1.7.1 1.1.4 4.4.0 2.7.4.1 1.0.0
2.1.1.RELEASE or 2.0.1.RELEASE or 1.5.1.RELEASE 1.7.0 1.1.4 4.4.0 2.7.3 0.9.0
2.1.0.RELEASE or 2.0.0.RELEASE or 1.5.0.RELEASE 1.6.3 1.1.1 4.4.0 2.7.3 0.7.1

畢業版本依賴關系(推薦使用)

Spring Cloud Version Spring Cloud Alibaba Version Spring Boot Version
Spring Cloud 2020.0.1 2021.1 2.4.2
Spring Cloud Hoxton.SR9 2.2.6.RELEASE 2.3.2.RELEASE
Spring Cloud Greenwich.SR6 2.1.4.RELEASE 2.1.13.RELEASE
Spring Cloud Hoxton.SR3 2.2.1.RELEASE 2.2.5.RELEASE
Spring Cloud Hoxton.RELEASE 2.2.0.RELEASE 2.2.X.RELEASE
Spring Cloud Greenwich 2.1.2.RELEASE 2.1.X.RELEASE
Spring Cloud Finchley 2.0.4.RELEASE(停止維護,建議更新) 2.0.X.RELEASE
Spring Cloud Edgware 1.5.1.RELEASE(停止維護,建議更新) 1.5.X.RELEASE

基礎環境準備

根據版本說明中的推薦,我們這裡選擇SpringBoot的版本為2.4.2,SpringCloud Alibaba的版本則為2021.1,元件對應關系如下

​ [外鍊圖檔轉存失敗,源站可能有防盜鍊機制,建議将圖檔儲存下來直接上傳(img-XoSljQoe-1655998168281)(https://note.youdao.com/yws/public/resource/c7f6b78e148f14152e9f73f1cd2423a5/xmlnote/WEB6aab92a3dd3b97f2344e92d4a640c76e/WEBRESOURCE6b8eb52543623f0a77b6833633404b61/5366)]

内容主要基于三個微服務:使用者服務AccountService,訂單服務OrderService,産品服務ProductService

用到的元件有:

  • 注冊中心、配置中心 Nacos
  • 限流 Sentinel
  • 分布式事務 Seata
  • 網關 SpringCloud Gateway
  • 認證授權 Spring Cloud Oauth2
  • docker、docker-compose

由于用到的元件相對較多,部署會很繁瑣,最關鍵的是沒有資源伺服器,是以在開發過程中我會逐漸将一些元件使用docker-compose部署

本篇内容就是使用Dokcer-compose部署Nacos,Sentinel,MySQL,作為後面的文章的基礎環境

容器化

MySQL

由于nacos需要依賴于MySQL作為資源存儲,是以在編寫完整docker-compose之前我會先用docker啟動臨時的mysql容器,然後準備好nacos需要的資料庫

  • 啟動臨時容器
    docker run --rm --name mysql -e MYSQL_ROOT_PASSWORD=123456 -v /app/cloud/mysql/data:/var/lib/mysql -p 3306:3306 -d mysql:5.7              
               

此處需要挂載主控端目錄,在啟動docker-compse後就不需要再次初識化資料。

  • 用mysql用戶端連接配接你的容器,然後導入nacos的資料表

https://github.com/alibaba/nacos/tree/develop/distribution/conf/nacos-mysql.sql

  • 停止容器,由于加了–rm參數,是以容器會自動删除

docker stop containerID

Nacos

我們來看看NACOS的環境變量,如下表所示:

配置項 描述 可選參數 預設值
MODE 模式 cluster/standalone cluster/standalone cluster
PREFER_HOST_MODE 是否支援 hostname hostname/ip ip
NACOS_SERVER_PORT 服務端口号 8848
SPRING_DATASOURCE_PLATFORM 單機模式支援 mysql mysql / empty empty
MYSQL_MASTER_SERVICE_HOST mysql 主節點 host
MYSQL_MASTER_SERVICE_PORT mysql 主節點 port 3306
MYSQL_MASTER_SERVICE_DB_NAME mysql 主節點資料庫名
MYSQL_MASTER_SERVICE_USER mysql 主節點使用者名
MYSQL_MASTER_SERVICE_PASSWORD mysql 主節點密碼
MYSQL_SLAVE_SERVICE_HOST mysql 從節點 host
MYSQL_SLAVE_SERVICE_PORT mysql 從節點 port 3306

Nacos支援主從配置,考慮到資源問題,我們隻配置一台單獨的mysql伺服器,有資源的同學可以搭建主從環境

Sentinel

sentinel比較簡單,直接配置sentinel-dashboard鏡像即可 (在系列的開始不需要引入sentinel元件,為了後面不再單獨介紹,本次我也把他加到我的docker-compose中)

Seata

seata由于一些原因,還沒釋出官方鏡像,暫時擱淺。

docker-compose

以下是我編寫的docker-compse檔案,大家可以自行修改

```java
        version: "3"
        services:
          mysql:
            container_name: mysql
            image: mysql:5.7
            environment:
              - MYSQL_ROOT_PASSWORD=123456
            volumes:
              - /app/cloud/mysql/data:/var/lib/mysql
            ports:
              - "3306:3306"
            restart: always
        
          nacos:
            image: nacos/nacos-server:1.4.1
            container_name: nacos
            hostname: nacos
            restart: always
            environment:
              - MODE=standalone
              - TZ=Asia/Shanghai
              - NACOS_SERVER_PORT=8848
              - SPRING_DATASOURCE_PLATFORM=mysql
              - MYSQL_SERVICE_HOST=120.78.224.108
              - MYSQL_SERVICE_PORT=3306
              - MYSQL_SERVICE_DB_NAME=nacos_config
              - MYSQL_SERVICE_USER=root
              - MYSQL_SERVICE_PASSWORD=123456
              - PREFER_HOST_MODE=hostname
            volumes:
              - /app/cloud/nacos/logs:/home/nacos/logs
            ports:
              - "8848:8848"
        
          sentinel:
            image: bladex/sentinel-dashboard:1.8.0
            container_name: sentinel
            ports:
              - "8858:8858"
            restart: always
          seata-server:
            image: seataio/seata-server:1.3.0
            hostname: seata-server
            ports:
              - 8091:8091
            environment:
              - SEATA_PORT=8091
            expose:
              - 8091
        ```
           

将其上傳至你的伺服器,執行 docker-compose up -d 指令啟動

​ [外鍊圖檔轉存失敗,源站可能有防盜鍊機制,建議将圖檔儲存下來直接上傳(img-L5zh7Cy0-1655998168282)(https://note.youdao.com/yws/public/resource/c7f6b78e148f14152e9f73f1cd2423a5/xmlnote/WEB6aab92a3dd3b97f2344e92d4a640c76e/WEBRESOURCEd315af18985798339b173e1e507a5613/5367)]

# 這裡盡量開放一下伺服器的端口
檢視防火牆狀态:
systemctl status firewalld
systemctl stop firewalld
systemctl start firewalld
開啟端口:
firewall-cmd --zone=public --add-port=3306/tcp --permanent
查詢端口号8080是否開啟:
firewall-cmd --query-port=3306/tcp
重新開機防火牆:
firewall-cmd --reload
查詢有哪些端口是開啟的:
firewall-cmd --list-port
           

環境驗證

nacos

通路nacos http://192.168.136.129:8848/nacos,使用賬号密碼nacos/nacos登入

SpringCloud Alibaba微服務實戰一 - 基礎環境準備

在服務配置中添加一條資料

SpringCloud Alibaba微服務實戰一 - 基礎環境準備

這是nacos持久化資料庫

Navicat Premium Data Transfer

 Source Server         : 192.168.203.133
 Source Server Type    : MySQL
 Source Server Version : 50736
 Source Host           : 192.168.203.133:3306
 Source Schema         : nacos_config

 Target Server Type    : MySQL
 Target Server Version : 50736
 File Encoding         : 65001

 Date: 04/04/2022 16:42:32
*/

SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;

-- ----------------------------
-- Table structure for config_info
-- ----------------------------
DROP TABLE IF EXISTS `config_info`;
CREATE TABLE `config_info`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
  `data_id` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT 'data_id',
  `group_id` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
  `content` longtext CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT 'content',
  `md5` varchar(32) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL COMMENT 'md5',
  `gmt_create` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '建立時間',
  `gmt_modified` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改時間',
  `src_user` text CHARACTER SET utf8 COLLATE utf8_bin NULL COMMENT 'source user',
  `src_ip` varchar(50) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL COMMENT 'source ip',
  `app_name` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
  `tenant_id` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT '' COMMENT '租戶字段',
  `c_desc` varchar(256) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
  `c_use` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
  `effect` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
  `type` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
  `c_schema` text CHARACTER SET utf8 COLLATE utf8_bin NULL,
  PRIMARY KEY (`id`) USING BTREE,
  UNIQUE INDEX `uk_configinfo_datagrouptenant`(`data_id`, `group_id`, `tenant_id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 17 CHARACTER SET = utf8 COLLATE = utf8_bin COMMENT = 'config_info' ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of config_info
-- ----------------------------
INSERT INTO `config_info` VALUES (1, 'itrip-service-orders.yaml', 'orders', 'spring:\n  application:\n    name: itrip-service-orders\n  # 配置注冊中心\n  cloud:\n    nacos:\n      discovery:\n        server-addr: 192.168.203.130:8848\n    sentinel:\n      # 配置控制台\n      transport:\n        dashboard: 192.168.203.130:8858\n      # 消息延時加載設定為false\n      eager: false\n      datasource:\n        ds:\n          nacos:\n            server-addr: 192.168.203.130:8848\n            namespace: cdc378f4-114b-471b-8732-b7d38bcb02ea\n            data-id: itrip-service-orders-sentinel\n            rule-type: flow\n  datasource:\n    driver-class-name: com.mysql.cj.jdbc.Driver\n    url: jdbc:mysql://localhost:3306/itripdb?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2B8\n    username: root\n    password: root\n\nserver:\n  port: 9002\n\nmybatis-plus:\n  type-aliases-package: com.changan.entity\n  configuration:\n    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl\n  mapper-locations: classpath*:/mapper/UserMapper.xml\n', 'dc5f493a806a94791af84de50b5833e2', '2022-03-31 09:24:30', '2022-04-01 02:37:47', NULL, '192.168.203.1', '', 'cdc378f4-114b-471b-8732-b7d38bcb02ea', '', '', '', 'yaml', '');
INSERT INTO `config_info` VALUES (2, 'itrip-service-users.yaml', 'users', 'spring:\n  application:\n    name: itrip-service-users\n  # 配置注冊中心\n  cloud:\n    nacos:\n      discovery:\n        server-addr: 192.168.203.130:8848\n    sentinel:\n      datasource:\n        ds:\n          nacos:\n            server-addr: 192.168.203.130:8848\n            data-id: itrip-service-users-sentinel-degrade\n            group-id: DEFAULT_GROUP\n            namespace: faf33017-b8c2-48fa-9b29-09d644006946\n            rule-type: degrade\n      transport:\n        dashboard: 192.168.203.130:8858\n      eager: false\n  datasource:\n    driver-class-name: com.mysql.cj.jdbc.Driver\n    url: jdbc:mysql://localhost:3306/itripdb?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2B8\n    username: root\n    password: root\n\nserver:\n  port: 9001\n\nmybatis-plus:\n  type-aliases-package: com.changan.entity\n  configuration:\n    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl\n  mapper-locations: classpath*:/mapper/UserMapper.xml\n', '3e298f3ad9a7e64eae7336a362fb5d36', '2022-03-31 09:25:29', '2022-04-01 03:14:15', NULL, '192.168.203.1', '', 'faf33017-b8c2-48fa-9b29-09d644006946', '使用者', '', '', 'yaml', '');
INSERT INTO `config_info` VALUES (10, 'itrip-service-orders-sentinel', 'DEFAULT_GROUP', '[\r\n    {\r\n        \"resource\": \"getOrderListByUserId\",\r\n        \"limitApp\": \"default\",\r\n        \"grade\": 1,\r\n        \"count\": 1,\r\n        \"strategy\": 0,\r\n        \"controlBehavior\": 0,\r\n        \"clusterMode\": false\r\n    }\r\n]', '83328c14e75d4a4173eeb10bb4fadf8e', '2022-04-01 02:27:52', '2022-04-01 02:27:52', NULL, '192.168.203.1', '', 'cdc378f4-114b-471b-8732-b7d38bcb02ea', '訂單的流控規則持久化配置', NULL, NULL, 'json', NULL);
INSERT INTO `config_info` VALUES (15, 'itrip-service-users-sentinel-degrade', 'DEFAULT_GROUP', '[\r\n    {\r\n    \"resource\": \"/getOrderListByUserId\",\r\n    \"count\": 0.5,\r\n    \"grade\": 1,\r\n    \"passCount\": 0,\r\n    \"timeWindow\": 2\r\n  }\r\n]', '006192ea69dae386bfa1e03916de06b3', '2022-04-01 03:15:52', '2022-04-01 03:15:52', NULL, '192.168.203.1', '', 'faf33017-b8c2-48fa-9b29-09d644006946', '使用者調用訂單,出現熔斷之後的配置', NULL, NULL, 'json', NULL);
INSERT INTO `config_info` VALUES (16, 'itrip-gateway.yaml', 'gateway', 'server:\n  port: 9999\nspring:\n  cloud:\n    nacos:\n      discovery:\n        server-addr: 192.168.203.130:8848\n    gateway:\n      discovery:\n        #開啟網關拉取nacos的服務\n        locator:\n          enabled: true\n      routes:\n        - id: itrip-service-orders\n          uri: lb://itrip-service-orders\n          predicates:\n            - Path=/orders/**\n          filters:\n            - StripPrefix=1\n        - id: itrip-service-users\n          uri: lb://itrip-service-users\n          predicates:\n            - Path=/users/**\n          filters:\n            - StripPrefix=1\n  application:\n    name: itrip-gateway', '0ad4d3dd795b25e2ad55a748699697eb', '2022-04-02 06:35:45', '2022-04-02 06:40:33', NULL, '192.168.203.1', '', '0cbe8b45-e878-4c59-9ab8-5b8616ac4d57', '網關的配置檔案', '', '', 'yaml', '');

-- ----------------------------
-- Table structure for config_info_aggr
-- ----------------------------
DROP TABLE IF EXISTS `config_info_aggr`;
CREATE TABLE `config_info_aggr`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
  `data_id` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT 'data_id',
  `group_id` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT 'group_id',
  `datum_id` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT 'datum_id',
  `content` longtext CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT '内容',
  `gmt_modified` datetime(0) NOT NULL COMMENT '修改時間',
  `app_name` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
  `tenant_id` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT '' COMMENT '租戶字段',
  PRIMARY KEY (`id`) USING BTREE,
  UNIQUE INDEX `uk_configinfoaggr_datagrouptenantdatum`(`data_id`, `group_id`, `tenant_id`, `datum_id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_bin COMMENT = '增加租戶字段' ROW_FORMAT = Dynamic;

-- ----------------------------
-- Table structure for config_info_beta
-- ----------------------------
DROP TABLE IF EXISTS `config_info_beta`;
CREATE TABLE `config_info_beta`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
  `data_id` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT 'data_id',
  `group_id` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT 'group_id',
  `app_name` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL COMMENT 'app_name',
  `content` longtext CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT 'content',
  `beta_ips` varchar(1024) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL COMMENT 'betaIps',
  `md5` varchar(32) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL COMMENT 'md5',
  `gmt_create` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '建立時間',
  `gmt_modified` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改時間',
  `src_user` text CHARACTER SET utf8 COLLATE utf8_bin NULL COMMENT 'source user',
  `src_ip` varchar(50) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL COMMENT 'source ip',
  `tenant_id` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT '' COMMENT '租戶字段',
  PRIMARY KEY (`id`) USING BTREE,
  UNIQUE INDEX `uk_configinfobeta_datagrouptenant`(`data_id`, `group_id`, `tenant_id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_bin COMMENT = 'config_info_beta' ROW_FORMAT = Dynamic;

-- ----------------------------
-- Table structure for config_info_tag
-- ----------------------------
DROP TABLE IF EXISTS `config_info_tag`;
CREATE TABLE `config_info_tag`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
  `data_id` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT 'data_id',
  `group_id` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT 'group_id',
  `tenant_id` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT '' COMMENT 'tenant_id',
  `tag_id` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT 'tag_id',
  `app_name` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL COMMENT 'app_name',
  `content` longtext CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT 'content',
  `md5` varchar(32) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL COMMENT 'md5',
  `gmt_create` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '建立時間',
  `gmt_modified` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改時間',
  `src_user` text CHARACTER SET utf8 COLLATE utf8_bin NULL COMMENT 'source user',
  `src_ip` varchar(50) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL COMMENT 'source ip',
  PRIMARY KEY (`id`) USING BTREE,
  UNIQUE INDEX `uk_configinfotag_datagrouptenanttag`(`data_id`, `group_id`, `tenant_id`, `tag_id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_bin COMMENT = 'config_info_tag' ROW_FORMAT = Dynamic;

-- ----------------------------
-- Table structure for config_tags_relation
-- ----------------------------
DROP TABLE IF EXISTS `config_tags_relation`;
CREATE TABLE `config_tags_relation`  (
  `id` bigint(20) NOT NULL COMMENT 'id',
  `tag_name` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT 'tag_name',
  `tag_type` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL COMMENT 'tag_type',
  `data_id` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT 'data_id',
  `group_id` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT 'group_id',
  `tenant_id` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT '' COMMENT 'tenant_id',
  `nid` bigint(20) NOT NULL AUTO_INCREMENT,
  PRIMARY KEY (`nid`) USING BTREE,
  UNIQUE INDEX `uk_configtagrelation_configidtag`(`id`, `tag_name`, `tag_type`) USING BTREE,
  INDEX `idx_tenant_id`(`tenant_id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_bin COMMENT = 'config_tag_relation' ROW_FORMAT = Dynamic;

-- ----------------------------
-- Table structure for group_capacity
-- ----------------------------
DROP TABLE IF EXISTS `group_capacity`;
CREATE TABLE `group_capacity`  (
  `id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主鍵ID',
  `group_id` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '' COMMENT 'Group ID,空字元表示整個叢集',
  `quota` int(10) UNSIGNED NOT NULL DEFAULT 0 COMMENT '配額,0表示使用預設值',
  `usage` int(10) UNSIGNED NOT NULL DEFAULT 0 COMMENT '使用量',
  `max_size` int(10) UNSIGNED NOT NULL DEFAULT 0 COMMENT '單個配置大小上限,機關為位元組,0表示使用預設值',
  `max_aggr_count` int(10) UNSIGNED NOT NULL DEFAULT 0 COMMENT '聚合子配置最大個數,,0表示使用預設值',
  `max_aggr_size` int(10) UNSIGNED NOT NULL DEFAULT 0 COMMENT '單個聚合資料的子配置大小上限,機關為位元組,0表示使用預設值',
  `max_history_count` int(10) UNSIGNED NOT NULL DEFAULT 0 COMMENT '最大變更曆史數量',
  `gmt_create` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '建立時間',
  `gmt_modified` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改時間',
  PRIMARY KEY (`id`) USING BTREE,
  UNIQUE INDEX `uk_group_id`(`group_id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_bin COMMENT = '叢集、各Group容量資訊表' ROW_FORMAT = Dynamic;

-- ----------------------------
-- Table structure for his_config_info
-- ----------------------------
DROP TABLE IF EXISTS `his_config_info`;
CREATE TABLE `his_config_info`  (
  `id` bigint(64) UNSIGNED NOT NULL,
  `nid` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT,
  `data_id` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
  `group_id` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
  `app_name` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL COMMENT 'app_name',
  `content` longtext CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
  `md5` varchar(32) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
  `gmt_create` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `gmt_modified` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `src_user` text CHARACTER SET utf8 COLLATE utf8_bin NULL,
  `src_ip` varchar(50) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
  `op_type` char(10) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
  `tenant_id` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT '' COMMENT '租戶字段',
  PRIMARY KEY (`nid`) USING BTREE,
  INDEX `idx_gmt_create`(`gmt_create`) USING BTREE,
  INDEX `idx_gmt_modified`(`gmt_modified`) USING BTREE,
  INDEX `idx_did`(`data_id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 23 CHARACTER SET = utf8 COLLATE = utf8_bin COMMENT = '多租戶改造' ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of his_config_info
-- ----------------------------
INSERT INTO `his_config_info` VALUES (0, 1, 'itrip-service-orders.yaml', 'orders', '', 'spring:\r\n  application:\r\n    name: itrip-service-orders\r\n  # 配置注冊中心\r\n  cloud:\r\n    nacos:\r\n      discovery:\r\n        server-addr: 192.168.203.130:8848\r\n    sentinel:\r\n      transport:\r\n        dashboard: 192.168.203.130:8858\r\n      datasource:\r\n        ds:\r\n          nacos:\r\n            server-addr: 192.168.203.130:8848\r\n            data-id: itrip-service-orders-sentinel\r\n            group-id: DEFAULT_GROUP\r\n            rule-type: flow\r\n  datasource:\r\n    driver-class-name: com.mysql.cj.jdbc.Driver\r\n    url: jdbc:mysql://localhost:3306/itripdb?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2B8\r\n    username: root\r\n    password: root\r\n\r\nserver:\r\n  port: 9002\r\n\r\nmybatis-plus:\r\n  type-aliases-package: com.changan.entity\r\n  configuration:\r\n    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl\r\n  mapper-locations: classpath*:/mapper/UserMapper.xml\r\n', '3255fc2c19792aa9c53f3644fa3d2840', '2022-03-31 09:24:29', '2022-03-31 09:24:30', NULL, '192.168.203.1', 'I', 'cdc378f4-114b-471b-8732-b7d38bcb02ea');
INSERT INTO `his_config_info` VALUES (0, 2, 'itrip-service-users.yaml', 'users', '', 'spring:\r\n  application:\r\n    name: itrip-service-users\r\n  # 配置注冊中心\r\n  cloud:\r\n    nacos:\r\n      discovery:\r\n        server-addr: 192.168.203.130:8848\r\n  datasource:\r\n    driver-class-name: com.mysql.cj.jdbc.Driver\r\n    url: jdbc:mysql://localhost:3306/itripdb?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2B8\r\n    username: root\r\n    password: root\r\n\r\nserver:\r\n  port: 9001\r\n\r\nmybatis-plus:\r\n  type-aliases-package: com.changan.entity\r\n  configuration:\r\n    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl\r\n  mapper-locations: classpath*:/mapper/UserMapper.xml\r\n', 'c405941ae6732e3b0aa463f2c767ba92', '2022-03-31 09:25:29', '2022-03-31 09:25:29', NULL, '192.168.203.1', 'I', 'faf33017-b8c2-48fa-9b29-09d644006946');
INSERT INTO `his_config_info` VALUES (1, 3, 'itrip-service-orders.yaml', 'orders', '', 'spring:\r\n  application:\r\n    name: itrip-service-orders\r\n  # 配置注冊中心\r\n  cloud:\r\n    nacos:\r\n      discovery:\r\n        server-addr: 192.168.203.130:8848\r\n    sentinel:\r\n      transport:\r\n        dashboard: 192.168.203.130:8858\r\n      datasource:\r\n        ds:\r\n          nacos:\r\n            server-addr: 192.168.203.130:8848\r\n            data-id: itrip-service-orders-sentinel\r\n            group-id: DEFAULT_GROUP\r\n            rule-type: flow\r\n  datasource:\r\n    driver-class-name: com.mysql.cj.jdbc.Driver\r\n    url: jdbc:mysql://localhost:3306/itripdb?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2B8\r\n    username: root\r\n    password: root\r\n\r\nserver:\r\n  port: 9002\r\n\r\nmybatis-plus:\r\n  type-aliases-package: com.changan.entity\r\n  configuration:\r\n    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl\r\n  mapper-locations: classpath*:/mapper/UserMapper.xml\r\n', '3255fc2c19792aa9c53f3644fa3d2840', '2022-03-31 09:30:31', '2022-03-31 09:30:31', NULL, '192.168.203.1', 'U', 'cdc378f4-114b-471b-8732-b7d38bcb02ea');
INSERT INTO `his_config_info` VALUES (0, 4, 'itrip-service-orders-sentinel', 'orders', '', '[\r\n    {\r\n        \"resource\": \"getOrderListByUserId\",\r\n        \"limitApp\": \"default\",\r\n        \"grade\": 1,\r\n        \"count\": 1,\r\n        \"strategy\": 0,\r\n        \"controlBehavior\": 0,\r\n        \"clusterMode\": false\r\n    }\r\n]', '83328c14e75d4a4173eeb10bb4fadf8e', '2022-03-31 09:32:29', '2022-03-31 09:32:29', NULL, '192.168.203.1', 'I', 'cdc378f4-114b-471b-8732-b7d38bcb02ea');
INSERT INTO `his_config_info` VALUES (4, 5, 'itrip-service-orders-sentinel', 'orders', '', '[\r\n    {\r\n        \"resource\": \"getOrderListByUserId\",\r\n        \"limitApp\": \"default\",\r\n        \"grade\": 1,\r\n        \"count\": 1,\r\n        \"strategy\": 0,\r\n        \"controlBehavior\": 0,\r\n        \"clusterMode\": false\r\n    }\r\n]', '83328c14e75d4a4173eeb10bb4fadf8e', '2022-03-31 10:10:20', '2022-03-31 10:10:20', NULL, '192.168.203.1', 'U', 'cdc378f4-114b-471b-8732-b7d38bcb02ea');
INSERT INTO `his_config_info` VALUES (0, 6, 'itrip-service-users-sentinel-degrade', 'users', '', '[\r\n    {\r\n    \"resource\": \"/getOrderListByUserId\",\r\n    \"count\": 0.5,\r\n    \"grade\": 1,\r\n    \"passCount\": 0,\r\n    \"timeWindow\": 2\r\n  }\r\n]', '006192ea69dae386bfa1e03916de06b3', '2022-03-31 10:19:05', '2022-03-31 10:19:06', NULL, '192.168.203.1', 'I', 'faf33017-b8c2-48fa-9b29-09d644006946');
INSERT INTO `his_config_info` VALUES (2, 7, 'itrip-service-users.yaml', 'users', '', 'spring:\r\n  application:\r\n    name: itrip-service-users\r\n  # 配置注冊中心\r\n  cloud:\r\n    nacos:\r\n      discovery:\r\n        server-addr: 192.168.203.130:8848\r\n  datasource:\r\n    driver-class-name: com.mysql.cj.jdbc.Driver\r\n    url: jdbc:mysql://localhost:3306/itripdb?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2B8\r\n    username: root\r\n    password: root\r\n\r\nserver:\r\n  port: 9001\r\n\r\nmybatis-plus:\r\n  type-aliases-package: com.changan.entity\r\n  configuration:\r\n    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl\r\n  mapper-locations: classpath*:/mapper/UserMapper.xml\r\n', 'c405941ae6732e3b0aa463f2c767ba92', '2022-03-31 10:40:41', '2022-03-31 10:40:42', NULL, '192.168.203.1', 'U', 'faf33017-b8c2-48fa-9b29-09d644006946');
INSERT INTO `his_config_info` VALUES (2, 8, 'itrip-service-users.yaml', 'users', '', 'spring:\n  application:\n    name: itrip-service-users\n  # 配置注冊中心\n  cloud:\n    nacos:\n      discovery:\n        server-addr: 192.168.203.130:8848\n    sentinel:\n      datasource:\n        ds:\n          nacos:\n            server-addr: 192.168.203.130:8848\n            namespace: faf33017-b8c2-48fa-9b29-09d644006946\n            data-id: itrip-service-users-sentinel-degrade\n            group-id: users\n            rule-type: degrade\n  datasource:\n    driver-class-name: com.mysql.cj.jdbc.Driver\n    url: jdbc:mysql://localhost:3306/itripdb?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2B8\n    username: root\n    password: root\n\nserver:\n  port: 9001\n\nmybatis-plus:\n  type-aliases-package: com.changan.entity\n  configuration:\n    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl\n  mapper-locations: classpath*:/mapper/UserMapper.xml\n', '6c661b278cc0dfda2b5fef269e655982', '2022-03-31 10:41:10', '2022-03-31 10:41:11', NULL, '192.168.203.1', 'U', 'faf33017-b8c2-48fa-9b29-09d644006946');
INSERT INTO `his_config_info` VALUES (6, 9, 'itrip-service-users-sentinel-degrade', 'users', '', '[\r\n    {\r\n    \"resource\": \"/getOrderListByUserId\",\r\n    \"count\": 0.5,\r\n    \"grade\": 1,\r\n    \"passCount\": 0,\r\n    \"timeWindow\": 2\r\n  }\r\n]', '006192ea69dae386bfa1e03916de06b3', '2022-03-31 10:48:06', '2022-03-31 10:48:07', NULL, '192.168.203.1', 'U', 'faf33017-b8c2-48fa-9b29-09d644006946');
INSERT INTO `his_config_info` VALUES (1, 10, 'itrip-service-orders.yaml', 'orders', '', 'spring:\n  application:\n    name: itrip-service-orders\n  # 配置注冊中心\n  cloud:\n    nacos:\n      discovery:\n        server-addr: 192.168.203.130:8848\n    sentinel:\n      transport:\n        dashboard: 192.168.203.130:8858\n      datasource:\n        ds:\n          nacos:\n            server-addr: 192.168.203.130:8848\n            namespace: cdc378f4-114b-471b-8732-b7d38bcb02ea\n            data-id: itrip-service-orders-sentinel\n            group-id: orders\n            rule-type: flow\n  datasource:\n    driver-class-name: com.mysql.cj.jdbc.Driver\n    url: jdbc:mysql://localhost:3306/itripdb?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2B8\n    username: root\n    password: root\n\nserver:\n  port: 9002\n\nmybatis-plus:\n  type-aliases-package: com.changan.entity\n  configuration:\n    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl\n  mapper-locations: classpath*:/mapper/UserMapper.xml\n', '42f8fe72683eae64d521570fa9d97c33', '2022-04-01 02:01:34', '2022-04-01 02:01:35', NULL, '192.168.203.1', 'U', 'cdc378f4-114b-471b-8732-b7d38bcb02ea');
INSERT INTO `his_config_info` VALUES (1, 11, 'itrip-service-orders.yaml', 'orders', '', 'spring:\n  application:\n    name: itrip-service-orders\n  # 配置注冊中心\n  cloud:\n    nacos:\n      discovery:\n        server-addr: 192.168.203.130:8848\n    sentinel:\n      # 配置控制台\n      transport:\n        dashboard: 192.168.203.130:8858\n      # 消息延時加載設定為false\n      eager: false\n      datasource:\n        ds:\n          nacos:\n            server-addr: 192.168.203.130:8848\n            namespace: cdc378f4-114b-471b-8732-b7d38bcb02ea\n            data-id: itrip-service-orders-sentinel\n            group-id: orders\n            rule-type: flow\n  datasource:\n    driver-class-name: com.mysql.cj.jdbc.Driver\n    url: jdbc:mysql://localhost:3306/itripdb?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2B8\n    username: root\n    password: root\n\nserver:\n  port: 9002\n\nmybatis-plus:\n  type-aliases-package: com.changan.entity\n  configuration:\n    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl\n  mapper-locations: classpath*:/mapper/UserMapper.xml\n', 'cb15689c7d81942f1d0fc6bf9c7d7970', '2022-04-01 02:05:30', '2022-04-01 02:05:30', NULL, '192.168.203.1', 'U', 'cdc378f4-114b-471b-8732-b7d38bcb02ea');
INSERT INTO `his_config_info` VALUES (4, 12, 'itrip-service-orders-sentinel', 'orders', '', '[\n    {\n        \"resource\": \"getOrderListByUserId\",\n        \"limitApp\": \"default\",\n        \"grade\": 1,\n        \"count\": 1000,\n        \"strategy\": 0,\n        \"controlBehavior\": 0,\n        \"clusterMode\": false\n    }\n]', '2a4666b2636d74298af48613b7be5989', '2022-04-01 02:05:41', '2022-04-01 02:05:42', NULL, '192.168.203.1', 'D', 'cdc378f4-114b-471b-8732-b7d38bcb02ea');
INSERT INTO `his_config_info` VALUES (6, 13, 'itrip-service-users-sentinel-degrade', 'users', '', '[\n    {\n    \"resource\": \"/getOrderListByUserId\",\n    \"count\": 0.5,\n    \"grade\": 1,\n    \"passCount\": 0,\n    \"timeWindow\": 2\n  }\n]', '978f5b248f2a0c4411c813583193e770', '2022-04-01 02:05:47', '2022-04-01 02:05:48', NULL, '192.168.203.1', 'D', 'faf33017-b8c2-48fa-9b29-09d644006946');
INSERT INTO `his_config_info` VALUES (2, 14, 'itrip-service-users.yaml', 'users', '', 'spring:\n  application:\n    name: itrip-service-users\n  # 配置注冊中心\n  cloud:\n    nacos:\n      discovery:\n        server-addr: 192.168.203.130:8848\n    sentinel:\n      transport:\n        dashboard: 192.168.203.130:8858\n      datasource:\n        ds:\n          nacos:\n            server-addr: 192.168.203.130:8848\n            namespace: faf33017-b8c2-48fa-9b29-09d644006946\n            data-id: itrip-service-users-sentinel-degrade\n            group-id: users\n            rule-type: degrade\n  datasource:\n    driver-class-name: com.mysql.cj.jdbc.Driver\n    url: jdbc:mysql://localhost:3306/itripdb?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2B8\n    username: root\n    password: root\n\nserver:\n  port: 9001\n\nmybatis-plus:\n  type-aliases-package: com.changan.entity\n  configuration:\n    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl\n  mapper-locations: classpath*:/mapper/UserMapper.xml\n', '2f0bf1b011e7698e09cd664d9baf2b38', '2022-04-01 02:06:11', '2022-04-01 02:06:11', NULL, '192.168.203.1', 'U', 'faf33017-b8c2-48fa-9b29-09d644006946');
INSERT INTO `his_config_info` VALUES (0, 15, 'itrip-service-orders-sentinel', 'DEFAULT_GROUP', '', '[\r\n    {\r\n        \"resource\": \"getOrderListByUserId\",\r\n        \"limitApp\": \"default\",\r\n        \"grade\": 1,\r\n        \"count\": 1,\r\n        \"strategy\": 0,\r\n        \"controlBehavior\": 0,\r\n        \"clusterMode\": false\r\n    }\r\n]', '83328c14e75d4a4173eeb10bb4fadf8e', '2022-04-01 02:27:51', '2022-04-01 02:27:52', NULL, '192.168.203.1', 'I', 'cdc378f4-114b-471b-8732-b7d38bcb02ea');
INSERT INTO `his_config_info` VALUES (1, 16, 'itrip-service-orders.yaml', 'orders', '', 'spring:\n  application:\n    name: itrip-service-orders\n  # 配置注冊中心\n  cloud:\n    nacos:\n      discovery:\n        server-addr: 192.168.203.130:8848\n    sentinel:\n      # 配置控制台\n      transport:\n        dashboard: 192.168.203.130:8858\n      # 消息延時加載設定為false\n      eager: false\n  datasource:\n    driver-class-name: com.mysql.cj.jdbc.Driver\n    url: jdbc:mysql://localhost:3306/itripdb?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2B8\n    username: root\n    password: root\n\nserver:\n  port: 9002\n\nmybatis-plus:\n  type-aliases-package: com.changan.entity\n  configuration:\n    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl\n  mapper-locations: classpath*:/mapper/UserMapper.xml\n', '14d0845d37d83828299227c893e361b7', '2022-04-01 02:30:14', '2022-04-01 02:30:15', NULL, '192.168.203.1', 'U', 'cdc378f4-114b-471b-8732-b7d38bcb02ea');
INSERT INTO `his_config_info` VALUES (1, 17, 'itrip-service-orders.yaml', 'orders', '', 'spring:\n  application:\n    name: itrip-service-orders\n  # 配置注冊中心\n  cloud:\n    nacos:\n      discovery:\n        server-addr: 192.168.203.130:8848\n    sentinel:\n      # 配置控制台\n      transport:\n        dashboard: 192.168.203.130:8858\n      # 消息延時加載設定為false\n      eager: false\n      datasource:\n        ds:\n          server-addr: 192.168.203.130:8848\n          username: nacos\n          password: nacos\n          namespace: cdc378f4-114b-471b-8732-b7d38bcb02ea\n          data-id: itrip-service-orders-sentinel\n  datasource:\n    driver-class-name: com.mysql.cj.jdbc.Driver\n    url: jdbc:mysql://localhost:3306/itripdb?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2B8\n    username: root\n    password: root\n\nserver:\n  port: 9002\n\nmybatis-plus:\n  type-aliases-package: com.changan.entity\n  configuration:\n    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl\n  mapper-locations: classpath*:/mapper/UserMapper.xml\n', 'fd1fab08f7ffc8dfff53d651a46c7e2d', '2022-04-01 02:31:50', '2022-04-01 02:31:50', NULL, '192.168.203.1', 'U', 'cdc378f4-114b-471b-8732-b7d38bcb02ea');
INSERT INTO `his_config_info` VALUES (1, 18, 'itrip-service-orders.yaml', 'orders', '', 'spring:\n  application:\n    name: itrip-service-orders\n  # 配置注冊中心\n  cloud:\n    nacos:\n      discovery:\n        server-addr: 192.168.203.130:8848\n    sentinel:\n      # 配置控制台\n      transport:\n        dashboard: 192.168.203.130:8858\n      # 消息延時加載設定為false\n      eager: false\n      datasource:\n        ds:\n          server-addr: 192.168.203.130:8848\n          namespace: cdc378f4-114b-471b-8732-b7d38bcb02ea\n          data-id: itrip-service-orders-sentinel\n          rule-type: flow\n  datasource:\n    driver-class-name: com.mysql.cj.jdbc.Driver\n    url: jdbc:mysql://localhost:3306/itripdb?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2B8\n    username: root\n    password: root\n\nserver:\n  port: 9002\n\nmybatis-plus:\n  type-aliases-package: com.changan.entity\n  configuration:\n    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl\n  mapper-locations: classpath*:/mapper/UserMapper.xml\n', 'ffdd9747e1dce76259be511385c11095', '2022-04-01 02:37:47', '2022-04-01 02:37:47', NULL, '192.168.203.1', 'U', 'cdc378f4-114b-471b-8732-b7d38bcb02ea');
INSERT INTO `his_config_info` VALUES (2, 19, 'itrip-service-users.yaml', 'users', '', 'spring:\n  application:\n    name: itrip-service-users\n  # 配置注冊中心\n  cloud:\n    nacos:\n      discovery:\n        server-addr: 192.168.203.130:8848\n    sentinel:\n      transport:\n        dashboard: 192.168.203.130:8858\n  datasource:\n    driver-class-name: com.mysql.cj.jdbc.Driver\n    url: jdbc:mysql://localhost:3306/itripdb?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2B8\n    username: root\n    password: root\n\nserver:\n  port: 9001\n\nmybatis-plus:\n  type-aliases-package: com.changan.entity\n  configuration:\n    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl\n  mapper-locations: classpath*:/mapper/UserMapper.xml\n', 'c6848c6c2044b081e483c9ab1209f8c0', '2022-04-01 03:14:15', '2022-04-01 03:14:15', NULL, '192.168.203.1', 'U', 'faf33017-b8c2-48fa-9b29-09d644006946');
INSERT INTO `his_config_info` VALUES (0, 20, 'itrip-service-users-sentinel-degrade', 'DEFAULT_GROUP', '', '[\r\n    {\r\n    \"resource\": \"/getOrderListByUserId\",\r\n    \"count\": 0.5,\r\n    \"grade\": 1,\r\n    \"passCount\": 0,\r\n    \"timeWindow\": 2\r\n  }\r\n]', '006192ea69dae386bfa1e03916de06b3', '2022-04-01 03:15:51', '2022-04-01 03:15:52', NULL, '192.168.203.1', 'I', 'faf33017-b8c2-48fa-9b29-09d644006946');
INSERT INTO `his_config_info` VALUES (0, 21, 'itrip-gateway.yaml', 'gateway', '', 'server:\r\n  port: 9999\r\nspring:\r\n  cloud:\r\n    nacos:\r\n      discovery:\r\n        server-addr: 192.168.203.130:8848\r\n    gateway:\r\n      discovery:\r\n        locator:\r\n          enabled: true\r\n      routes:\r\n        - id: itrip-service-orders\r\n          uri: lb://itrip-service-orders\r\n          predicates:\r\n            - Path=/orders/**\r\n          filters:\r\n            - StripPrefix=1\r\n        - id: itrip-service-users\r\n          uri: lb://itrip-service-users\r\n          predicates:\r\n            - Path=/users/**\r\n          filters:\r\n            - StripPrefix=1\r\n  application:\r\n    name: itrip-gateway', '2ddb48eeabf9fb3d5666d5fdc0eacebc', '2022-04-02 06:35:45', '2022-04-02 06:35:45', NULL, '192.168.203.1', 'I', '0cbe8b45-e878-4c59-9ab8-5b8616ac4d57');
INSERT INTO `his_config_info` VALUES (16, 22, 'itrip-gateway.yaml', 'gateway', '', 'server:\r\n  port: 9999\r\nspring:\r\n  cloud:\r\n    nacos:\r\n      discovery:\r\n        server-addr: 192.168.203.130:8848\r\n    gateway:\r\n      discovery:\r\n        locator:\r\n          enabled: true\r\n      routes:\r\n        - id: itrip-service-orders\r\n          uri: lb://itrip-service-orders\r\n          predicates:\r\n            - Path=/orders/**\r\n          filters:\r\n            - StripPrefix=1\r\n        - id: itrip-service-users\r\n          uri: lb://itrip-service-users\r\n          predicates:\r\n            - Path=/users/**\r\n          filters:\r\n            - StripPrefix=1\r\n  application:\r\n    name: itrip-gateway', '2ddb48eeabf9fb3d5666d5fdc0eacebc', '2022-04-02 06:40:33', '2022-04-02 06:40:33', NULL, '192.168.203.1', 'U', '0cbe8b45-e878-4c59-9ab8-5b8616ac4d57');

-- ----------------------------
-- Table structure for permissions
-- ----------------------------
DROP TABLE IF EXISTS `permissions`;
CREATE TABLE `permissions`  (
  `role` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `resource` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `action` varchar(8) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  UNIQUE INDEX `uk_role_permission`(`role`, `resource`, `action`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

-- ----------------------------
-- Table structure for roles
-- ----------------------------
DROP TABLE IF EXISTS `roles`;
CREATE TABLE `roles`  (
  `username` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `role` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  UNIQUE INDEX `idx_user_role`(`username`, `role`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of roles
-- ----------------------------
INSERT INTO `roles` VALUES ('nacos', 'ROLE_ADMIN');

-- ----------------------------
-- Table structure for tenant_capacity
-- ----------------------------
DROP TABLE IF EXISTS `tenant_capacity`;
CREATE TABLE `tenant_capacity`  (
  `id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主鍵ID',
  `tenant_id` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '' COMMENT 'Tenant ID',
  `quota` int(10) UNSIGNED NOT NULL DEFAULT 0 COMMENT '配額,0表示使用預設值',
  `usage` int(10) UNSIGNED NOT NULL DEFAULT 0 COMMENT '使用量',
  `max_size` int(10) UNSIGNED NOT NULL DEFAULT 0 COMMENT '單個配置大小上限,機關為位元組,0表示使用預設值',
  `max_aggr_count` int(10) UNSIGNED NOT NULL DEFAULT 0 COMMENT '聚合子配置最大個數',
  `max_aggr_size` int(10) UNSIGNED NOT NULL DEFAULT 0 COMMENT '單個聚合資料的子配置大小上限,機關為位元組,0表示使用預設值',
  `max_history_count` int(10) UNSIGNED NOT NULL DEFAULT 0 COMMENT '最大變更曆史數量',
  `gmt_create` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '建立時間',
  `gmt_modified` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改時間',
  PRIMARY KEY (`id`) USING BTREE,
  UNIQUE INDEX `uk_tenant_id`(`tenant_id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_bin COMMENT = '租戶容量資訊表' ROW_FORMAT = Dynamic;

-- ----------------------------
-- Table structure for tenant_info
-- ----------------------------
DROP TABLE IF EXISTS `tenant_info`;
CREATE TABLE `tenant_info`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
  `kp` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT 'kp',
  `tenant_id` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT '' COMMENT 'tenant_id',
  `tenant_name` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT '' COMMENT 'tenant_name',
  `tenant_desc` varchar(256) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL COMMENT 'tenant_desc',
  `create_source` varchar(32) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL COMMENT 'create_source',
  `gmt_create` bigint(20) NOT NULL COMMENT '建立時間',
  `gmt_modified` bigint(20) NOT NULL COMMENT '修改時間',
  PRIMARY KEY (`id`) USING BTREE,
  UNIQUE INDEX `uk_tenant_info_kptenantid`(`kp`, `tenant_id`) USING BTREE,
  INDEX `idx_tenant_id`(`tenant_id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8 COLLATE = utf8_bin COMMENT = 'tenant_info' ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of tenant_info
-- ----------------------------
INSERT INTO `tenant_info` VALUES (1, '1', 'cdc378f4-114b-471b-8732-b7d38bcb02ea', 'orders', '訂單的命名空間', 'nacos', 1648718577421, 1648718577421);
INSERT INTO `tenant_info` VALUES (2, '1', 'faf33017-b8c2-48fa-9b29-09d644006946', 'users', '使用者的命名空間', 'nacos', 1648718588816, 1648718588816);
INSERT INTO `tenant_info` VALUES (3, '1', '0cbe8b45-e878-4c59-9ab8-5b8616ac4d57', 'gateway', '網關', 'nacos', 1648881242577, 1648881242577);

-- ----------------------------
-- Table structure for users
-- ----------------------------
DROP TABLE IF EXISTS `users`;
CREATE TABLE `users`  (
  `username` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `password` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `enabled` tinyint(1) NOT NULL,
  PRIMARY KEY (`username`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of users
-- ----------------------------
INSERT INTO `users` VALUES ('nacos', '$2a$10$EuWPZHzz32dJN7jexM34MOeYirDdFAZm2kuWj7VEOJhhZkDrxfvUu', 1);

SET FOREIGN_KEY_CHECKS = 1;


           

檢視資料庫是否有對應的記錄

SpringCloud Alibaba微服務實戰一 - 基礎環境準備

sentinel

通路 http://192.168.203.129:8858/#/login使用賬号sentinel/sentinel登入

SpringCloud Alibaba微服務實戰一 - 基礎環境準備

sentinel安裝成功!

至此前期所需要的元件都安裝成功,那麼本期的“SpringCloud Alibaba微服務實戰 - 基礎環境準備”篇也就該結束啦