Spring Cloud学习(二)【Eureka注册中心】

文章目录

  • Eureka 注册中心
    • Eureka 的作用
  • 动手实践
    • 搭建 EurekaServer
    • 服务注册
    • 服务发现
  • Ribbon 负载均衡
    • 负载均衡原理
    • IRule 接口(负载均衡策略)
    • 饥饿加载


Eureka 注册中心

服务调用出现的问题

  • 不能采用硬编码
  • 服务消费者该如何获取服务提供者的地址信息?
  • 如果有多个服务提供者,消费者该如何选择?
  • 消费者如何得知服务提供者的健康状态?

Eureka 的作用

eureka-server(注册中心):用于管理记录所有的微服务,监控心跳
eureka-client:服务消费者与服务提供者都属于eureka-client

  1. 注册服务信息
  2. 拉去服务
  3. 负载均衡
  4. 远程调用

在这里插入图片描述

在这里插入图片描述

动手实践

在这里插入图片描述

搭建 EurekaServer

在这里插入图片描述

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

编写启动类,添加@EnableEurekaServer注解

server:port: 10086  # 服务端口spring:application:name: eurekaserver # 微服务名称
eureka:client:service-url:  # eureka的地址信息 defaultZone: http://127.0.0.1:10086/eureka

服务注册

在这里插入图片描述

注册 user-service

在这里插入图片描述

<!--        eureka服务端-->
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
server:port: 8081
spring:application:name: userservice # 微服务名称eureka:client:service-url:  # eureka的地址信息defaultZone: http://127.0.0.1:10086/eureka

在IDEA本地为一个服务起多个实例的方法

在这里插入图片描述
在这里插入图片描述

服务发现

在这里插入图片描述
在这里插入图片描述

orderservice启动类中

/*** 创建 RestTemplate 并注入Spring容器* @return*/
@Bean
@LoadBalanced
public RestTemplate restTemplate(){return new RestTemplate();
}

OrderService.java中

