zoukankan      html  css  js  c++  java
  • 微服务架构之服务治理与服务调用

      服务治理是微服务架构中最核心最基本的模块,用于实现各个微服务的自动化注册与发现。它是微服务架构中非常重要的一个组件,在微服务架构中起到了一个协调者的作用。

    服务注册

      在服务治理框架中,都会创建一个注册中心,每个服务单元向注册中心登记自己提供服务的详细信息。并在注册中心形成一张服务的清单,服务注册中心需要以心跳的方式去检测清单中的服务是否可用,如果不可用,需要在服务清单中提出不可用的服务。

    服务发现

      服务调用方向服务注册中心咨询服务,并获取所有服务的实例清单,实现对具体服务实例的访问。

    常见注册中心

    1,Zookeeper

      zookeeper是一个分布式服务框架,是apache Hadoop的一个子项目,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等。

    2,Eureka

      Eureka是springCloud Netflix中的重要组件,主要作用就是服务注册和发现。但现在已经闭源。

    3,Consul

      Consul是基于GO语言开发的工具,主要面向分布式,服务化的系统提供服务注册、服务发现和配置管理功能。Consul的功能很实用,其中包括:服务注册/发现、健康检查、key/value存储,多数据中心和分布式一致性保证等特性。Consul本身只是一个二进制的可执行文件,所以安装和部署都非常简单,只需要从官网下载后,再执行对应的启动脚本即可。

    4,Nacos

      Nacos是一个更易于构建云原生应用动态服务发现、配置管理和服务管理平台。它是Spring Cloud Alibaba组件之一,负责服务注册发现和服务配置,可以这样认为nacos=eureka+config。

    将微服务注册到Nacos

    1,在pom.xml中添加nacos依赖,spring-cloud-starter-alibaba-nacos-discovery

    2,在主类上添加@EnableDiscoveryClient

    3,在application.yml中添加nacos服务的地址

    4,启动微服务,即可实现自动注册到nacos

    负载均衡

      负载均衡就是将负载(工作任务,访问请求)进行分摊到多个操作单元(服务器,组件)上进行执行。根据负载均衡发生的位置不同,一般分为服务端负载均衡和客户端负载均衡。服务端负载均衡指的是发生在服务提供者一方,比如常见的nginx负载均衡。而客户端负载均衡指的是发生在服务请求的一方,也就是在发送请求之前已经选好了由哪个实例处理请求。我们在微服务调用关系中一般会选择客户端负载均衡,也就是在服务调用的一方来决定服务由哪个提供者执行。

    Ribbon

       Ribbon是SpringCloud的一个组件,他可以让我们使用一个注解就能轻松的搞定负载均衡。

    1,在RestTemplate的生成(Bean)方法上添加@LoadBalanced注解

    2,配置负载均衡策略,yml配置文件中:服务名:ribbon:策略

      Ribbon内置了多种负载均衡策略,内部负载均衡的顶级接口为com.netflix.loadbalancer.IRule,典型策略有BestAvailableRule、AvailabilityFilteringRule、WeightedResponseTimeRule。

    服务调用

      在微服务架构中,通常存在多个服务之间的远程调用请求。目前主流的远程调用技术有基于HTTP的RESTful接口以及基于TCP的RPC协议。

    Feign

      Feign是SpringCloud提供的一个声明式的伪Http客户端,它使得调用远程服务就像调用本地服务一样简单,只需要创建一个接口并添加一个注解即可。Nacos很好的兼容了Feign,Feign默认集成了Ribbon,所以在Nacos下使用Feign默认就实现了负载均衡的效果。

     1,加入Fighn依赖

    2,在主类上添加Feign注解@EnableFeignClients

  • 相关阅读:
    Java calendar类学习笔记
    Anaconda 学习笔记
    第八周作业
    第七次作业
    第六周作业
    第五次作业
    用户调研方法之焦点小组
    第三周作业
    软件工作量的评估方法有哪些
    软件质量保证与测试(--作业--)
  • 原文地址:https://www.cnblogs.com/guanghe/p/13809247.html
Copyright © 2011-2022 走看看