Spring Cloud的基本应用

news2024/11/28 14:52:41

        上篇文章我们的eureka的集群已经搭建完毕,但是我们还没有开始使用,之前我们的page访问的方法是直接写死的,现在我们就可以改为集群的方式来写

        @Autowired//注册中心对应的客户端对象
      private DiscoveryClient discoveryClient;

      
      @RequestMapping("query/{id}")
      public Products findById(@PathVariable Integer id){
          //获取Eureka中注册的leq-service-product实例集合
          List<ServiceInstance> services = discoveryClient.getInstances("leq-service-product");
          //获取实例集合中的第一个对象(IP,PORT,NAME)
          ServiceInstance service = services.get(0);
          //获取ip和端口
          String host = service.getHost();
          int port = service.getPort();
          String url="http://"+host+":"+port+"/product/findById/"+id;
          System.out.println(url);
          return restTemplate.getForObject(url,Products.class);
      }

        这里注意DiscoveryClient的导包

import org.springframework.cloud.client.discovery.DiscoveryClient;

        写完后重启我们的page项目,重启后访问我们的查询接口,还是正在使用的 

 

 Eureka元数据详解

                标准元数据:主机名,IP地址,端口号
                自定义元数据:可以使用eureka.instance.metadata-map配置,符合key:value存储格式

        1.在生产项目中修改核心配置文件

#自定义元数据
eureka.instance.metadata-map.username: xm
eureka.instance.metadata-map.password: 123456
eureka.instance.metadata-map.telphone: 186666666

        2.在page的控制层编写获取的方法并调用

  //获取Eureka自定义的元数据信息
    public void getMetaDataMap(List<ServiceInstance> serviceInstances){
        for (ServiceInstance serviceInstance : serviceInstances) {
            Map<String, String> metadata = serviceInstance.getMetadata();
            Set<String> keys = metadata.keySet();
            for (String key : keys) {
                String value = metadata.get(key);
                System.out.println("key:"+key+",value:"+value);
            }
        }
    }

        3.重启这两个项目,重新访问查询的接口,可以看到元数据信息,有的时候会全部打印,有的时候只会打印端口号

http://localhost:9100/page/query/1

        4.客户端

        我们也可以在核心配置文件中定义一些配置,当然我配置的这些都是默认的,如果需要可以自己进行更改,默认的是最合适的

#向Eureka服务中心集群注册服务
#租约续约时间间隔,默认为30秒,每隔30秒向注册中心汇报心跳
eureka.instance.lease-renewal-interval-in-seconds=30
#没有心跳后等待90秒,超过90秒了Eureka Server会将服务从列表移除
eureka.instance.lease-expiration-duration-in-seconds=90

#向Eureka服务中心集群服务
#每隔30秒拉取一次服务列表
eureka.client.registry-fetch-interval-seconds=30

        5.服务端

                服务下线:当服务正常关闭时,会发送服务下线的Resu请求给Eureka_server,服务中心接收到请求后,将该服务置为下线状态

                失效剔除:定时进行检查,发现实例在一定时间内没有收到心跳,则会注销此实例

                自我保护机制:使Eureka集群更加的健壮,稳定的运行
                 在15分钟内超过85%的客户端节点都没有正常的心跳,那么Eureka就认为客户端与注册中心出现了网络故障,Eureka Server自动进入自我保护机制

                但我们访问服务中心的时候报错是因为自我保护机制,等一会重新刷新就会消息
                    1).Eureka Server不再从注册列表中移除,因为长时间没收到心跳而应该过期的服务。
                    2).Eureka Server仍然能够接受新服务的注册和查询请求,但是不会被同步到其它节点上,保证当前节点依然可用。
                    3).当网络稳定时,当前Eureka Server新的注册信息会被同步到其它节点中。

 

        也可以核心配置文件中关闭自我保护机制,但是不建议

#关闭自我保护机制(不建议关闭)
#eureka.server.enable-self-preservation=false

 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于51单片机的智能垃圾桶

