springcloud-服务治理

1.服务治理介绍

          1.1什么是服务治理?

                   服务治理可以说是微服务架构中最为核心和基础的模块,它主要是对微服务的实例进行管理,有如下几个功能:

    服务注册:在服务治理框架中,会构建一个注册中心,服务提供者会向注册中心登记自己提供的服务,将服务名、主机与端口号等信息告知注册中心,注册中心会按照服务名进行分类,整理出一个服务清单。服务注册中心还需要以心跳的方式去监测清单中的服务是否可用,若不可用则需要从服务清单中剔除,达到排除故障服务的效果。
    服务发现:服务调用者需要向服务注册中心咨询服务,获取所有的服务实例清单,在清单中通过客户端负载均衡的方式选取一个服务实例进行调用。

1.2 常见的服务治理

常见的服务治理组件。

架构师 项目经理

eureka: 它是netflix公司提供的一款组件,这款组件已经停止更新。

nacos: 它是阿里巴巴提供的一款服务治理组件。

zookeeper: 它是apache公司提供的服务治理组件。

consul: 服务治理的组件

1.3 安装nacos治理组件

Releases · alibaba/nacos · GitHuban easy-to-use dynamic service discovery, configuration and service management platform for building cloud native applications. - Releases · alibaba/nacoshttps://github.com/alibaba/nacos/releases

 springcloud-服务治理_第1张图片

 springcloud-服务治理_第2张图片

 双击运行

springcloud-服务治理_第3张图片

 springcloud-服务治理_第4张图片

账号和密码:

nacos/nacos

 springcloud-服务治理_第5张图片

 2.微服务注册到注册中心

          2.1 添加依赖

 
        
            com.alibaba.cloud
            spring-cloud-starter-alibaba-nacos-discovery
        

2.2添加配置文件

#zhu ce zhong xin di zhi
spring.cloud.nacos.discovery.server-addr=localhost:8848
# qi ming
spring.application.name=qy163-order

2.3运行主函数

springcloud-服务治理_第6张图片

 springcloud-服务治理_第7张图片

3.实现负载均衡

      3.1什么是负载均衡?

负载均衡(Load Balance,简称 LB)是高并发、高可用系统必不可少的关键组件,目标是 尽力将网络流量平均分发到多个服务器上,以提高系统整体的响应速度和可用性。

3.2  手动调试负载均衡

修改Order调用方

 3.3 使用ribbon完成负载均衡

      3.3.1   什么是ribbon

Ribbon是Netflix发布的云中间层服务开源项目,其主要功能是提供客户端实现负载均衡算法。Ribbon客户端组件提供一系列完善的配置项如连接超时,重试等。简单的说,Ribbon是一个客户端负载均衡器,我们可以在配置文件中Load Balancer后面的所有机器,Ribbon会自动的帮助你基于某种规则(如简单轮询,随机连接等)去连接这些机器,我们也很容易使用Ribbon实现自定义的负载均衡算法。

   3.3.2如何使用ribbon

1.再RestTemplate类上加个注解@LoadBalance

springcloud-服务治理_第8张图片

2. 修改controller代码springcloud-服务治理_第9张图片

 ribbon内置的负载均衡策略

             Ribbon内置了多种负载均衡策略,内部负载均衡的顶级接口为 com.netflix.loadbalancer.IRule , 具体的负载策略如下图所示:

 springcloud-服务治理_第10张图片

 

如何改变ribbon的负载均衡策略

修改order的配置文件

# xiu gai ribbon fu zai jun heng ce lue  bian wei sui ji ce lue
qy163-product.ribbon.NFLoadBalancerRuleClassName=com.netflix.loadbalancer.RandomRule

 4.使用openfeign远程调用

     4.1什么是openfeign

openFeign是要声明式的web服务客户端,或叫做声明式REST客户端,它让编写web服务客户端变得简单。
使用它的步骤:创建一个接口并注解它。它支持spring MVC的注解,spring cloud openFeign整合了hystrix,同时,可以和Eureka和ribbon配合使用,可以实现负载均衡的http客户端。
可以理解为是请求转发(RPC调度)的入口。
 

4.2使用openfeign

    1.引入依赖

   
        
            org.springframework.cloud
            spring-cloud-starter-openfeign
        

 2.创建openfeign

springcloud-服务治理_第11张图片

3.编写productfeign

@FeignClient(value = "qy163-product")
public interface ProductFeign {
    @GetMapping("/product/getById/{pid}")
    public Product getById(@PathVariable Integer pid);
}

 4.在主函数添加开启注解驱动

@SpringBootApplication
@MapperScan(basePackages = "com.xal.dao")
@EnableFeignClients
public class OrderApp {
    public static void main(String[] args) {
        SpringApplication.run(OrderApp.class,args);
    }
    @Bean
    @LoadBalanced
    public RestTemplate restTemplate(){
        return new RestTemplate();
    }
}

 5.编写controller

springcloud-服务治理_第12张图片

你可能感兴趣的:(spring,cloud,java,spring)