38.SpringCloud—注册中心(eureka/nacos)、负载均衡Ribbon

这篇具有很好参考价值的文章主要介绍了38.SpringCloud—注册中心(eureka/nacos)、负载均衡Ribbon。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、SpringCloud。

(1)认识微服务。

(1.1)单体架构与分布式架构(微服务)。

(1.2)微服务技术对比。

(1.3)SpringCloud。

(2)服务拆分及远程调用。

(2.1)服务拆分。

(2.2)远程调用。

(3)提供者与消费者。

(4)Eureka注册中心。

(4.1)Eureka的作用。 

(4.2)搭建注册中心 。

(4.3)服务注册。

(4.4)服务发现。

(4.5)Eureka注册中心总结。

(5)Ribbon负载均衡。

(5.1)负载均衡流程。

(5.2)负载均衡策略。

(5.3)修改负载均衡规则(两种方式)。

(5.4)饥饿加载(负载均衡默认:懒加载)。

(5.5)总结。

(6)Nacos注册中心。

(6.1)安装Nacos并登录(windows版)。

(6.2)服务注册(将服务注册到nacos中)。

(6.3)Nacos服务分级存储模型。

(6.4)服务集群属性(为服务设置集群名称)。

(6.5)根据集群负载均衡。

(6.6)根据权重负载均衡。

(6.7)Nacos环境隔离(根据namespace隔离)。

(6.8)临时实例和非临时实例。

(6.9)Nacos与Eureka的区别。


一、SpringCloud。

38.SpringCloud—注册中心(eureka/nacos)、负载均衡Ribbon

(1)认识微服务。

(1.1)单体架构与分布式架构(微服务)。

38.SpringCloud—注册中心(eureka/nacos)、负载均衡Ribbon

(1.2)微服务技术对比。

38.SpringCloud—注册中心(eureka/nacos)、负载均衡Ribbon

(1.3)SpringCloud。

38.SpringCloud—注册中心(eureka/nacos)、负载均衡Ribbon

(2)服务拆分及远程调用。

(2.1)服务拆分。

38.SpringCloud—注册中心(eureka/nacos)、负载均衡Ribbon

(2.2)远程调用。

38.SpringCloud—注册中心(eureka/nacos)、负载均衡Ribbon

(3)提供者与消费者。

38.SpringCloud—注册中心(eureka/nacos)、负载均衡Ribbon

(4)Eureka注册中心。

(4.1)Eureka的作用。 

38.SpringCloud—注册中心(eureka/nacos)、负载均衡Ribbon

(4.2)搭建注册中心 。

eureka注册中心服务端坐标: 

        <dependency>
            <!--eureka服务端-->
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
        </dependency>

添加启动eureka的注解:

@EnableEurekaServer
@SpringBootApplication
public class EurekaApplication {
    public static void main(String[] args) {
        SpringApplication.run(EurekaApplication.class,args);
    }
}

配置eureka的服务名称及服务地址(其实就是将eureka服务注册到注册中心): 

server:
  port: 10086 # 服务端口
spring:
  application:
    name: eurekaserver # eureka的服务名称
eureka:  # 如果启动这个微服务出现错误(访问http://localhost:10086/发现这个没有实例注册到服务注册)
  client:
    service-url:
      defaultZone: http://127.0.0.1:10086/eureka

38.SpringCloud—注册中心(eureka/nacos)、负载均衡Ribbon

(4.3)服务注册。

eureka注册中心客户端坐标:  

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>

给服务起名字,并且将服务注册到注册中心:

当服务实例向 Eureka 服务注册中心注册时,也需要指定该注册中心的根路径/eureka。

如果您使用的是默认的 Eureka 服务注册中心,则应该将注册 URL 设为 http://注册中心的IP地址:注册中心的端口号/eureka。 

server:
  port: 8080
spring:
  application:
    name: orderservice # order服务的服务名称
eureka:
  client:
    service-url:
      defaultZone: http://127.0.0.1:10086/eureka/

查看是否注册到注册中心:

http://localhost:10086/访问:http://localhost:10086/

说明:localhost为eureka的ip地址,而10086则为eureka的端口。

38.SpringCloud—注册中心(eureka/nacos)、负载均衡Ribbon