功能&#xff1a; 本实例是基于51单片机为核心的智能垃圾桶仿真&#xff0c;主要由51单片机最小系统、L298N电机驱动电路、开盖电机、超声波传感器、红外测速模块、直流电机、红外人体传感器、LCD1602显示屏、震动传感器、按键电路构成。 1.系统的传感器主要用人体感应和机体震…

订单结算页+下单业务

一、订单结算页 1.业务分析 (1) 获取用户收货地址信息 一般的收货地址都是多个&#xff0c;使用时选中一个&#xff0c;所以收货地址使用List集合封装 (2)获取购物车商品信息 购物车商品也是多个&#xff0c;使用List集合封装 (3)查询商品库存 查询每个商品是否有库存&#…

VSCode安装及环境配置详细教程(windows版本)

目录 安装VSCode 安装Python 检查环境变量 检查Python是否能运行 VSCode环境配置 切换成简体中文 添加Python插件 编写代码运行 &#xff01;&#xff01;请先在官网下载Python和VSCode安装包&#xff0c;保存至本地 Python官网&#xff1a;https://www.python.org/do…

多元回归预测 | Matlab基于灰狼算法(GWO)优化高斯过程回归(GWO-GPR)的数据回归预测,matlab代码,多变量输入模型

文章目录 效果一览文章概述部分源码参考资料效果一览 文章概述 多元回归预测 | Matlab基于灰狼算法(GWO)优化高斯过程回归(GWO-GPR)的数据回归预测,matlab代码,多变量输入模型 评价指标包括:MAE、RMSE和R2等,代码质量极高,方便学习和替换数据。要求2018版本及以上。 部分源…

APP测试要点有哪些?

我们日常购物、旅游、支付等活动都离不开手机&#xff0c;由此衍生了很多APP。 比如每天使用频率非常高的微信、支付宝、微博、抖音、王者荣耀等等。 APP测试主要进行功能测试、性能测试、自动化测试、安全性测试、兼容性测试、专项测试。 01、APP测试流程 APP测试流程与web测…

软考A计划-系统集成项目管理工程师-项目进度管理-上

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例点击跳转>软考全系列 &#x1f449;关于作者 专注于Android/Unity和各种游戏开发技巧&#xff…

python glob库glob函数返回为空时

这里的max函数会报空序列的错误&#xff0c;原因就是glob.glob函数读取不到文件的问题&#xff0c;推测是脚本所在文件夹与传入的文件夹地址不对造成的&#xff0c;比如C&#xff1a;/tor/data/jiaoben.py,而文件所在文件夹是C&#xff1a;/tor/biaobei/

自媒体13条监管新规来了:做自媒体还有前途吗?

我是卢松松&#xff0c;点点上面的头像&#xff0c;欢迎关注我哦&#xff01; 各位自媒体人&#xff0c;大家一定要逐条逐句&#xff0c;认真研读&#xff0c;领会精神&#xff0c;掌握要求&#xff0c;规范运营好自己的账号&#xff0c;切莫越界踩线&#xff0c;多为广大网友…

邮箱推荐和(警告)使用qq邮箱的坏处

qq如果发布违规消息&#xff0c;比如群聊无意发布会导致你账号封号&#xff0c;而且随着次数增多&#xff0c;会导致永久封号&#xff0c;你的qq音乐&#xff0c;qq浏览器&#xff0c;qq游戏&#xff0c;{qq邮箱}&#xff0c;全部会无法登录&#xff0c;比如需要登陆邮箱验证码…

初学者也能轻松掌握的MQL4编程入门指南

MQL4编程是外汇交易中极为重要的一部分&#xff0c;掌握MQL4编程可以帮助交易者快速创建自己的交易算法&#xff0c;进而提高交易效率和盈利水平。但是对于初学者来说&#xff0c;MQL4编程可能会显得有些困难。本篇文章就是为初学者准备的&#xff0c;针对MQL4编程进行入门指导…

对RAM和ROM的理解

