zoukankan      html  css  js  c++  java
  • springCloud 常用组件总结

    本文浅谈只是对我自己初期认识这spring cloud的一个笔记。

           微服务是一种架构风格和一种应对业务的架构策略。实现这种的技术方式很多。本文主要说spring cloud。

    spring cloud主要包括一下几个组件:

     1,eureka 注册中心。

       1)一个eureka服务也是客户端,可以自己注册自己,也可以相互注册形成高可用集群。

       2)eureka是客户端发现服务,客服端自己过滤,和选择负载均衡策略。

               3)eureka与注册服务器保持通信是通过心跳检测机制。

    2,ribbon负载均衡器,三个方法核心。

              1)获取所有服务列表。

       2)rule。选择服务器规则(默认轮询)

               3)监听可用服务列表

    3,通讯方式。

               1)restTempte 请求

       2)feign 请求。

     4,config 统一配置中心。

               1)config-server从远端git服务器拉取配置到本地的git.

        2) 调用端config-client,在注册中心获取config-server服务。

        注意把application.yml改成bootstrap.yml。

        3)获取方式 ,看日志或者文档(lable/name-dev.yml)

     5,bus动态配置刷新。用于config自动刷新。

        1)config-server和config-client配置bus和MQ。

        2) 远端git服务配置 webhook回调bus.

        3)使用就在pom.xml配置bus的maven。

    6,zuul服务网管。

       1)性能比nginx差。

       2)路由+过滤器 =zuul

       3) 核心是一系列的过滤器。

                   前置(pre)

        后置(post)

           路由(Route)

        错误(Error)

                4)限流(RateLimiter)令牌算法,放在fiter优先级最高。也可以配合nginx分流用。

                5)可以鉴权和统一跨域配置(nginx也可以做跨域)。

     7,hystrix服务容错。服务之间调用会有各种问题。这个组件用在所有调用方。

      1)为服务器提供容错保护。在资源不够或者业务压力大的时候使用优先核心服务。主要四点作用

        服务降级

        依赖隔离(线程池隔离)

        服务熔断

        监控(hystrix-dashboard)

      2)使用:

        a,通过hystrixCommand注解指定请求。

        b,fallbavkMethed实现降级后的实现逻辑。

           3) 超时降级默认1秒。所有要根据具体业务,和调用链具体配置。

      4)服务熔断主要四个配置。

        设置熔断为true

        请求数(统计单位)

        熔断时间(这段时间请求都执行fallback)

        错误百分比

      5)dashboard监控要配合使用。监控熔断,界面监控。

    8,dashboard服务监控界面。给hystrix提供界面监控。

    9,sleuth链路监控。主要是唯一标识对应一个请求,和一个请求的服务。

          1,日志打印唯一请求标识。

        2,配置把数据推向zipkin

       3,抽样百分比(开发环境设置为1)

    10,zipkin链路监控可视化。

      1,主要界面可视化查看链路调用情况。

      2,使用的时候,一般pom.xml配置zipkin,包含了sleuth。

    *******************************

    因为spring cloud还是有点巨大,东西比较多。建议根据业务需要团队人数才采用这个架构。

        

        

        

         

  • 相关阅读:
    mysql 统计数据库基本资源sql
    java ffmpeg (Linux)截取视频做封面
    shutil模块
    json模块与pickle模块
    hashlib模块
    sys模块
    os模块
    paramiko模块
    Python reduce() 函数
    瀑布流展示图片
  • 原文地址:https://www.cnblogs.com/chen-msg/p/10810735.html
Copyright © 2011-2022 走看看