微服务学习

服务注册与发现: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 小时前
Windows 11 安装 Dify 完整指南 非docker环境
windows·docker·容器
tntlbb11 小时前
Ubuntu20.4 VPN+Docker代理配置
运维·ubuntu·docker·容器
Gabriel_liao11 小时前
Docker安装Neo4j
docker·容器·neo4j
豆豆豆豆变14 小时前
Docker轻量级可视化工具Portainer
docker·容器·自动化运维
花晓木14 小时前
k8s etcd 数据损坏处理方式
容器·kubernetes·etcd
运维&陈同学14 小时前
【模块一】kubernetes容器编排进阶实战之基于velero及minio实现etcd数据备份与恢复
数据库·后端·云原生·容器·kubernetes·etcd·minio·velero
花晓木14 小时前
k8s备份 ETCD , 使用velero工具进行备份
容器·kubernetes·etcd
大熊程序猿14 小时前
xxl-job docker 安装
运维·docker·容器
怡雪~18 小时前
Kubernetes使用Ceph存储
ceph·容器·kubernetes
aherhuo1 天前
kubevirt网络
linux·云原生·容器·kubernetes