微服务的一种架构,主要分为服务注册发现(Eureka、Nacos、Consul),服务远程调用(OpenFeign、Dubbo),服务链路监控(Zipkin、Sleuth),统一配置管理(SpringCloudConfig、Nacos),统一网关路由(SpringCloudGateway、Zuul),流量控制、降级(Hystix、Sentinel)。
视频资源教程下载:
https://pan.baidu.com/s/169SFtYEvel44hRJhmFTRTQ
提取码:1234
Day1:跨模块调用,服务注册发现(Eureka)
跨模块调用方法一:
使用RestTemplate,在application类中注册restTemplate,然后使用restTemplate.getForObject或postForObject发送http请求
url为被调用模块的请求地址
缺点:当被调用的服务为集群,调用者就不知道调用哪个端口的服务了,不可能固定一个端口的服务,需要负载均衡。
方法二,通过Eureka注册发现服务
Eureka中分服务端,客户端;
服务端负责记录服务信息、心跳监控
客户端有两种:
服务提供者Provider:注册自己的信息到EurekaServer,每隔30秒向服务端发送一次心跳。
服务消费者Consumer:根据服务名称从EurekaServer中拉去服务列表、基于负载均衡选中一个微服务发起远程调用。
使用:
服务端:
- 新建maven子模块eureka做服务端,pom文件加eureka服务端依赖:
(版本号由父pom.xml指定,注意springboot和springcloud版本是否冲突,不然运行会报错)
- 启动类添加注解@EnableEurekaServer,开启euerka
- 配置文件配置eureka实列信息,并注册本身
打开端口相应页面
客户端: - 引入依赖
- 配置eureka客户端信息
模拟服务者集群:
最终eureka中心:
负载均衡:Ribbon
@LoadBalanced开启负载均衡的底层实现是ribbon
服务注册与配置管理(Nacos)
直接启动jar包的方式启动nacos,不需要新建模块管理
子pom注释掉eureka客户端依赖,使用nacos依赖
父pom导入springcloudAlibaba依赖在这里插入代码片
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>2.2.5.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
服务的application.yml文件配置nacos信息
负载均衡修改,优先使用同局域网下的服务