eureka集群实现以及feign微服务之间负载均衡实践

 

一:eureka集群

编写eureka步骤

第一步、导入Eurka pom文件


      org.springframework.cloud
      spring-cloud-starter-netflix-eureka-server

第二步、项目启动类Applcation上添加注解

#开启Eurka注册中心服务
@EnableEurekaServer 

第三步、在aplication.yml上配置Eureka注册信息

server:
  port: 8761
eureka:
  client:
    #  表示是否将自己注册到Eureka Servcer。
    register-with-eureka: false
    #  表示是否从Eureka Server获取注册信息
    fetchRegistry: false
    serviceUrl:
     #  设置Eureka Server交互的地址
      defaultZone: http://localhost:8761/eureka/
spring:
  application:
    name: eureka-server-1

第四步、启动项目,访问http://localhost:8761 可以访问到Eureka服务界面

eureka集群实现以及feign微服务之间负载均衡实践_第1张图片

第五步、作为一个注册中心,为了确保微服务能够正常的注册和发现,单机的eureka server肯定不能满足这样的需求,如果注册中心挂掉,那么线上的所有服务都会有影响,那么需要有一个高可用的eureka server来支撑。在eureka的服务治理设计中,所有的节点既是服务提供方,也是服务消费方,服务注册中心也是,那么eureka server的高可用实际上是将自己作为服务注册到其他的注册中心,这样可以形成一组相互注册的服务注册中心,可以实现服务清单的同步,达到高可用的目的。

新建多一个项目,跟刚刚的项目一摸一样,只是配置文件不一样即可

注册中心节点之间相互注册即可实现高可用部署。

eureka集群实现以及feign微服务之间负载均衡实践_第2张图片

或者不用这么麻烦再新家一个新的项目,直接idea里面复制一个application启动类,然后写好启动参数

-Dserver.port=xxxx

具体看图

假如3个以上也一样,把其他的都注册到自己的server上面,用逗号隔开。客户端需要配置所有的Eureka server地址。

eureka集群实现以及feign微服务之间负载均衡实践_第3张图片

(客户端)

如此可以保证注册节点的高可用。

原理

在euerka 集群中如果某台服务器宕机,euerka没有zookeeper的选举leader规则过程,客户端请求会自动切换到新的euerka的节点上,当宕机的服务器从恢复后,euerka会从新将其纳入到euerka服务器集群中(实现高可用)

二:feign客户端负载均衡

同理,上面建立类两个eureka项目,只是端口不一样并且相互注册,那么我们直接在server2这里做一个复制application启动类,只是弄成端口不一样即可。最后新建一个service1做feign请求,即可实现每次调用都使用不同都server2。

每次刷新请求都是调用类不同端口的server2

最后分享项目

链接:https://pan.baidu.com/s/1HXunaiSarPmUF_jJ-5qEJw  密码:vx4z

 

你可能感兴趣的:(springcloud)