- Eureka注册中心的理解!!!
- 登录页面进行登录。(用户名和密码都是nacos)">A、下载nacos并成功启动,进入登录页面进行登录。(用户名和密码都是nacos)
- B、在这两个服务的父工程中引入服务注册依赖
- C、分别给服务service-edu和服务service-vod的配置文件
application.properties
中添加nacos服务地址
Eureka是干什么的? Eureka是一款注射中心 ,
注册中心是干什么的?在V服务当中,注册中心可以帮我们提供服务的注册、服务的发现和服务的状态管理
为啥要提供服务的注册、服务的发现和服务的状态管理? 因为V服务之间服务有很多,他们之间会互相调用,如果不管理这些服务调用的地址的话,那这些地址会变得难以维护,而注册中心就可以帮我们管理这些服务的管理信息
nacos与Eureka相比优势如下:
nacos在自动或手动下线服务,使用消息机制通知客户端,服务实例的修改很快响应;Eureka只能通过任务定时剔除无效的服务。
nacos可以根据namespace命名空间,DataId,Group分组,来区分不同环境(dev,test,prod),不同项目的配置。
Eureka怎么用? 步骤:分为服务端和客户端,服务端创建一个工程,引入Eureka依赖,配置文件的注解,编写配置文件,这样就跑起来了
细节和bug注意点?如Ribbon饥饿加载、常见的负载均衡模式
Eureka注册中心的理解!!!
Eureka作用: 注册!发现!状态监控!!
Eureka架构中,微服务角色有两个:服务端(单独部署)、客户端(引入微服务)
1、服务提供者user-service8081、user-service8082:到注册中心,注册服务信息 (服务名称、注册中心地址)
2、服务消费者order-service8080 :到注册中心,拉取服务 user-service的信息
3、服务消费者order-service8080:负载均衡(一定要加上这个注解@LoadBalanced) )
user-service:
locahost:8081
locahost:8082
4、服务消费者到服务提供者:远程调用(http://uservice/user/id)
5、服务提供者到注册中心:提供心跳,约30S一次
a:搭建EurekaServer
aa:引入eureka-server依赖
ab:@添加EnableEurekaServer注解
ac:application.yml中配置eureka地址
order-service完成注册中心:
在yml配置文件里,写上 订单微服务起个名称,价格注册中心地址配置,订单微服务重启一下,到注册中心看一下
总结:
1、服务注册
引入eureka-client依赖
在yml中配置eureka地址
2、无论是消费者还是提供者,引入eureka-client依赖、知道eureka地址后,都可以完成服务注册
负载均衡靠的是一个主键
1、什么是微服务?
微服务(Microservices)是一种架构风格,一个大型复杂的项目,可以由多个微服务组成。
项目中的各个微服务可被独立部署,各个微服务之间是松耦合的。每个微服务仅关注完成自己的业务
2、微服务间的调用方式有哪些?
一种是紧耦合的RPC方式
另一种是事件驱动(Event-driven)松耦合方式方式发消息方式。
3、什么是SpringCloud?
Spring Cloud是一个微服务框架的规范,只是规范,他不是任何具体的框架
4、SpringCloud中的核心组件?
4.1 服务注册中心->eureka,nacos
4.2 负载均衡-> ribbon
4.3 熔断器 ->hystrrix,sentinel
4.4 服务调用 ->feign
4.5 Api网关 ->gateway
4.6 配置中心->nacos
五大 组件 全都包含 新建一个父模块,导包,包含 SpringCloud 以及 Spring Boot的包
5、SpringBoot、SpringCloud、微服务三者间关系?
微服务是一种架构风格, SpringCloud是微服务一站式解决方案,
SpringCloud依赖于SpringBoot,
微服务强调的是一个大项目分为多个小项目,而小项目可以快速的利用SpringBoot来实现快速构建;
SpringCloud 版本号 我们用H开头,要用springboot2.3开头的
6、什么是注册中心?
注册中心可以说是微服务架构中的“通讯录”,它记录了服务和服务地址的映射关系。
在分布式架构中,服务会注册到这里,当服务需要调用其它服务时,就到这里找到服务的地址,进行调用。
在没有注册中心时候,服务间调用需要知道被当服务调方的具体地址(写死的 ip:port)。
常见得到注册中心有zookeeper、Eureka、Nacos等
7、注册中心的作用?
7.1注册;
7.2 发现;
7.3 状态监控;
8、如何使用Eureka注册中心
8.1 第一步引入相关依赖
8.2 在启动类上加上注解 <@EnableEurekaServer>
8.3 准备好配置文件
Eureka架构中,微服务分两类:EurekaServer服务端(注册中心)、EuekaClient客户端(Provider服务提供者、consumer服务消费者)
9、如何使用Nacos注册中心
A、下载nacos并成功启动,进入登录页面进行登录。(用户名和密码都是nacos)
B、在这两个服务的父工程中引入服务注册依赖
C、分别给服务service-edu和服务service-vod的配置文件application.properties
中添加nacos服务地址
D、分别给服务service-edu和服务service-vod的启动类上添加注解,注册nacos
10、什么是Ribbon? 作用?
Ribbon是一个软负载均衡的客户端组件,他可以和其他所需请求的客户端结合使用
主要功能是提供软件负载均衡算法和服务调用。
11、Ribbon的工作原理?
如果在没有使用Feign调用接口的时候,我们肯定会选择RestTemplate来调用,Ribbon给提供了一个负载均衡的一个标注@LoadBalanced,可以加在RestTemplate上,这个就是我们接下来要看Ribbon的入口了。
@LoadBalanced底层其实就是个拦截器,拦截了所有的RestTemplate调用的接口,在通过调用的是哪个服务来判断对应的ip,拼接好正确的url之后,在通过HTTP请求再去请求对应的接口就可以了。
Ribbon的核心组件有,ILoadBalancer、IRule和IPing。
12、Ribbon支持的负载均衡策略? 默认:轮询 负载均衡调用
12.1 默认的实现是ZoneAvoidanceRule,是轮询机制
12.2 RoundRobinRule 轮询
12.3 RandomRule 随机
12.4 RetryRule 重试
12.5 AvailabilityFilteringRule 短路
12.6 WeightedResponseTimeRule 权重
12.7BestAvailableRule 最低并发策略
13、Ribbon如何配置修改负载均衡策略?
配置:
引入Ribbon依赖
RestTemplate 使用注解 @LoadBalanced
Controller中引入Bean
修改:
在启动类上定义一个IRule的Bean
userservice: # 给某个微服务配置负载均衡规则,这里是userservice服务
ribbon:
NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule # 负载均衡规则
14、Ribbon如何设置饥饿加载?
配置ribbon.egar-load.enable=true #开启饥饿加载
ribbon.egar-load.clients=userservice #指定服务名称
ribbon:
eager-load:
enabled: true
clients: userservice