(4.4)服务发现。

//2.1:url地址
原本URL:String url = "http://localhost:8081/user/" + order.getUserId();
注册后的URL:String url = "http://userservice/user/" + order.getUserId();

注意:userservice是服务的名称。这是在4.3中定义的配置。

@LoadBalanced:使用负载均衡 

@MapperScan("cn.itcast.order.mapper")
@SpringBootApplication
public class OrderApplication {
    public static void main(String[] args) {
        SpringApplication.run(OrderApplication.class, args);
    }
    @LoadBalanced
    @Bean
    public RestTemplate restTemplate(){
        return new RestTemplate();
    }
}

38.SpringCloud—注册中心(eureka/nacos)、负载均衡Ribbon

(4.5)Eureka注册中心总结。

38.SpringCloud—注册中心(eureka/nacos)、负载均衡Ribbon

(5)Ribbon负载均衡。

(5.1)负载均衡流程。

38.SpringCloud—注册中心(eureka/nacos)、负载均衡Ribbon

(5.2)负载均衡策略。

38.SpringCloud—注册中心(eureka/nacos)、负载均衡Ribbon

(5.3)修改负载均衡规则(两种方式)。

代码方式:全局配置,该服务远程访问其他服务都用这种策略。

配置方式: 局部配置,指定远程访问其他服务,它的使用规则。(单个服务)

userservice: #这个是服务名称,没有提示
  ribbon:
    NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule # 负载均衡规则

38.SpringCloud—注册中心(eureka/nacos)、负载均衡Ribbon

(5.4)饥饿加载(负载均衡默认:懒加载)。

指定一个服务:
ribbon:
  eager-load:
    enabled: true # 开启饥饿加载
    clients: userservice # 指定饥饿加载的服务名称
指定多个服务:
ribbon:
  eager-load:
    enabled: true # 开启饥饿加载
    clients:  # 指定饥饿加载的服务名称(指定服务超过一个时的写法)
      - userservice
      - myservice
      - youservice
      - orservice

38.SpringCloud—注册中心(eureka/nacos)、负载均衡Ribbon

(5.5)总结。

38.SpringCloud—注册中心(eureka/nacos)、负载均衡Ribbon

(6)Nacos注册中心。

(6.1)安装Nacos并登录(windows版)。

Nacos是阿里巴巴的产品,现在是SpringCloud中的一个组件。相比Eureka功能更加丰富,在国内受欢迎程度较高 。

在Nacos的GitHub页面,提供有下载链接,可以下载编译好的Nacos服务端或者源代码:

GitHub主页:https://github.com/alibaba/nacos

GitHub的Release下载页:Releases · alibaba/nacos · GitHub

1、下载安装包后,解压就可以了。 

38.SpringCloud—注册中心(eureka/nacos)、负载均衡Ribbon

 打开cmd命令行:进入bin目录启动nacos

 startup.cmd -m standalone

在浏览器输入下面的地址进行登录nacos:账户与密码默认为nacos

http://127.0.0.1:8848/nacos

(6.2)服务注册(将服务注册到nacos中)。

