分布式架构 *** 单体
-- 项目搭建
maven 依赖
配置问题
学习分布式框架
SpringCloud && SpringCloudAlibaba || apche dubbo
学习分布式框架中各个组件的使用 Component
1、Nacos
2、OpenFeign
3、Sentinel
4、Gateway
.....
前端:
VUE2 Vue-admin-template 管理端前端脚手架
消息中间件:
MQ (message queue) 消息队列
RabbitMQ √
Kafka
搜索:
**** 业务题 ***** 6套题 有个计划
镜像加速===》安装完成docker后执行:
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json
{
"registry-mirrors": [
"https://docker.anyhub.us.kg",
"https://dockerhub.jobcher.com",
]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
1、安装 mysql
2、安装 redis
微服务框架:
(1) SpringCloud
(2) SpringCloudAlibaba
先出的 SpringCloud 后续 出来 SpringCloudAlibaba
由于SpringCloud的一些组件停止更新维护了
SpringCloudAlibaba 基于SpringCLoud开发出了一些组件来替代SpringCLoud停止维护的组件
SpringCloud:
Eureka 注册中心 停止 Nacos
feign 远程调用 升级 openFeign
hystrix 熔断 停止 sentinel
ribbon 负载均衡
zuul 网关 升级 Gateway
springcloud config 配置中心 停止 nacos
springcloud bus 消息总线 停止 nacos
最终分布式架构搭建:既包含了 SpringCloud 又包含了 SpringCloudAlibaba
第一个分布式组件: nacos
(1) 为什么需要使用 Nacos
a:Nacos 服务的注册发现中心
1)、引入依赖
com.alibaba.cloud
spring-cloud-starter-alibaba-nacos-discovery
2)、添加配置
spring:
cloud:
nacos:
# 配置nacos注册发现中心的地址 项目启动的时候 会自动将当前的项目注册到 这个nacos中
discovery:
server-addr: 123.60.133.141:8848
3)、启动类上添加注解 可以省略
@EnableDiscoveryClient
b: Nacos 服务的配置中心 配置文件 需要换名字 application.xxx -> bootstrap.xxx
1)、 引入配置依赖
com.alibaba.cloud
spring-cloud-starter-alibaba-nacos-config
org.springframework.cloud
spring-cloud-starter-bootstrap
2)、 编写配置
spring:
cloud:
nacos:
config:
service-addr: 123.60.133.141:8848 指定nacos配置中心的地址
线上的配置需要自己去nacos配置中心添加
Data id: 配置文件的名称, 这个配置 不可以随意命名 有固定的规则
${prefix}-${spring.profiles.active}.${file-extension}
--- prefix: 默认取的是当前服务的名称 spring.application.name 的值 可以通过 spring.cloud.nacos.config.prefix=xxxx
--- spring.profiles.active springboot的环境 可以配置也可以不配置
如果配置了 spring.profile.active=dev -dev
如果没有配置 Data id: ${prefix}.${file-extension}
--- file-extension 文件内容的格式 Properties[默认值] 或者 yaml spring.cloud.nacos.config.file-extension=yml 来指定
3)、 如果读取配置文件使用的是 @Value("${}") 需要配合使用 @RefreshScope 这个注解来实现配置的自动更新
读取配置:
(1) @Value("${}") 简答 不能自动更新配置 需要配合使用 @RefreshScope
(2) @Configuration + @ConfigurationProperties(prefix="前缀")
属性名称 必须和 配置文件中除了前缀 之外的名字 保持一致
属性必须提供 set 方法
(3) 注入 Environment 对象 【spring上下文环境对象】 getProperties("key") 来获取值
nacos配置进阶
命名空间:namespace 使用命名空间做配置的环境粗粒度隔离 开发环境 测试环境 生产环境
配置集: 各个配置的集合 就叫配置集 配置文件中包含了 数据源的配置 mybatis 的配置 redis mq 。。。。。
配置集ID: Data id: 配置文件的名称
配置分组: 可以做配置的细粒度的隔离 使用 命名空间做服务的隔离 配置 配置分组做环境和活动的隔离

1142

被折叠的 条评论
为什么被折叠?



