nacos--基础--5.2.2--集成--SpringCloud--服务注册,发现,负载均衡

news2024/11/28 6:38:45

nacos–基础–5.2.2–集成–SpringCloud–服务注册,发现,负载均衡


代码位置

https://gitee.com/DanShenGuiZu/learnDemo/tree/master/nacos-learn

1、介绍

  1. 服务发现客户端 从服务发现中心获取服务列表
  2. 服务消费 通过负载均衡获取服务地址

2、添加依赖

基于nacos–基础–springboot集成–01–前置 的代码进行操作

2.1、nacos-learn 新增依赖

在这里插入图片描述

pom.xml 整体如下

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>fei.zhou</groupId>
    <artifactId>nacos-learn</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>pom</packaging>


    <dependencyManagement>
        <dependencies>
            <!-- spring-boot 的依赖-->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>2.1.3.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <!-- spring-cloud 的依赖-->
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Greenwich.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <!-- spring-cloud-alibaba 的依赖-->
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>2.1.0.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

</project>

2.2、生产者,消费者 新增 服务发现依赖

  
<!--服务发现的客户端,
1、将自己的地址注册到服务发现中心
2、从服务发现中心获取服务列表-->
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
  

3、服务注册(生产者)

3.1、修改配置

  1. 配置nacos服务发现相关的配置
  2. 修改完配置,重启服务
server:
  port: 8081

spring:
  application:
    name: nacos-restful-provider #服务名
  cloud:
    nacos:
      discovery:
        server-addr: 192.168.187.171:8848  #服务发现中心地址

3.2、查看

在这里插入图片描述

  1. 服务名:每个服务在服务注册中心的标识
  2. 实例数:
    1. 就是同一个服务名,注册了多少个实例
    2. 每个实例都有自己的IP和端口

4、服务发现(消费者)

4.1、修改配置

配置nacos服务发现相关的配置

在这里插入图片描述

server:
  port: 8088

##配置服务提供方的地址(ip和端口)
#provider:
#  address: 127.0.0.1:8081
 
spring:
  application:
    name: nacos-restful-consumer #服务名
  cloud:
    nacos:
      discovery:
        server-addr: 192.168.187.171:8848  #服务发现中心地址

4.2、修改Controller中远程调用的代码



@RestController
public class ConsumerController {
    
    // 要进行远程,需要知识提供方的ip和端口
    // @Value("${provider.address}")
    // private String provider;
    @Autowired
    LoadBalancerClient loadBalancerClient;
    // 指定服务名
    String serviceId = "nacos-restful-provider";
    
    @GetMapping(value = "/consumer/service")
    public String service() {
        // 远程调用
        RestTemplate restTemplate = new RestTemplate();
        // String result = restTemplate.getForObject("http://"+provider+"/provider/service", String.class);
        // 发现一个地址


        ServiceInstance serviceInstance = loadBalancerClient.choose(serviceId);

        System.out.println("服务注册中心的服务实例:"+serviceInstance.getUri());
        // //获取一个http://开头的地址,包括ip和端口
        URI uri = serviceInstance.getUri();

        String result = restTemplate.getForObject(uri + "/provider/service", String.class);
        return "消费者 执行服务 |" + result;
    }
    
}


4.3、查看

查看注册中心

在这里插入图片描述

执行请求

在这里插入图片描述

查看消费者日志

在这里插入图片描述

5、负载均衡

  1. 2个生产者
  2. 1个消费者

5.1、启动2个生产者

在这里插入图片描述

在这里插入图片描述

5.2、消费者配置轮询策略

在这里插入图片描述

# 生产者服务,配置负载均衡
nacos-restful-provider:
  ribbon:
    # 轮询
    NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RoundRobinRule

5.3、测试

http://localhost:8088/consumer/service

在这里插入图片描述

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

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

相关文章

jdk安装配置教程2022年12月最新版

这两天配了好几遍jdk&#xff0c;删了又下下了又删&#xff0c;总结一下&#xff0c;也算有点收获 1. 下载&#xff1a;官网Java Downloads | Oracle jdk1.8在下面&#xff0c;上面是最新的jdk17和jdk19 2.下载完成后&#xff0c;一路安装解压&#xff08;我撞在了C盘&#…

