Nacos服务注册和配置中心(Config,Eureka,Bus)1

news2024/11/24 17:57:44

SCA(Spring Cloud Alibaba)核心组件

        Spring Cloud是若干个框架的集合,包括spring-cloud-config、spring-cloud-bus等近20个子项目,提供了服务治理、服务网关、智能路由、负载均衡、断路器、监控跟踪、分布式消息队列、配置管理等领域的解决方案,Spring Cloud Alibaba可以集成Zuul、Gateway等网关组件,也可集成Ribbon、OpenFeign等组件


开源组件

        Nacos:一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。
        Sentinel:把流量作为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。
        RocketMQ:开源的分布式消息系统,基于高可用分布式集群技术,提供低延时的、高可靠的消息发布与订阅服务。
        Dubbo:这个就不用多说了,在国内应用非常广泛的一款高性能Java RPC框架。
        Seata:阿里巴巴开源产品,一个易于使用的高性能微服务分布式事务解决方案。
        Arthas:开源的Java动态追踪工具,基于字节码增强技术,功能非常强大


商业化组件

         Alibaba Cloud ACM:一款在分布式架构环境中对应用配置进行集中管理和推送的应用配置中心产品。(Config,Nacos)

        Alibaba Cloud OSS:阿里云对象存储服务(Object Storage Service,简称OSS),是阿里云提供的云存储服务。
        Alibaba Cloud SchedulerX:阿里中间件团队开发的一款分布式任务调度产品,提供秒级、精准的定时(基于Cron表达式)任务调度服务。

Nacos(Dynamic Naming and Configuration Service):

        是阿里巴巴开源的一个针对微服务架构中服务发现、配置管理和服务管理的平台

        功能特性
                服务发现与健康检查。
                动态配置管理。
                动态DNS服务。
                服务和元数据管理(管理平台的角度,Nacos也有一个UI页面,可以看到注册的服务及其实例信息[元数据信息]等),动态的服务权重调整、动态服务优雅下线,都可以去做

        保护阈值可以设置为0-1之间的浮点数,它其实是一个比例值(当前服务健康实例数/当前服务总实例数),防止雪崩效应,牺牲了一些请求,保证了整个系统的一个可用

      

        1.下载安装包 https://github.com/alibaba/nacos

        2.将压缩包解压到任意非中文目录下,进到bin目录启动nacos

         3.在浏览器访问该网址,我们可以看到nacos的可视化窗口

http://10.48.185.7:8848/nacos/index.html

        4.在主项目中导入nacos所需的依赖

            <!--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>

       

        5.在所需要微服务项目中导入nacos客户端所需的依赖,将原来rureka,bus,config的依赖注释掉,在nacos中整合了这些组件

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

 

        将配置文件中不需要的配置注释掉,类中相应的注解也需要注释掉,并添加nacos的服务地址(product生产中的)

        page中的配置文件

        application.properties

spring.application.name=leq-service-page
server.port=9100
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.username=root
spring.datasource.password=0216
spring.datasource.url=jdbc:mysql://localhost:3306/leq_sc?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC

        application.yml

spring:
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848 

hystrix:
  command:
    default:
      circuitBreaker:
        # 强制打开熔断器,如果该属性设置为true,强制断路器进入打开状态,将会拒绝所有的请求,默认false关闭的
        forceOpen: false
        # 触发熔断错误比例阈值,默认值50%
        errorThresholdPercentage: 50
        # 熔断后休眠时长,默认值5秒
        sleepWindowInMilliseconds: 3000
        # 熔断触发最小请求次数,默认值是20
        requestVolumeThreshold: 2
      execution:
        isolation:
          thread:
            # 熔断超时设置,默认为1秒
            timeoutInMilliseconds: 2000


# Spring Boot中暴露健康检查等断点接⼝
management:
  endpoints:
    web:
      exposure:
        include: "*"
  # 暴露健康接⼝的细节
  endpoint:
    health:
      show-details: always

# 针对的被调⽤⽅微服务名称,不加就是全局⽣效
leq-service-product:
  ribbon:
    # 请求连接超时时间
    ConnectTimeout: 2000
    # 请求处理超时时间
    ReadTimeout: 10000
    # 对所有操作都进⾏重试
    OkToRetryOnAllOperations: true
    #
    MaxAutoRetries: 0 # 对当前选中实例重试次数,不包括第⼀次调⽤
    MaxAutoRetriesNextServer: 0 # 切换实例的重试次数
    NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule # 负载策略调整

