微服务学习

服务注册与发现:consul 阿里Nacos

服务调用和负载均衡:OpenFeign LoadBalance

分布式事务:阿里Seata

服务熔断和降级:阿里Sentinel Circuit Breaker

服务链路追踪:Micrometer Tracing

服务网关:GateWay

分布式配置管理:consul 阿里Nacos

服务发现与注册

consul 是一套开源的分布式服务发现和配置管理系统,consul默认端口是8005,由GO语言开发,提供了微服务系统中的服务治理,配置中心,控制总线等功能 优点:基于raft协议,比较简洁、支持健康检查,同时支持HTTP和、DNS协议,提供图形化界面

实践:实现2个微服务注册与发现,服务提供者,端口8001: 服务消费者,端口80,注册到consul

服务提供者8001注册进consul

1、maven项目8001服务的pom.xml文件,引入spring-cloud-starter-consul-discovery

2、修改maven项目resources下application.yaml文件

server:

port:8001

spring:

application:

name:cloud-payment-service

cloud:

consul:

host:localhost

port:8500

discovery:

service-name:${spring.application.name}

服务cloud-payment-service以端口8001注册到consul

3、开启服务发现

maven项目main下找到8001服务的主启动类 添加@EnableDiscoveryClient

4、启动8001主启动类

5、检查consul是否注册成功

服务消费者80

1、80服务的pom.xml文件,引入spring-cloud-starter-consul-discovery

2、修改yaml文件

server:

port:80

spring:

application:

name:cloud-consumer-service

cloud:

consul:

host:localhost

port:8500

discovery:

service-name:${spring.application.name}

服务cloud-consumer-service以端口80注册到consul

3、开启服务发现

找到80服务的主启动类 添加@EnableDiscoveryClient

4、修改maven项目下main的ontroller类

原配置:paymentSrv_URL="http://localhost:8001"

修改为:paymentSrv_URL=paymentSrv_URL=http://cloud-payment-service(服务名)

4、启动80主启动类

5、检查consul是否注册成功

分布式系统全局配置和动态刷新:

业务系统拆分成多个子服务,系统会出现大量的服务,每个服务需要必要的配置信息才能运行,所以集中式、动态配置管理是必不可少的,某些配置文件中的内容大部分都是相同的,只有个别配置项不同,例如数据库配置,每个微服务关于数据库的配置基本相同,当数据库配置修改,要使微服务处处生效

微服务自带一个application.yaml,当上百微服务的时候,管理维护配置文件不太方便

通用全局配置信息,直接注册进Consul服务器,从Consul获取,实现一次修改,全局广播

实践:

1、

修改8001微服务的pom.xml文件,引入spring-cloud-starter-consul-config spring-cloud-starter-bootstap

2、新增bootstap.yaml

application 用户级别的

bootstap.yaml 系统级别,优先级更高

bootstap.yaml 替代application或者两者共存

bootstap.yaml

server:

port:80

spring:

application:

name:cloud-consumer-service

cloud:

consul:

host:localhost

port:8500

discovery:

service-name:${spring.application.name}

复制代码
 config:
     profile-separator:'-' 文件分隔符
     format: YAML

application.yaml

spring:

...

profiles:

active:dev

配置规则说明

Key Valus配置分布式配置和全局刷新

1、创建config文件夹,以/结尾

2、config文件夹分别创建其他3个文件夹

动态刷新

Maven项目主启动类添加@RefreshScope

@EnableDiscoveryClient

@RefreshScope

阿里云MSE Nacos

https://help.aliyun.com/zh/mse/use-cases/create-a-service-registry-on-mse-for-spring-cloud-applications?spm=a2c4g.11174283.0.0.412e7b26BY8hAO\&shareId=aa1fce1325f3814c0fd355c755cbcc1c

MSE

https://help.aliyun.com/document_detail/404845.html

相关推荐
小张是铁粉7 小时前
docker学习二天之镜像操作与容器操作
学习·docker·容器
烟雨书信7 小时前
Docker文件操作、数据卷、挂载
运维·docker·容器
IT成长日记7 小时前
【Docker基础】Docker数据卷管理:docker volume prune及其参数详解
运维·docker·容器·volume·prune
这儿有一堆花8 小时前
Docker编译环境搭建与开发实战指南
运维·docker·容器
LuckyLay8 小时前
Compose 高级用法详解——AI教你学Docker
运维·docker·容器
Uluoyu8 小时前
redisSearch docker安装
运维·redis·docker·容器
IT成长日记12 小时前
【Docker基础】Docker数据持久化与卷(Volume)介绍
运维·docker·容器·数据持久化·volume·
疯子的模样16 小时前
Docker 安装 Neo4j 保姆级教程
docker·容器·neo4j
Lpy256920 小时前
Docker Desktop 安装到D盘(包括镜像下载等)+ 汉化
运维·docker·容器
好奇的菜鸟21 小时前
Docker 配置项详解与示例
运维·docker·容器