IfcOpenShell简明教程【BIM】

IFC 是用于存储 BIM 数据的 ISO 标准格式。 IfcOpenShell 是一个包含 Python 库的项目&#xff0c;可以用来解析 IFC 文件。 1、下载安装IfcOpenShell 首先&#xff0c;我们需要下载并安装 IfcOpenShell python。 目前没有 IfcOpenShell 的 API 文档&#xff0c;但考虑到它主…

Vector源码解析

Vector源码解析 简介 Vector 是一个古老的 线程安全(内部的核心方法都加了synchronized) 的容器&#xff0c;在 JDK1.0 时就已经存在&#xff0c;到如今已经很少使用。 基本结构与 ArrayList 类似&#xff0c;可以认为是线程安全版本的 ArrayList&#xff0c;但因为 Vector …

BCN-PEG-FITC 环丙烷环辛炔聚乙二醇荧光素 BCN-PEG-荧光素

双环[6,1,0]壬炔 (BCN) &#xff08;环丙烷环辛炔&#xff09;可以通过无铜的点击化学与叠氮化物标记的分子或生物分子反应生成稳定的三氮唑连接。 产品名称 BCN-PEG-FITC 环丙烷环辛炔聚乙二醇荧光素 中文名称 环丙烷环辛炔聚乙二醇荧光素 英文名称 BCN-PEG-FITC 分子…

基于Android的二维码识别系统的研究 与实现

XXXX 本科生毕业设计(论文) 学院(系)&#xff1a; XX 专 业&#xff1a; XX 学 生&#xff1a; XX 指导教师&#xff1a; XX XX 完成日期 年 月 XXX本科生毕业设计&#xff08;论文&#xff09; 基于Android的二维码识别系统的研究 与实现 Research and Implementati…

防重放、防篡改攻击的实现(Java版)

文章目录一、问题描述1、什么是重放攻击、篡改攻击&#xff1f;2、如何模拟重放攻击、篡改攻击&#xff1f;2.1、重放攻击模拟方式2.2、篡改攻击模拟方式二、解决方案三、在项目中使用1、项目简介2、项目实践一、问题描述 1、什么是重放攻击、篡改攻击&#xff1f; 1、重放攻击…

【SSM框架】为集合类型属性赋值

&#x1f353;个人主页&#xff1a;个人主页 &#x1f352;系列专栏&#xff1a;SSM框架 目录 1.为集合类型属性赋值 ①为List集合类型属性赋值 ②为Map集合类型属性赋值 2.p命名空间 3.引入外部属性文件 1.为集合类型属性赋值 ①为List集合类型属性赋值 在Clazz类中添加…

中国三大主流开源Linux操作系统社区及其产品生态

作者&#xff1a;IT圈黎俊杰 操作系统是基础软件的核心&#xff0c;是科技研发必备的底层支撑产品&#xff0c;它的核心技术至今仍然由美国为代表的西方国家所掌控着。由于以前国产操作系统产业长期处于“多、小、散”的状态&#xff0c;未能建立起完善的生态、未能研发出真正好…

python笔记(一)

文章目录字节对象与字符转换动态爬虫实施辅助工具python 部分内置方法示例&#xff1a;python虚拟环境的创建与激活执行多个.py程序获取当前系统默认浏览器名称反编译小程序PC端小程序&#xff08;wxapkg&#xff09;解密&#xff1a;反编译字节对象与字符转换 data1 babc # …

计算机系统实验-BombLab

一.实验题目及目的 1.实验题目 程序运行在linux环境中。程序运行中有6个关卡&#xff08;6个phase&#xff09;&#xff0c;每个phase需要用户在终端上输入特定的字符或者数字才能通关&#xff0c;否则将会引爆炸弹。需要通过分析汇编代码&#xff0c;使用gdb调试等方式找到正…

oracle入门-19c 安装详细教程

