简述建立一个网站模板步骤,工信部信息备案网站首页,建筑类培训网校排名,以前做视频的网站b微服务技术栈_哔哩哔哩_bilibili
文档资料:
链接#xff1a;https://pan.baidu.com/s/1P_Ag1BYiPaF52EI19A0YRw?pwdd03r 提取码#xff1a;d03r
一 了解微服务技术 二 Eureka (1) Eureka配置 (2) 注册user-service (3) 总结 Ribbon 负载均衡
(1) 流程 三 nacos配置管理… b微服务技术栈_哔哩哔哩_bilibili
文档资料:
链接https://pan.baidu.com/s/1P_Ag1BYiPaF52EI19A0YRw?pwdd03r 提取码d03r
一 了解微服务技术 二 Eureka (1) Eureka配置 (2) 注册user-service (3) 总结 Ribbon 负载均衡
(1) 流程 三 nacos配置管理
(一) nacos注册中心(服务)
(1) 启动 startup.cmd -m standalone (2) 分级存储模型 (3) 隔离空间 namespace (4) 临时实例和非临时实例 (二) nacos配置管理
(1) 统一配置 (nacos配置管理) (2) 统一配置管理 (项目配置】)
配置获取步骤 bootstrap.yml 优先级 高于 application.yml !-- nacos客户端依赖包 --dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacos-discovery/artifactId/dependency!--nacos的配置管理依赖--dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacos-config/artifactId/dependency
spring:application:name: userserviceprofiles:active: dev # 环境cloud:nacos:server-addr: nacos:8848 # nacos地址config:file-extension: yaml # 文件后缀名
(3) 测试 (4) 总结 (三) nacos的配置自动刷新
(1) 方式一 注解RefreshScope (2) 方式二 使用 ConfigurationProperties注解 (3) 总结 (四) nacos 多环境共享
(1) userservice.yaml 是被所有配置共享的 (2) 配置文件优先级: 带环境的(dev test) 共享配置 本地配置 (3) 总结 (五) nacos集群搭建
1.集群结构图 2.搭建集群
2.1.初始化数据库
Nacos默认数据存储在内嵌数据库Derby中不属于生产可用的数据库。
官方推荐的最佳实践是使用带有主从的高可用数据库集群主从模式的高可用数据库可以参考传智教育的后续高手课程。
这里我们以单点的数据库为例来讲解。
首先新建一个数据库命名为nacos而后导入下面的SQL
CREATE TABLE config_info (id bigint(20) NOT NULL AUTO_INCREMENT COMMENT id,data_id varchar(255) NOT NULL COMMENT data_id,group_id varchar(255) DEFAULT NULL,content longtext NOT NULL COMMENT content,md5 varchar(32) DEFAULT NULL COMMENT md5,gmt_create datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 创建时间,gmt_modified datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 修改时间,src_user text COMMENT source user,src_ip varchar(50) DEFAULT NULL COMMENT source ip,app_name varchar(128) DEFAULT NULL,tenant_id varchar(128) DEFAULT COMMENT 租户字段,c_desc varchar(256) DEFAULT NULL,c_use varchar(64) DEFAULT NULL,effect varchar(64) DEFAULT NULL,type varchar(64) DEFAULT NULL,c_schema text,PRIMARY KEY (id),UNIQUE KEY uk_configinfo_datagrouptenant (data_id,group_id,tenant_id)
) ENGINEInnoDB DEFAULT CHARSETutf8 COLLATEutf8_bin COMMENTconfig_info;/******************************************/
/* 数据库全名 nacos_config */
/* 表名称 config_info_aggr */
/******************************************/
CREATE TABLE config_info_aggr (id bigint(20) NOT NULL AUTO_INCREMENT COMMENT id,data_id varchar(255) NOT NULL COMMENT data_id,group_id varchar(255) NOT NULL COMMENT group_id,datum_id varchar(255) NOT NULL COMMENT datum_id,content longtext NOT NULL COMMENT 内容,gmt_modified datetime NOT NULL COMMENT 修改时间,app_name varchar(128) DEFAULT NULL,tenant_id varchar(128) DEFAULT COMMENT 租户字段,PRIMARY KEY (id),UNIQUE KEY uk_configinfoaggr_datagrouptenantdatum (data_id,group_id,tenant_id,datum_id)
) ENGINEInnoDB DEFAULT CHARSETutf8 COLLATEutf8_bin COMMENT增加租户字段;/******************************************/
/* 数据库全名 nacos_config */
/* 表名称 config_info_beta */
/******************************************/
CREATE TABLE config_info_beta (id bigint(20) NOT NULL AUTO_INCREMENT COMMENT id,data_id varchar(255) NOT NULL COMMENT data_id,group_id varchar(128) NOT NULL COMMENT group_id,app_name varchar(128) DEFAULT NULL COMMENT app_name,content longtext NOT NULL COMMENT content,beta_ips varchar(1024) DEFAULT NULL COMMENT betaIps,md5 varchar(32) DEFAULT NULL COMMENT md5,gmt_create datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 创建时间,gmt_modified datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 修改时间,src_user text COMMENT source user,src_ip varchar(50) DEFAULT NULL COMMENT source ip,tenant_id varchar(128) DEFAULT COMMENT 租户字段,PRIMARY KEY (id),UNIQUE KEY uk_configinfobeta_datagrouptenant (data_id,group_id,tenant_id)
) ENGINEInnoDB DEFAULT CHARSETutf8 COLLATEutf8_bin COMMENTconfig_info_beta;/******************************************/
/* 数据库全名 nacos_config */
/* 表名称 config_info_tag */
/******************************************/
CREATE TABLE config_info_tag (id bigint(20) NOT NULL AUTO_INCREMENT COMMENT id,data_id varchar(255) NOT NULL COMMENT data_id,group_id varchar(128) NOT NULL COMMENT group_id,tenant_id varchar(128) DEFAULT COMMENT tenant_id,tag_id varchar(128) NOT NULL COMMENT tag_id,app_name varchar(128) DEFAULT NULL COMMENT app_name,content longtext NOT NULL COMMENT content,md5 varchar(32) DEFAULT NULL COMMENT md5,gmt_create datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 创建时间,gmt_modified datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 修改时间,src_user text COMMENT source user,src_ip varchar(50) DEFAULT NULL COMMENT source ip,PRIMARY KEY (id),UNIQUE KEY uk_configinfotag_datagrouptenanttag (data_id,group_id,tenant_id,tag_id)
) ENGINEInnoDB DEFAULT CHARSETutf8 COLLATEutf8_bin COMMENTconfig_info_tag;/******************************************/
/* 数据库全名 nacos_config */
/* 表名称 config_tags_relation */
/******************************************/
CREATE TABLE config_tags_relation (id bigint(20) NOT NULL COMMENT id,tag_name varchar(128) NOT NULL COMMENT tag_name,tag_type varchar(64) DEFAULT NULL COMMENT tag_type,data_id varchar(255) NOT NULL COMMENT data_id,group_id varchar(128) NOT NULL COMMENT group_id,tenant_id varchar(128) DEFAULT COMMENT tenant_id,nid bigint(20) NOT NULL AUTO_INCREMENT,PRIMARY KEY (nid),UNIQUE KEY uk_configtagrelation_configidtag (id,tag_name,tag_type),KEY idx_tenant_id (tenant_id)
) ENGINEInnoDB DEFAULT CHARSETutf8 COLLATEutf8_bin COMMENTconfig_tag_relation;/******************************************/
/* 数据库全名 nacos_config */
/* 表名称 group_capacity */
/******************************************/
CREATE TABLE group_capacity (id bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT 主键ID,group_id varchar(128) 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 NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 创建时间,gmt_modified datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 修改时间,PRIMARY KEY (id),UNIQUE KEY uk_group_id (group_id)
) ENGINEInnoDB DEFAULT CHARSETutf8 COLLATEutf8_bin COMMENT集群、各Group容量信息表;/******************************************/
/* 数据库全名 nacos_config */
/* 表名称 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) NOT NULL,group_id varchar(128) NOT NULL,app_name varchar(128) DEFAULT NULL COMMENT app_name,content longtext NOT NULL,md5 varchar(32) DEFAULT NULL,gmt_create datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,gmt_modified datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,src_user text,src_ip varchar(50) DEFAULT NULL,op_type char(10) DEFAULT NULL,tenant_id varchar(128) DEFAULT COMMENT 租户字段,PRIMARY KEY (nid),KEY idx_gmt_create (gmt_create),KEY idx_gmt_modified (gmt_modified),KEY idx_did (data_id)
) ENGINEInnoDB DEFAULT CHARSETutf8 COLLATEutf8_bin COMMENT多租户改造;/******************************************/
/* 数据库全名 nacos_config */
/* 表名称 tenant_capacity */
/******************************************/
CREATE TABLE tenant_capacity (id bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT 主键ID,tenant_id varchar(128) 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 NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 创建时间,gmt_modified datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 修改时间,PRIMARY KEY (id),UNIQUE KEY uk_tenant_id (tenant_id)
) ENGINEInnoDB DEFAULT CHARSETutf8 COLLATEutf8_bin COMMENT租户容量信息表;CREATE TABLE tenant_info (id bigint(20) NOT NULL AUTO_INCREMENT COMMENT id,kp varchar(128) NOT NULL COMMENT kp,tenant_id varchar(128) default COMMENT tenant_id,tenant_name varchar(128) default COMMENT tenant_name,tenant_desc varchar(256) DEFAULT NULL COMMENT tenant_desc,create_source varchar(32) DEFAULT NULL COMMENT create_source,gmt_create bigint(20) NOT NULL COMMENT 创建时间,gmt_modified bigint(20) NOT NULL COMMENT 修改时间,PRIMARY KEY (id),UNIQUE KEY uk_tenant_info_kptenantid (kp,tenant_id),KEY idx_tenant_id (tenant_id)
) ENGINEInnoDB DEFAULT CHARSETutf8 COLLATEutf8_bin COMMENTtenant_info;CREATE TABLE users (username varchar(50) NOT NULL PRIMARY KEY,password varchar(500) NOT NULL,enabled boolean NOT NULL
);CREATE TABLE roles (username varchar(50) NOT NULL,role varchar(50) NOT NULL,UNIQUE INDEX idx_user_role (username ASC, role ASC) USING BTREE
);CREATE TABLE permissions (role varchar(50) NOT NULL,resource varchar(255) NOT NULL,action varchar(8) NOT NULL,UNIQUE INDEX uk_role_permission (role,resource,action) USING BTREE
);INSERT INTO users (username, password, enabled) VALUES (nacos, $2a$10$EuWPZHzz32dJN7jexM34MOeYirDdFAZm2kuWj7VEOJhhZkDrxfvUu, TRUE);INSERT INTO roles (username, role) VALUES (nacos, ROLE_ADMIN);
2.2.下载nacos
nacos在GitHub上有下载地址Tags · alibaba/nacos · GitHub可以选择任意版本下载。
本例中才用1.4.1版本
链接https://pan.baidu.com/s/1ktHAxNCmQvTaW8V-1_2Epg 提取码nwvf
2.3.配置Nacos 然后修改application.properties文件添加数据库配置
spring.datasource.platformmysqldb.num1db.url.0jdbc:mysql://127.0.0.1:3306/nacos?characterEncodingutf8connectTimeout1000socketTimeout3000autoReconnecttrueuseUnicodetrueuseSSLfalseserverTimezoneUTC
db.user.0root
db.password.0123
2.4.启动 2.5.nginx反向代理
nginx启动 start nginx.exenginx.exe -s reloadnginx.exe -s stop 修改conf/nginx.conf文件配置如下(放在http 里面任意位置即可)
upstream nacos-cluster {server 127.0.0.1:8845;server 127.0.0.1:8846;server 127.0.0.1:8847;
}server {listen 80;server_name localhost;location /nacos {proxy_pass http://nacos-cluster;}
}
而后在浏览器访问http://localhost/nacos即可。
代码中application.yml文件配置如下
spring:cloud:nacos:server-addr: localhost:80 # Nacos地址
3 总结 四 Feign
(一) 基于Feign远程调用(替代RestTemplate)
1.1 RestTemplate 方式调用存在的问题 1.2 Feign的介绍 1.3 定义和使用Feign客户端 1.4 总结 (二) Feign自定义配置 2.1 方法一 配置文件修改 2.2 方法二 java代码进行配置 2.3 总结 (三) Feign性能调优
3.1 Feign 连接池(客户端实现) 3.2 Feign-连接池配置 1.3 总结 (四) Feign 最佳实践分析
4.1 方法一 统一接口 4.2 方法二 独立模块 4.3 总结 (五) 抽取FeignClient
5.1 配置 扫描包 5.2 总结 五 统一网关Gateway
(一) Gateway网关的介绍
Spring Cloud Gateway 官方网站
1.1 网关 1.2 网关的技术实现 1.3 总结 (二) Gatewaya网关的入门
2.1 搭建网关服务 2.2 编写路由配置及nacos地址 2.3 总结 (三) 路由断言工厂 Route Predicate Factories
3.0 官方地址
Spring Cloud Gateway
3.1 说明 Spring Cloud Gateway
3.2 总结 (四) 路由过滤器 GatewayFilter (网关 配置)
4.1 官方地址
Spring Cloud Gateway
4.2 介绍 4.3 过滤器工厂 GatewayFilterFactory
2023-12: 现在应该是38种 4.4 案例 4.5 总结 (五) 全局过滤器 GlobalFilter (java)
5.1 官网
Spring Cloud Gateway
5.2 介绍 5.3 拦截 案例 5.4 步骤
order 是顺序 过滤器一定要有顺序 5.5 总结 (六) 过滤器执行顺序
6.1 介绍 6.2 执行顺序 6.3 总结 (七) Gateway 跨域处理
7.1 介绍 7.2 配置 在gateway服务的application.yml文件中添加下面的配置
spring:cloud:gateway:# 。。。globalcors: # 全局的跨域处理add-to-simple-url-handler-mapping: true # 解决options请求被拦截问题corsConfigurations:[/**]:allowedOrigins: # 允许哪些网站的跨域请求 - http://localhost:8090allowedMethods: # 允许的跨域ajax的请求方式- GET- POST- DELETE- PUT- OPTIONSallowedHeaders: * # 允许在请求中携带的头信息allowCredentials: true # 是否允许携带cookiemaxAge: 360000 # 这次跨域检测的有效期