微服务学习

服务注册与发现: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

相关推荐
AAA@峥7 小时前
K8s 流量入口管理|Ingress 核心原理 + ingress-nginx 部署 + 生产实战案例合集
nginx·容器·kubernetes
GlueNa2SiO39 小时前
10-Docker生产环境部署与K8s入门
笔记·学习·docker·容器·kubernetes
Kismet_nvi9 小时前
《Kubernetes 网络进阶、调度策略与自动扩缩容实战精要》
网络·容器·kubernetes
蜀道山老天师10 小时前
Zabbix监控Docker容器应用实践完整指南
linux·运维·docker·容器·zabbix
星空11 小时前
WordPress在docker中部署
运维·docker·容器
怦怦蓝11 小时前
Windows 安装 Docker Desktop 踩坑完整实战指南(WSL2 故障排错实录)
windows·docker·容器
康娜喵12 小时前
在Ubuntu26上使用Docker部署Gitea
docker·容器·gitea
东宇科技12 小时前
我用docker创建了一个springboot4项目
阿里云·docker·容器
坐吃山猪1 天前
Docker07-MySQL
mysql·docker·容器
Kismet_nvi1 天前
《Kubernetes Service 进阶、kube-proxy 与 Ingress 实战精要》
云原生·容器·kubernetes