我们知道学习一门技术&#xff0c;第一件事情就是搭建对应的环境。本教程将详细教大家如何安装oracle。 目录一、虚拟机创建二、挂载镜像、安装及系统配置三、 软件包传输四、数据库安装五、 图形化向导建库一、虚拟机创建 处理器数量根据自己的机器配置进行调整&#xff08;4 …

Android IPC机制

本文首发于个人博客 “胖蔡叨叨叨”&#xff0c;更多相关信息可点击查看《Android IPC机制》​​​​​​​ IPC IPC(Inter Process Communication) 进程间通信&#xff0c;是指系统中运行的不同进程间的信息交互过程。Android IPC通常用于应用间、或同应用不同进程间的数据通…

3分钟读懂数据可视化如何帮助企业智慧管理,提升管理水平

随着大数据时代的到来&#xff0c;企业管理的决策越来越倚重数据指标&#xff0c;通过数据指标了解公司运作的情况&#xff0c;产品生产销售情况&#xff0c;收入与支出情况等等&#xff0c;更大的作用是对商业趋势预测提供了决策依据&#xff0c;使公司提前布局未来&#xff0…

Q-Automation:基于ATX的自动化测试管理软件

Softing Q-Automation是基于ATX的自动化测试管理软件&#xff0c;用于测试电子控制单元&#xff08;ECU&#xff09;。该软件支持诊断协议层测试和诊断功能测试&#xff0c;并且只需填写Excel表格&#xff0c;即可实现半自动化测试需求&#xff0c;从而缩短了用户的测试周期。同…

2022年终Java编程技术总结

目录 00 总体脑图 第一章、基础篇 01 计算机基础 ## 1.1 操作系统 1.1.1 基本知识 略 1.1.2 常见Linux命令 目录文件内容搜索系统类网络权限cdcp/scpvi/vimfind: find . -name xxkillnetstat -anchmodlsmvcatgrep: ps -efgrep xxlsof: lsof-i:portmkdirrmtailwhereistopp…

web前端期末大作业 ——电影主题介绍 你好,李焕英 ——html+css+javascript网页设计实例

HTML实例网页代码, 本实例适合于初学HTML的同学。该实例里面有设置了css的样式设置&#xff0c;有div的样式格局&#xff0c;这个实例比较全面&#xff0c;有助于同学的学习,本文将介绍如何通过从头开始设计个人网站并将其转换为代码的过程来实践设计。 精彩专栏推荐&#x1f4…

Win11电脑蓝屏怎么办?Win11电脑蓝屏的修复方法

Win11电脑蓝屏怎么办&#xff1f;电脑蓝屏是最为常见的系统故障问题之一&#xff0c;当电脑出现蓝屏时一般分为可以开机以及无法开机的情况&#xff0c;针对这两种情况&#xff0c;下面小编分别准备了对应的解决方法&#xff0c;有需要的朋友们欢迎收藏慢慢看哦。 方法一&#…

家居类小红书达人投放总结,kol执行策略

在小红书平台上&#xff0c;许多品牌方都做了达人投放&#xff0c;但结果却反响平平&#xff0c;最后才发现是达人挑选出了问题&#xff0c;而发现这个问题的代价就是错失先机&#xff0c;也耗费大量成本来试错&#xff0c;今天为大家分享一下小红书达人投放总结以及超硬干货。…

多线程安全问题原理和4种解决办法

摘要&#xff1a;多线程访问了共享的数据,会产生线程安全问题。本文分享自华为云社区《多线程安全问题原理和解决办法Synchronized和ReentrantLock使用与区别》&#xff0c;作者&#xff1a;共饮一杯无。 线程安全问题概述 卖票问题分析 单窗口卖票一个窗口(单线程)卖100张票…

大数据学习 -- 利用Java API 将文件写入HDFS

利用API写入文件写入HDFS文件&#xff08;1&#xff09;将数据直接写入HDFS文件&#xff08;2&#xff09;将本地文件写入HDFS文件写入HDFS文件 类似于HDFS Shell里的hdfs dfs -put命令在net.zwh.hdfs包里创建WriteFileOnHDFS类 &#xff08;1&#xff09;将数据直接写入HDFS…