springCloud微服务学习笔记整理

springCloud微服务主要组件:

  1. Eureka:注册中心,分为客户端,服务端
  2. Ribbon :负载均衡客户端,可以很好的控制htt和tcp的一些行为
  3. Feign:是一个声明式的伪Http客户端,它使得写Http客户端变得更简单,Feign默认集成了Ribbon,并和Eureka结合,默认实现了负载均衡的效果。(所以用Feign就够了,比Ribbon用法简单)
  4. Hystrix:断路器,当某个服务挂掉,访问不到时,较底层的服务如果出现故障,会导致连锁故障。当对特定的服务的调用的不可用达到一个阀值(Hystric 是5秒20次) 断路器将会被打开,直接返回错误提示,不会一直继续访问,等待相应。

 

个人理解:

ribbon(Feign)作用:比如之前有个订单服务orderServer端口为8181的模块注册到Eureka上,

以前用户下单都是调用的orderServer:8181模块的服务,处理业务逻辑的代码

如果现在下单用户比较多,一个订单服务处理不过来,就需要拷贝一份orderServer:8181修改端口为orderServer:8282也注册到Eureka,这样处理下单逻辑,只需要访问ribbon,通过ribbon来分权重,调用orderServer:8181还是调用orderServer:8282

(以前注册到Eureka的Application为

Application AMIs Availability Zones Status
ORDERSERVER
n/a (1) (1) UP (1) - DESKTOP-6R85L0K:orderServer :8181

,添加orderServer:8282服务后Application为

 

springCloud微服务学习笔记整理_第1张图片

  1. 需要用的的组件上Spring Cloud Netflix的Eureka ,eureka是一个服务注册和发现模块。Eureka Server
    //main启动类注解表明是eureka server
    @SpringBootApplication
    @EnableEurekaServer
    
    //application.yml
    //eureka注册中心端口
    server:
      port: 8761
    
    //通过eureka.client.registerWithEureka:false和fetchRegistry:false来表明自己是一个eureka server.
    //defaultZone为eureka客户端注册的地址
    eureka:
      instance:
        hostname: localhost
      client:
        registerWithEureka: false
        fetchRegistry: false
        serviceUrl:
          defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
  2. 其它组件都作为客户端注册到Eureka Server服务上。 Eureka Client
    //main方法启动类加上
    @SpringBootApplication
    @EnableEurekaClient
    
    
    //application.yml
    
    //eureka注册中心地址
    eureka:
      client:
        serviceUrl:
          defaultZone: http://localhost:8761/eureka/
    //当前服务端口和注册在eureka中心的服务名字,这个很重要,这在以后的服务与服务之间相互调用一般都是根据这个name 
    server:
      port: 8763
    spring:
      application:
        name: service-hi

     

你可能感兴趣的:(springCloud)