注意:除了依赖和注册到nacos的地址,其它跟eureka一样使用(如负载均衡、服务发现

1、导入nacos依赖管理、导入nacos依赖(替代掉eureka)。

1.1先导入nacos依赖管理。

作用:写了这个之后,导入nacos依赖后不需要写版本(这里就是定义版本) 

<dependencyManagement>
    <dependencies>
        <!--nacos的管理依赖-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-alibaba-dependencies</artifactId>
            <version>2.2.5.RELEASE</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

1.2导入nacos依赖。

    <!--nacos客户端依赖包-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>

 2、添加nacos注册中心地址(替代掉eureka)。

作用:因为这个服务需要加到注册中心,所以需要写注册中心的地址。

spring:
  cloud:
    nacos:
      server-addr: localhost:8848 # nacos服务地址

38.SpringCloud—注册中心(eureka/nacos)、负载均衡Ribbon

(6.3)Nacos服务分级存储模型。

服务调用尽可能选择本地集群的服务(根据集群负载均衡实现),跨集群调用延迟较高 本地集群不可访问时,再去访问其它集群。

  • 因此,在 Nacos 的服务分级模型中,(一级 > 二级 > 三级)
    • 第一级是微服务 (如订单服务) ;
    • 第二级是集群 (如北京订单服务集群、上海订单服务集群等) ;
    • 第三集是实例 (如杭州服务集群的 8081 端口实例、8082 端口实例等) 。

38.SpringCloud—注册中心(eureka/nacos)、负载均衡Ribbon

38.SpringCloud—注册中心(eureka/nacos)、负载均衡Ribbon

(6.4)服务集群属性(为服务设置集群名称)。

spring:
  application:
    name: userservice
  cloud:
    nacos:
      server-addr: localhost:8848 # nacos服务地址
      discovery:
        cluster-name: HZ # 集群名称,这里HZ代指杭州

38.SpringCloud—注册中心(eureka/nacos)、负载均衡Ribbon

(6.5)根据集群负载均衡。

38.SpringCloud—注册中心(eureka/nacos)、负载均衡Ribbon

(6.6)根据权重负载均衡。

注意:先找到集群的实例(使用集群规则),然后根据权重进行负载均衡(与集群不冲突) 

权重值:设置到10000也生效(实测) 

38.SpringCloud—注册中心(eureka/nacos)、负载均衡Ribbon

(6.7)Nacos环境隔离(根据namespace隔离)。

这个一般用于如上线、开发等环境使用不同的环境隔离。 

1、添加命名空间。(在nacos控制台(登录的地方)添加命名空间)

2、配置服务所属命名空间。(在配置文件中选择要添加到哪个命名空间中 )

注意:a服务想要远程调用其他服务,只能从注册中心获取a服务命名空间的服务。

38.SpringCloud—注册中心(eureka/nacos)、负载均衡Ribbon

(6.8)临时实例和非临时实例。

38.SpringCloud—注册中心(eureka/nacos)、负载均衡Ribbon

(6.9)Nacos与Eureka的区别。

获取服务:

eureka:pull(拉取)

nacos:pull(拉取)、push(主动推送)

监测服务健康状态:

 eureka:心跳模式

nacos:心跳模式、主动监测模式


38.SpringCloud—注册中心(eureka/nacos)、负载均衡Ribbon文章来源地址https://www.toymoban.com/news/detail-489440.html

到了这里,关于38.SpringCloud—注册中心(eureka/nacos)、负载均衡Ribbon的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 基于SpringCloud的微服务架构学习笔记(2)注册中心Eureka和负载均衡Ribbon

    基于SpringCloud的微服务架构学习笔记(2)注册中心Eureka和负载均衡Ribbon

    1.7.1 远程调用的问题 地址信息获取 : 服务消费者 如何获取 服务提供者 的 地址信息 (不能每次都写死): URL:http://localhost:8081/user/\\\"+order.getUserId() 多选一 :如果有多个服务提供者,消费者如何进行选择 监测健康状态 :消费者如何获知提供者的健康状态 1.7.2 eureka原理 地址

    2024年02月13日
    浏览(8)
  • SpringCloud微服务注册中心:Nacos介绍,微服务注册,Ribbon通信,Ribbon负载均衡,Nacos配置管理详细介绍

    SpringCloud微服务注册中心:Nacos介绍,微服务注册,Ribbon通信,Ribbon负载均衡,Nacos配置管理详细介绍

    注册中心可以说是微服务架构中的”通讯录“,它记录了服务和服务地址的映射关系。在分布式架构中,服务会注册到这里,当服务需要调用其它服务时,就这里找到服务的地址,进行调用。 服务注册中心(简称注册中心)是微服务框架的一个重要组件,在微服务架构里主要

    2024年02月22日
    浏览(42)
  • springcloud五大组件:Eureka:注册中心、Zuul:服务网关、Ribbon:负载均衡、Feign:服务调用、Hystix:熔断器

    Eureka是Netflix开发的服务发现框架,本身是一个基于REST的服务,主要用于定位运行在AWS域中的中间层服务,以达到负载均衡和中间层服务故障转移的目的。 SpringCloud将它集成在其子项目spring-cloud-netflix中,以实现SpringCloud的服务发现功能。 Eureka包含两个组件:Eureka Server和Eure

    2024年04月10日
    浏览(13)
  • 【SpringCloud】二、服务注册发现Eureka与负载均衡Ribbon

    【SpringCloud】二、服务注册发现Eureka与负载均衡Ribbon

    服务提供者:一次业务中,被其它微服务调用的服务。(提供接口给其它微服务) 服务消费者:一次业务中,调用其它微服务的服务。(调用其它微服务提供的接口) 很明显,这是一个相对的概念。 上一篇中,远程调用时,url参数是写死在代码中的,而不同的测试、生产、

    2024年02月06日
    浏览(10)
  • 微服务技术栈-Ribbon负载均衡和Nacos注册中心

    微服务技术栈-Ribbon负载均衡和Nacos注册中心

    在上面那个文章中介绍了微服务架构的概念以及eureka注册中心的概念,在本节中我们将继续介绍微服务技术栈的其他两个组件Ribbon和Nacos。 在上篇文章中讲到,Spring会自动帮助我们从eureka-server端,根据userservice这个服务名称,获取实例列表,而后完成负载均衡。 那么这个 负

    2024年02月07日
    浏览(10)
  • 【SpringCloud】一、微服务概述、注册中心与Ribbon负载均衡技术简介

    微服务治理 异步通信技术 — mq 缓存技术 — Redis 搜索技术 — ES集群 Devops — Jenkins… 微服务是一种将各个模块拆分开独立运行以提高系统整体效率的技术,其主要特征为: 单一职责:每个服务对应唯一的业务能力、做到单一职责。 面向服务:对外要暴露微服务的业务接口

    2024年02月09日
    浏览(9)
  • nacos注册中心+Ribbon负载均衡+完成openfeign的调用(超详细步骤)

    nacos注册中心+Ribbon负载均衡+完成openfeign的调用(超详细步骤)

    目录 1.注册中心 1.1.nacos注册中心 1.2. 微服务注册和拉取注册中心的内容 2.3.修改订单微服务的代码 3.负载均衡组件 3.1.什么是负载均衡 3.2.什么是Ribbon 3.3.Ribbon 的主要作用 3.4.Ribbon提供的负载均衡策略 4.openfeign完成服务调用 4.1.什么是OpenFeign 4.2.完成openfeign的调用  继  微服务

    2024年02月16日
    浏览(12)
  • SpringCloud学习笔记(上):服务注册与发现:Eureka、Zookeeper、Consul+负载均衡服务调用:Ribbon

    SpringCloud学习笔记(上):服务注册与发现:Eureka、Zookeeper、Consul+负载均衡服务调用:Ribbon

    SpringCloud=分布式微服务架构的一站式解决方案,是多种微服务架构落地技术的集合体,俗称微服务全家桶。 springboot版本选择: git源码地址:https://github.com/spring-projects/spring-boot/releases/ SpringBoot2.0新特性:https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-2.0-Release springcloud版本选

    2024年02月08日
    浏览(9)
  • SpringCloud Alibaba集成 Gateway(自定义负载均衡器)、Nacos(配置中心、注册中心)、Loadbalancer

    SpringCloud Alibaba集成 Gateway(自定义负载均衡器)、Nacos(配置中心、注册中心)、Loadbalancer

    路由(route):路由是网关最基础的部分,路由信息由一个ID,一个目的URL、一组断言工厂和一 组Filter组成。如果断言为真,则说明请求URL和配置的路由匹配。 断言(Predicate):Java8中的断言函数,Spring Cloud Gateway中的断言函数输入类型是 Spring5.0框架中的ServerWebExchange。Sprin

    2024年04月12日
    浏览(39)
  • springCloud之Eureka之负载均衡Ribbon

    springCloud之Eureka之负载均衡Ribbon

    说完了注册中心Eureka,虽然Eureka可以实现服务的发现和调用,但在微服务体系中,服务的发现和调用往往是需要伴随着负载均衡这个概念一体的。而在SpringCloud中自然也存在着与Eureka配套的负载均衡组件,也就是Ribbon组件。 Ribbon介绍 Spring Cloud Ribbon是基于Netflix Ribbon实现的一套

    2024年02月05日
    浏览(8)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包