SpringCloud-Day2

SpringCloud-Day2,第1张

SpringCloud-Day2 1.服务注册中心诞生背景?

微服务中,需要查找服务,服务通信,管理服务,由此注册中心诞生。常见的注册服务中心有:Zookeeper(雅虎Apache),Eureka(Netfix),Nacos(Alibaba),Consul(Google)。

2.服务注册中心的选型?

社区活跃度,稳定性,功能,性能,学习成本

3.Nacos的下载和安装

(1) Nacos下载,安装,解压:
nacos下载链接
(2)执行nacos-mysql.sql文件(创建数据库nacos_config)
(3)配置(application.properties),
(4)启动(startup.cmd)
(5)访问(http://ip:port/nacos)

4.基于Nacos实现服务的注册?

(1)添加依赖

 
            org.springframework.boot
            spring-boot-starter-web
 
 
        	com.alibaba.cloud
            spring-cloud-starter-alibaba-nacos-discovery
 

(2)服务配置

server:
  port: 8090
#服务的地址
spring:
  application:
    name: sca-consumer
    #服务的注册地址,本机上可以省略,将来nacos会在一台独立的机器上进行部署,一定要写的
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848

(3)启动服务并检查
创建启动类,则可以检查nacos里,服务注册成功。
(4)停掉sca-provider服务,然后不断刷新nacos服务列表,检查服务的健康状态。

解释:服务注册到nacos里面,服务会定时5s向nacos发送心跳包,nacos会定时15s接收心跳包,如果第一次没接收到,那么会将健康实例数减少,如果第二次没接收到,那么该服务消失。

4.基于RestTemplate的Nacos实现服务的调用?

(1)向nacos中注册两个服务一个是sca-provider,一个是sca-consumer。
(2)在sca-consumer里面我们要向Spring容器里面,加一个restTemplate一个bean。

 @Bean
    public RestTemplate restTemplate(){//基于此对象实现远端服务调用
        return new RestTemplate();
    }
5.基于LoadBalancerClient对象实现服务发现,服务的负载均衡

(1)创建两个sca-provider
(2)注入对象LoadBalancerClient,并且调用该对象

@GetMapping("/getHello1")
    public String getHello1(){
        ServiceInstance instance = loadBalancerClient.choose("sca-provider");
        String ip = instance.getHost();
        int port = instance.getPort();
        //使用String.format进行字符串的拼接
        String url = String.format("http://%s:%s//hello/tedu", ip, port);
        String string = restTemplate.getForObject(url, String.class);
        return string+"123";
    }
6.常见问题分析

1.如何理解服务注册中心?
将服务以map形式进行存储。
2.服务注册中心诞生的背景?
服务的调用,服务的发现,管理服务,服务多了,需要对服务进行更好管理
3.市场上常用的注册中心?
Zookeeper,Eureka,Nacos,Consul
4.如何对注册中心进行选型?
社区活跃度,稳定性,功能,性能,学习成本
5.Nacos 是什么?
是Alibaba公司基于SpringBoo技术实现的一个注册中心,本质上也是一个web服务
6.Nacos 的基本架构?
Client/Server架构
7.Nacos 主要提供了什么核心功能?
服务的注册,发现,配置
8.Nacos 服务启动需要什么前置条件?
配置JDK的JAVA_HOME目录,安装MySQL5.7以上版本,配置连接的数据库
9.Nacos 服务单机模式,window平台下启动时的指令是什么?
startup.cmd -m standalone
10.实现Nacos服务注册需要添加什么依赖?(两个:web,discovery)
11.实现Nacos服务注册时,必须做哪些配置?
服务名,假如是本机服务注册可以省略服务地址
12.Nacos如何检查服务状态?通过心跳包实现,服务启动时会定时向nacos发送心跳包-BeatInfo
13.服务之间进行服务调用时,使用了什么API?
RestTemplate,用此对象之前要先创建这个对象并交给spring管理
14.LoadBalancerClient对象的作用是什么?
基于负载均衡算法获取服务实例

欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/zaji/5683826.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存