public Order queryOrderById(Long orderId) {// 1.查询订单Order order = orderMapper.findById(orderId);// 2. 利用 RestTemplate 发送http请求,查询用户String url = "http://userservice/user/" + order.getUserId();User user = restTemplate.getForObject(url, User.class);// 封装 user 到 Orderorder.setUser(user);// 4.返回return order;}

启动负载均衡后,当 order 服务调用 user 服务时,eureka 会通过负载均衡策略去调用userservice1与userservice2(user服务启动并注册了多个实例)

总结
在这里插入图片描述

Ribbon 负载均衡

负载均衡原理

负载均衡流程

在这里插入图片描述

@LoadBalanced 注解: 标记当前 RestTemplate 发起的请求要被 Ribbon 拦截

在这里插入图片描述
在这里插入图片描述

IRule 接口(负载均衡策略)

在这里插入图片描述

在这里插入图片描述
通过定义 IRule 实现可以修改负载均衡规则,有两种方式:

  1. 启动类/配置类中
    范围:order-service的所有请求
    在这里插入图片描述

  2. application.yml 中
    范围:order-service 访问某个指定的服务(比如此处配置的是 user-service)的请求
    在这里插入图片描述

饥饿加载

Ribbon 默认是采用懒加载,即第一次访问时才会去创建LoadBalanceClient,请求时间会很长。
而饥饿加载则会在项目启动时创建,降低第一次访问的耗时,通过下面配置开启饥饿加载:

在这里插入图片描述

当有多个饥饿加载的服务对象

在这里插入图片描述

总结

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/185488.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

苹果Mac电脑fcpx视频剪辑:Final Cut Pro中文最新 for mac

Final Cut Pro是苹果公司开发的一款专业视频剪辑软件&#xff0c;它为原生64位软件&#xff0c;基于Cocoa编写&#xff0c;支持多路多核心处理器&#xff0c;支持GPU加速&#xff0c;支持后台渲染。Final Cut Pro在Mac OS平台上运行&#xff0c;适用于进行后期制作。 Final Cu…

小白学安全-KunLun-M静态白盒扫描工具

一、KunLun-M简介 KunLun-M是一个完全开源的静态白盒扫描工具&#xff0c;支持PHP、JavaScript的语义扫描&#xff0c;基础安全、组件安全扫描&#xff0c;Chrome Ext\Solidity的基础扫描。开源地址&#xff1a;https://github.com/LoRexxar/Kunlun-M Cobra是一款源代码安全审计…

箭头函数 跟匿名函数this的指向问题

var id 10; function foo() {// 创建时 this->windowthis.id 20; // 等价于 window.id 20let c () > {console.log("id1:", this.id); // 创建时父级 创建时 this->window};let d function () {console.log("id2:", this.id); // 执行时本…

计算机毕业设计 基于SpringBoot的私人西服定制系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍&#xff1a;✌从事软件开发10年之余&#xff0c;专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精…

Spring Cloud LoadBalancer 负载均衡策略与缓存机制

目录 1. 什么是 LoadBalancer &#xff1f; 2. 负载均衡策略的分类 2.1 常见的负载均衡策略 3. 为什么要学习 Spring Cloud Balancer &#xff1f; 4. Spring Cloud LoadBalancer 内置的两种负载均衡策略 4.1 轮询负载均衡策略&#xff08;默认的&#xff09; 4.2 随机负…

限流式保护器在养老院火灾预防中的应用

安科瑞 华楠 【摘要】老年人是一个庞大特殊的社会群体。随着我国人口的老龄化&#xff0c;老年人口数量断上升。涉及老年人的火灾越来越多&#xff0c;本文从养老院火灾的案例、成因、预防措施等方面对此类火灾进行了深入的探讨。 【关键词】老年公寓&#xff1b;火灾预防&…

Vue 将响应式数据转为普通对象

toRaw&#xff1a;将一个 reactive 生成的响应式数据转为普通对象。 toRaw 适用于&#xff1a;获取响应式数据对应的普通对象&#xff0c;对这个普通对象所有的操作&#xff0c;都不会引起页面的更新。 markRaw&#xff1a;标记一个对象&#xff0c;使其永远不会再成为响应式…

WebDAV之π-Disk派盘 + PassStore

大家常用的qq,手机微信,新浪微博等。假如各个网址都设成同样的帐号和登陆密码,一旦某一帐户泄漏了,别的平台上的账户密码都有被撞库攻击的风险。在不一样的站点设定不一样的高韧性登陆密码才算是最安全可靠的确保,殊不知这般繁多的帐户密码是难以记得的。因而,有着一款安…

ChatGPT如何管理对话历史?

问题 由于现在开始大量使用ChatGPT对话功能&#xff0c;认识到他在提供启发方面具有一定价值。比如昨天我问他关于一个微习惯的想法&#xff0c;回答的内容还是很实在&#xff0c;而且能够通过他的表达理解自己的问题涉及到的领域是什么。 此外&#xff0c;ChatGPT能够总结对话…

系统的讲解 - PHP 接口签名验证

概览 工作中&#xff0c;我们时刻都会和接口打交道&#xff0c;有的是调取他人的接口&#xff0c;有的是为他人提供接口&#xff0c;在这过程中肯定都离不开签名验证。 在设计签名验证的时候&#xff0c;一定要满足以下几点&#xff1a; 可变性&#xff1a;每次的签名必须是不…

创建一个自定义关卡资源(二)

接上一篇文章&#xff0c;做加载 再做加载之前&#xff0c;提一下 关于上一篇文章中的扩展编辑器&#xff0c;会有点小问题&#xff0c;会有重置的现象&#xff0c;现在有点忙&#xff0c;暂时不研究。 如果研究的话&#xff0c;我会出一篇&#xff08;三&#xff09; 否则就没…

Docker快速搭建Drupal内容管理系统并远程访问

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525;个人专栏:《Linux深造日志》《C干货基地》 ⛺️生活的理想&#xff0c;就是为了理想的生活! 文章目录 前言1. Docker安装Drupal2. 本地局域网访问3 . Linux 安装cpolar4. 配置Drupal公网访问地址5. 公网远程访问Drupal…

【广州华锐互动】3D全景虚拟旅游在文旅行业的应用场景

随着科技的不断发展&#xff0c;3D全景虚拟旅游正在成为一种新兴的旅游体验方式&#xff0c;它可以帮助旅游者更加深入地了解旅游信息&#xff0c;提升旅游体验。下面我们将详细介绍3D全景虚拟旅游可以应用于哪些场景。 一、旅游规划 3D全景虚拟旅游可以帮助旅游者更加直观地进…

中睿天下受邀参加2023电力数字化大会并荣获“闪电杯”大赛三等奖

11月1日至2日&#xff0c;中国电力发展促进会、国家电网有限公司信息通信分公司、国家电网有限公司大数据中心、国家电投集团数字科技有限公司在京联合举办2023电力数字化大会。 大会以“数智赋能新型电力系统”为主题&#xff0c;邀请院士、企业领导、专家学者&#xff0c;探讨…

基于RK3568的内部定时器应用示例

1. 内部定时器介绍 内核定时器是内核用来控制在未来某个时间点&#xff08;基于jiffies&#xff09;调度执行某个函数的一种机制&#xff0c;其实现位于kernel/linux/timer.h和kernel/timer.c 文件中。 被调度的函数肯定是异步执行的&#xff0c;它类似于一种“软件中断”&am…

ci-cd的流程

1、项目在gitlab上&#xff0c;从gitlab上使用git插件获取源码&#xff0c;构建成war包&#xff0c;所以使用tomcat作为运行环境 发布 &#xff1a;使用maven插件发布&#xff0c;使用ssh连接。

TSINGSEE视频智能分析系统AI算法针对遛狗不拴绳行为的监管方案

一、背景与需求 近期&#xff0c;一则恶犬咬伤女童的新闻上了热搜&#xff0c;因为狗主人没有给狗拴绳&#xff0c;导致小区内一女童被大型犬撕咬&#xff0c;女童全身多处咬伤&#xff0c;已入院治疗。该新闻曝出后立刻引发社会关注。遛狗不拴绳行为也再一次引发热议。因为狗主…

Linux环境下安装人大金仓数据库

人大金仓产品简介 金仓数据库管理系统[简称:KingbaseES]是北京人大金仓信息技术股份有限公司&#xff08;简称人大金仓&#xff09;自主研发的、具有自主知识产权的商用关系型数据库管理系统&#xff08;DBMS&#xff09;。该产品面向事务处理类应用&#xff0c;兼顾各类数据分…

浅谈前端出现率高的设计模式

目录 六大原则&#xff1a; 23 种设计模式分为“创建型”、“行为型”和“结构型” 前端九种设计模式 一、创建型 1.构造器模式&#xff1a;抽象了对象实例的变与不变(变的是属性值&#xff0c;不变的是属性名) 2. 工厂模式&#xff1a;为创建一组相关或相互依赖的对象提…

scss 实用教程

变量 $ 定义变量 $link-color: blue;变量名可以与css中的属性名和选择器名称相同 使用变量 a {color: $link_color; }$highlight-border: 1px solid $link_color;中划线和下划线相互兼容&#xff0c;即中划线声明的变量可以使用下划线的方式引用&#xff0c;反之亦然。 $li…