什么是RAM、ROM&#xff1f; RAM(Random Access Memory)随机存取存储器 ROM(Read Only Memory)只读存储器 先记住一件事 RAM断电将失去数据 ROM断电仍会保留数据 RAM、ROM、Flash、内存条、硬盘、SD卡到底怎么归类&#xff1f; 我们先来看下计算机的原理和计算机的需求 …

【Leetcode】59. 螺旋矩阵II

给定一个正整数 n&#xff0c;生成一个包含 1 到 n^2 所有元素&#xff0c;且元素按顺时针顺序螺旋排列的正方形矩阵。 示例: 输入: 3 输出: [ [ 1, 2, 3 ], [ 8, 9, 4 ], [ 7, 6, 5 ] ] 面试频率较高 1. 先定义一个空矩阵 2. startx表示行起始 starty表示列起始 3. 左闭右开…

信息安全-加密技术

一、概念 加密是利用数学方法将明文(plain text)转换为密文(cipher),从而达到保护数据的目的。 加密是一个使信息只对正确的接收者可读,其他用户看到的是乱码信息的过程。 加密技术作用 加密技术在网络上的作用就是防止私有化信息在网络上被拦截和窃取。通过加密可保…

性能测试:Jmeter-Beanshell请求加密实例

前言 进行性能测试时&#xff0c;有可能遇到一种场景&#xff1a;接口请求由于安全问题&#xff0c;需要进行加密发送。 这种场景下&#xff0c;使用Jmeter实现性能测试&#xff0c;则也需要使用同样的加密规则发送请求报文。 要实现此类性能测试有几种策略&#xff1a; 直…

纹理环绕方式

一般而言&#xff0c;纹理坐标范围(0,0)到(1,1)&#xff0c;若设置超出该范围&#xff0c;则会按照如下环绕方式处理。 设置纹理参数的函数原型为&#xff1a; 坐标信息&#xff1a; float vertices[] { // positions // colors // texture coords 0.9f, 0.9f, 0.0f, 1.0f,…

线上后端接口响应过慢排查记录_MySQLthread cache命中率过低导致的接口响应慢

文章目录 问题现象初步排查调整临时解决措施问题二次定位原因分析为什么会出现异常 问题现象 9点多&#xff0c;运营同学反馈系统某模块业务响应很慢&#xff0c;登录系统查看&#xff0c;后端接口响应耗时很久&#xff0c;需要好几秒&#xff1b; 查看对应的服务器资源情况&a…

纸箱视觉定位抓取软硬件方案

【检测目的】 产品定位抓取 【客户要求】 精度为0.1mm 【拍摄与处理效图一】 【拍摄与处理效图二】 【拍摄与处理效图三】 【拍摄与处理效图四】 【拍摄与处理效图五】 【实验原理及说明】 【实验原理及说明】 【实验原理及说明】 【方案评估】 根据目前的图像和处理结果来看…

数据结构与算法——数据结构有哪些,常用数据结构详解

数据结构是学习数据存储方式的一门学科&#xff0c;那么&#xff0c;数据存储方式有哪几种呢&#xff1f;下面将对数据结构的学习内容做一个简要的总结。 数据结构大致包含以下几种存储结构&#xff1a; 线性表&#xff0c;还可细分为顺序表、链表、栈和队列&#xff1b;树结…

云计算的学习(二)

二、计算虚拟化 1.计算虚拟化的介绍 1.1虚拟化简介 a.什么是虚拟化 将物理设备逻辑化&#xff0c;转化成文件或者文件夹&#xff0c;这个文件或文件夹一定包含两个部分&#xff1a;一部分用于记录设备配置信息&#xff0c;另一部分记录用户数据。 虚拟机摆脱了服务器的禁锢…

Centos7安装go语言环境

Centos7安装go语言环境 文章目录 下载解压缩配置变量验证已安装 下载 从go语言官网下载对应的二进制存档包 wget https://dl.google.com/go/go1.12.linux-amd64.tar.gz解压缩 解压缩到/usr/local&#xff0c;将自动在其中创建一个Go树 /usr/local/go tar -C /usr/local -xz…