- 什么是微服务?
- 微服务是一种分布式架构分案,可以由多个服务组成,各个服务可以独立部署,降低耦合
- 服务间的调用方式有哪些?
- RPC
- 并发能力强
- 代表框架: dubbo
- HTTP
- 灵活
- 代表框架: HttpClient、UrlConnection、OkClient
- Spring提供了整合: RestTemplate
- 什么是SpringCloud?
- 微服务的一站式解决方案
- SpringCloud中的核心组件?
- 服务注册中心 eureka、nacos
- 负载均衡 ribbon
- 熔断器 hystrix、sentinel
- 服务调用 feign
- API网关 gateway
- 配置中心 nacos
- SpringBoot、SpringCloud、微服务三者间关系?
- SpringBoot可以离开SpringCloud独立使用开发项目,但是SpringCloud离不开SpringBoot,属于依赖的关系。SpringCloud+SpringBoot 实现微服务开发,SpringCloud具备微服务开发的核心技术。

- 什么是注册中心?
- 注册各个服务的实例信息,决定业务服务是否正常调用
- 注册中心的作用?
- 注册服务提供者的信息
- 服务消费者从注册中心调用服务提供者的接口
- 服务提供者会给注册中心发送心跳请求,报告健康状态
- 如何使用Eureka注册中心
- 引入eureka-server依赖
- 添加@EnableEurekaServer
- 在application.yml中配置eureka地址
- 如何使用Nacos注册中心
在cloud-demo父工程中添加spring-cloud-alilbaba的管理依赖
<dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-alibaba-dependencies</artifactId> <version>2.2.6.RELEASE</version><type>pom</type><scope>import</scope></dependency>
注释掉order-service和user-service中原有的eureka依赖
- 添加nacos的客户端依赖
```java
com.alibaba.cloud spring-cloud-starter-alibaba-nacos-discovery
- 修改user-service&order-service中的application.yml文件,注释eureka地址,添加nacos地址:```yamlspring:cloud:nacos:server-addr: localhost:8848
- 重启微服务后,登录nacos管理页面,可以看到微服务信息

- 什么是Ribbon? 作用?
- Srping Cloud Ribbon 是基于 Netflix Ribbon实现的一套客户端负载均衡的工具。
- 作用:实现负载均衡调用
- Ribbon的工作原理?
- 请求被LoadBalancerInterceptor拦截
- 获取uri中的服务名称
- 交给RibbonLoadBalanceClient的对象,根据服务名称获取服务列表,保存DynamicServerListLoadBalancer
- 交给IRule,利用负载均衡规则选择实例
- 利用实例的ip和端口替换url的服务名称,发起请求

- Ribbon支持的负载均衡策略?
- Ribbon如何配置修改负载均衡策略?
通过定义IRule实现可以修改负载均衡
1.代码方式:
@Bean public IRule randomRule(){ return new RandomRule(); }2.代码方式:配置文件方式
userservice: # 给某个微服务配置负载均衡规则,这里是userservice服务 ribbon: NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule # 负载均衡规则
- Ribbon如何设置饥饿加载?
- 通过开启饥饿加载配置
ribbon: eager-load: enabled: true clients: userservice