# 开启Feign的熔断功能
feign:
  hystrix:
    enabled: true # true 开启Feign中继承Hystrix 熔断器功能
  compression:
    request:
      enabled: true # 默认不开启
      mime-types: text/html,application/xml,application/json # 设置压缩的数据类型,设置为默认值
      min-request-size: 2048 # 设置触发压缩的⼤⼩下限,2048为默认值
    response:
      enabled: true # 默认不开启



        5. 重启这三个修改的微服务,要确保我们的nacos启动

         6.访问查询端口的接口

http://localhost:9100/page/getPort

 

         可以看到我们的熔断和负载均衡还是生效的,前面熔断的依赖我们已经注释掉了,但是熔断和负载均衡还是可以生效的,这更加证明了nacos的强大

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

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

相关文章

Kafka 深度剖析

1、应用场景 1.1 kafka场景 Kafka最初是由LinkedIn公司采用Scala语言开发&#xff0c;基于ZooKeeper&#xff0c;现在已经捐献给了Apache基金会。目前Kafka已经定位为一个分布式流式处理平台&#xff0c;它以 高吞吐、可持久化、可水平扩展、支持流处理等多种特性而被广泛应用…

Docker安装SonarQube

1.查看稳定版本的SonarQube&#xff0c;注意7.9之后的版本不在支持Mysql。使用PostgreSQL Download | SonarQube | Sonar 2.拉取PostgreSQL和SonarQube docker pull postgres docker pull sonarqube:9.9-community community代表社区版 3.在下面的目录下创建docker-compose…

云计算运维工程师简历怎么写?带简历案例

求职岗位&#xff1a;云计算运维工程师 职位要求&#xff1a; 1&#xff09;熟悉Linux操作系统的和管理与维护&#xff0c;有Linux操作系统性能监控和优化工作经验&#xff1b; 2&#xff09;熟悉日常服务器的数据备份、迁移、扩容等技术工作&#xff0c;能够解决相应运维工作…

H3C-Cloud Lab实验-NAT实验

实验拓扑图&#xff1a; IP地址规划&#xff1a; 实验需求&#xff1a; 1. 按照图示配置 IP 地址 2. 私网 A 通过 R1 接入到互联网&#xff0c;私网 B 通过 R3 接入到互联网 3. 私网 A 内部存在 Vlan10 和 Vlan20&#xff0c;通过 R1 上单臂路由访问外部网络 4. 私网 A 通过…

(数学)+(二分)

cf826-C. Place for a Selfie 给n条直线和m条开口向上的抛物线&#xff0c;问对于每条抛物线来说&#xff0c;存不存在和它不相交的直线&#xff0c;存在的话&#xff0c;输出直线的斜率。 直线与抛物线联立&#xff0c;(b-k)^2-4ac<0则不相交&#xff0c;|b-k|越小越好&…

操作系统16:文件共享和文件保护

目录 1、文件共享 &#xff08;1&#xff09;基于有向无循环图实现文件共享 1.1 - 有向无循环图 DAG(Directed Acyclic Graph) 1.2 - 利用索引结点 &#xff08;2&#xff09;利用符号链接实现文件共享 2、文件保护 &#xff08;1&#xff09;保护域(Protection Domain)…

自动化测试需要学什么【附学习路线和学习教程】

目录 一、接口自动化测试 1、HTTP和HTTPS协议 2、接口文档 3、接口测试工具Jmeter和Postman 5、总结 二、UI自动化测试 1 、Web自动化测试 1.1 Selenium 1.3 总结 2 App自动化测试 2.1 应该选择哪款工具&#xff1f; 三、持续集成 四、总结 随着自动化测试行业的薪…

关于nginx学习记录(二)

系列文章目录 第一章 Nginx 学习入门——Nginx的概述及安装 第二章 Nginx学习入门——Nginx常用命令及nginx.conf配置了解 目录 系列文章目录 一、Nginx 操作常用的命令 二、Nginx 配置文件 1. nginx配置文件位置:/usr/local/nginx/conf 2.nginx.conf配置文件组成: ⑴ 全…

