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


    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所需的依赖

    1. <!--Spring Cloud Alibaba微服务组件的依赖-->
    2. <dependency>
    3. <groupId>com.alibaba.cloud</groupId>
    4. <artifactId>spring-cloud-alibaba-dependencies</artifactId>
    5. <version>2.1.0.RELEASE</version>
    6. <type>pom</type>
    7. <scope>import</scope>
    8. </dependency>

           

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

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

     

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

            page中的配置文件

            application.properties

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

            application.yml

    1. spring:
    2. cloud:
    3. nacos:
    4. discovery:
    5. server-addr: 127.0.0.1:8848
    6. hystrix:
    7. command:
    8. default:
    9. circuitBreaker:
    10. # 强制打开熔断器,如果该属性设置为true,强制断路器进入打开状态,将会拒绝所有的请求,默认false关闭的
    11. forceOpen: false
    12. # 触发熔断错误比例阈值,默认值50%
    13. errorThresholdPercentage: 50
    14. # 熔断后休眠时长,默认值5秒
    15. sleepWindowInMilliseconds: 3000
    16. # 熔断触发最小请求次数,默认值是20
    17. requestVolumeThreshold: 2
    18. execution:
    19. isolation:
    20. thread:
    21. # 熔断超时设置,默认为1秒
    22. timeoutInMilliseconds: 2000
    23. # Spring Boot中暴露健康检查等断点接⼝
    24. management:
    25. endpoints:
    26. web:
    27. exposure:
    28. include: "*"
    29. # 暴露健康接⼝的细节
    30. endpoint:
    31. health:
    32. show-details: always
    33. # 针对的被调⽤⽅微服务名称,不加就是全局⽣效
    34. leq-service-product:
    35. ribbon:
    36. # 请求连接超时时间
    37. ConnectTimeout: 2000
    38. # 请求处理超时时间
    39. ReadTimeout: 10000
    40. # 对所有操作都进⾏重试
    41. OkToRetryOnAllOperations: true
    42. #
    43. MaxAutoRetries: 0 # 对当前选中实例重试次数,不包括第⼀次调⽤
    44. MaxAutoRetriesNextServer: 0 # 切换实例的重试次数
    45. NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule # 负载策略调整
    46. # 开启Feign的熔断功能
    47. feign:
    48. hystrix:
    49. enabled: true # true 开启Feign中继承Hystrix 熔断器功能
    50. compression:
    51. request:
    52. enabled: true # 默认不开启
    53. mime-types: text/html,application/xml,application/json # 设置压缩的数据类型,设置为默认值
    54. min-request-size: 2048 # 设置触发压缩的⼤⼩下限,2048为默认值
    55. response:
    56. enabled: true # 默认不开启

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

             6.访问查询端口的接口

    http://localhost:9100/page/getPort

     

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

  • 相关阅读:
    vernemq 一个可用的入门指南之一:Mac下的安装及使用,使用MQTTX访问verneMQ
    将json-bigint处理为数值分区数组的字段全部自动转为字符串
    钉钉h5微应用调试 整理
    【JS实战案例汇总——不定时更新版】
    word文档损坏不可避免的一些情况
    成都理工大学_Python程序设计_第4章
    没学好Netty,明年拿什么和别人竞争?这份Netty实战送给你
    volatile为什么无法保证原子性
    C#对图片Image转换为Bitmap并解析图片中的条码
    什么是应用性能管理(APM)
  • 原文地址:https://blog.csdn.net/weixin_68926017/article/details/131730813