SpringCloud 基础知识

1.微服务

     将工程根据不同的业务规则拆分成微服务 微服务部署在不同的机器上  服务之间进行相互调用

    优点:
          1)每个服务直接足够内聚,代码容易理解
     2)开发效率高,一个服务只做一件事,适合小团队开发
     3)松耦合,有功能意义的服务。
          4)可以用不同语言开发,面向接口编程。
          5)易于第三方集成
         6)微服务只是业务逻辑的代码,不会和HTML,CSS或其他界面结合.
         7)可以灵活搭配,连接公共库/连接独立库
   缺点:
  1)分布式系统的责任性
  2)多服务运维难度加大。
  3)系统部署依赖,服务间通信成本,数据一致性,系统集成测试,性能监控
2.SpringCloud
       基于 Spring Boot 实现的 云原生应用开发工具,它为基于 JVM 的云原生应用开发中涉及的配置管理、服务发现、熔断器、智能路由、微代理、控制总线、分布式会话和集群状态管理等操作提供了一种简单的开发方式
3.SpringCloud与Dubbo
    1)Dubbo采用RPC通信协议(远程过程调用协议),SpringCloud采用基于HTTP的REST Api方式
    2).注册中心:dubbo 是 zookeeper ;springcloud 是 eureka或 zookeeper
    3)服务网关:dubbo 本身没有实现,只能通过其他第三方技术整合;springcloud 有 Zuul 路由网关,作为路由服务器,进行消费者的请求分发,springcloud 支持断路器,与 git 完美集成配置文件支持版本控制,事物总线实现配置文件的更新与服务自动装配等一系列的微服务架构要素

4.微服务常用技术

5.负载均衡

    是一种计算机技术,用来在多个计算机(计算机集群)、网络连接、CPU、磁盘驱动器或其他资源中分配负载,以达到最优化资源使用、最大化吞吐率、最小化响应时间、同时避免过载的目的;

    负载均衡(Load Balance),意思是将负载(工作任务,访问请求)进行平衡、分摊到多个操作单元(服务器,组件)上进行执行;是解决高性能,单点故障(高可用),扩展性(水平伸缩)的终极解决方案

 

6.Feign

   声明式的web service客户端,它让微服务之间的调用变得更简单了,类似controller调用service

   采用的是基于接口的注解

   整合了 ribbon,具有负载均衡的能力

   整合了 Hystrix,具有熔断的能力
   使用:
       添加 pom 依赖。
      启动类添加@EnableFeignClients
      定义一个接口@FeignClient(name=“xxx”)指定调用哪个服务

 7.Ribbon与Fegin

     1)Ribbon 都是调用其他服务的,但方式不同。
     2)启动类注解不同,Ribbon 是@RibbonClient feign 的是@EnableFeignClients
     3)服务指定的位置不同,Ribbon 是在@RibbonClient 注解上声明,Feign 则是在定义抽象方法的接口中使用@FeignClient 声明。
    4)调用方式不同,Ribbon 需要自己构建 http 请求,模拟 http 请求然后使用 RestTemplate 发送给其他服务,步骤相当繁琐。
    5)Feign 需要将调用的方法定义成抽象方法即可
8.SpringClud Bus
      将分布式的节点用轻量的消息代理连接起来,它可以用于广播配置文件的更改或者服务直接的通讯,也可用于监控
     如果修改了配置文件,发送一次请求,所有的客户端便会重新读取配置文件。
     使用:添加依赖,配置 rabbitmq
9.SpringCloud config
      在分布式系统中,由于服务数量巨多,为了方便服务配置文件统一管理,实时更新,所以需要分布式配置中心组件;
      在 SpringCloud 中,有分布式配置中心组件 spring cloud config ,它支持配置服务放在配置服务的内存中(即本地),也支持放在远程 Git仓库中;
      在 spring cloud config 组件中,分两个角色,一是 config server,二是 config client。
     使用:添加 pom 依赖,配置文件添加相关配置,启动类添加注解@EnableConfigServer
10.Spring Cloud Gateway
     是 Spring Cloud 官方推出的第二代网关框架,取代 Zuul 网关   
     网关作为流量的,在微服务系统中有着非常作用,网关常见的功能有路由转发、权限校验、限流控制等作用
     使用了一个 RouteLocatorBuilder 的 bean 去创建路由,除了创建路由 RouteLocatorBuilder 可以让你添加各种 predicates 和filters,predicates 断言的意思,顾名思义就是根据具体的请求的规则,由具体的 route 去处理,filters 是各种过滤器,用来对请求做各种判断和修改
 

猜你喜欢

转载自www.cnblogs.com/dxjx/p/12551057.html