ASL/CS系列音视频转换方案芯片,Typec拓展坞方案芯片

音视频单转方案芯片&#xff1a; CS5565 Typec转HDMI 8K 60HZ转换方案 可替代RTD2173 PS196 CS5801 HDMI转eDP/DP方案 可替代LT6711 CS5212 DP转VGA转换方案 可PIN TO PIN 替代RTD2166 CS5211 E…

Python+Appium自动化测试之元素等待方法与重新封装元素定位方法

目录 一&#xff0c;元素等待方法 1&#xff0c;强制等待 2&#xff0c;隐式等待 3&#xff0c;显式等待 二&#xff0c;重新封装元素定位方法 在appium自动化测试脚本运行的过程中&#xff0c;因为网络不稳定、测试机或模拟器卡顿等原因&#xff0c;有时候会出现页面元素加…

python_day8_综合案例

综合案例&#xff0c;全球GDP排行榜 1、知识点补充&#xff1a;sort()方法 sort()方法&#xff1a; 列表.sort(key选择排序依据的函数,reverseTrue|False) my_list [[a, 33], [b, 55], [c, 11]]def choose_sort_key(element):return element[1] # 列表中每个元素传进来&am…

动态规划01背包之494 目标和(第10道)

题目&#xff1a; 给你一个整数数组 nums 和一个整数 target 。 向数组中的每个整数前添加 或 - &#xff0c;然后串联起所有整数&#xff0c;可以构造一个 表达式 &#xff1a; 例如&#xff0c;nums [2, 1] &#xff0c;可以在 2 之前添加 &#xff0c;在 1 之前添加 -…

C语言知识扫盲

文章目录 1,各种类型所占字节数2,main函数是可以传入参数的3,C语言中extern的用法4,gettop()函数5&#xff0c;C/C中枚举类型enum使用 1,各种类型所占字节数 类型16位32位64位char111short int222int244unsigned int244float444double888long448long long888unsigned long448 …

QUIC协议原理分析

Quic 相比现在广泛应用的 http2tcptls 协议有如下优势 [2]&#xff1a; 减少了 TCP 三次握手及 TLS 握手时间。改进的拥塞控制。避免队头阻塞的多路复用。连接迁移。前向冗余纠错。 队头阻塞 队头阻塞主要是 TCP 协议的可靠性机制引入的。TCP 使用序列号来标识数据的顺序&am…

学C的第二十七天【指针的进阶(三)】

相关代码gitee自取&#xff1a;C语言学习日记: 加油努力 (gitee.com) 接上期&#xff1a; 学C的第二十六天【指针的进阶&#xff08;二&#xff09;】_高高的胖子的博客-CSDN博客 复习巩固&#xff1a; 数组名&#xff1a; 数组名是数组首元素的地址&#xff0c; 但是有两个…

数据结构与算法:10种常见算法

前言 本文主要讲解10种常见算法 数据结构与算法文章列表 数据结构与算法文章列表: 点击此处跳转查看 目录 1 二分查找算法 二分查找&#xff08;Binary Search&#xff09;是一种在有序数组中查找目标值的常用算法。它通过将目标值与数组中间元素进行比较&#xff0c;可以快…

Cesium被接入数字孪生系统后会产生怎样的改变?

众所周知&#xff0c;Cesium凭借其开源免费的特点一直垄断着整个三维GIS的生态系统&#xff0c;但是随着数字孪生技术的发展以及各项新需求的不断涌现&#xff0c;Cesium与数字孪生系统相结合的潜力也逐渐凸显。 一般而言&#xff0c;Cesium如果想要升级视效就需要去用CesiumF…

基于springboot的智慧养老系统

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容&#xff1a;毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 项目介绍…

常用的前端可视化Web组态工具

前言 随着创新技术驱动工业物联网不断发展&#xff0c;设备联网所产生的多样化数据&#xff0c;在边缘端与云端进行大数据分析&#xff0c;成为工业应用场景数字化的需求。跨系统可通用&#xff0c;不受硬件限制达成无缝整合&#xff0c;监控组态软件SCADA成为物联网时代建构出…

Unity游戏源码分享-Unity手游火柴忍者游戏StickmanDojo

Unity游戏源码分享-Unity手游火柴忍者游戏StickmanDojo 项目地址&#xff1a;https://download.csdn.net/download/Highning0007/88050234