SpringCloud之EurekaServer集群技术

注意:spingcloud的版本号与springboot的冲突问题我这里用的springcloud版本是:finchley.SR2,springboot版本是:2.0.7。

注意:spingcloud的版本号与springboot的冲突问题我这里用的springcloud版本是:finchley.SR2,springboot版本是:2.0.7。

创建项目

 编写配置文件application.yml 

 

---
spring:
  profiles: peer1
server:
  port: 8800
eureka:
  instance:
    hostname: peer1
  client:
    registerWithEureka: false
    fetchRegistry: false
    serviceUrl:
      defaultZone: http://127.0.0.1:8900/eureka/

---
spring:
  profiles: peer2
server:
  port: 8900
eureka:
  instance:
    hostname: peer2
  client:
    registerWithEureka: false
    fetchRegistry: false
    serviceUrl:
      defaultZone: http://127.0.0.1:8800/eureka/


 

 启动类加注解

@EnableEurekaServer
@SpringBootApplication
public class EurekaschoolingApplication {

    public static void main(String[] args) {
        SpringApplication.run(EurekaschoolingApplication.class, args);
    }
}

这里代码阶段已经完成

打包

项目打包方式自选

启动项目

采用如下命令

java -jar eurekaschooling-0.0.1-SNAPSHOT.jar --spring.profiles.active=peer1 
java -jar eurekaschooling-0.0.1-SNAPSHOT.jar --spring.profiles.active=peer2

 

在浏览其中分别打开如下网址能够成功,说明我们的集群搭建完毕

http://127.0.0.1:8800/

http://127.0.0.1:8900/

 

深入理解高可用

这里到了如何配置服务消费者的问题了

这是官网的配置:

eureka:
  client:
    serviceUrl:
      defaultZone: http://peer1/eureka/,http://peer2/eureka/,http://peer3/eureka/

这里有一个问题:

如果我们是由10个eureka集群搭建的注册中心,那么我们每个消费者配置文件中都要把这10个注册中心的url都写上。这显然是不太可行的。

这就涉及到了eureka的集群原理了。只要我们再任意个服务的url注册了,集群中的其他注册服务都会同步。

就算是服务注册的这个Url的宕机 了,服务 依然可用。

这才是高可用啊!!!

下面我们来继续探讨

继续修改前面项目的application.yml

---
spring:
  profiles: peer1
server:
  port: 8800
eureka:
  instance:
    hostname: peer1
  client:
    registerWithEureka: false
    fetchRegistry: false
    serviceUrl:
      defaultZone: http://127.0.0.1:8900/eureka/,http://127.0.0.1:9000/eureka/

---
spring:
  profiles: peer2
server:
  port: 8900
eureka:
  instance:
    hostname: peer2
  client:
    registerWithEureka: false
    fetchRegistry: false
    serviceUrl:
      defaultZone: http://127.0.0.1:9000/eureka/,http://127.0.0.1:8800/eureka/

---
spring:
  profiles: peer3
server:
  port: 9000
eureka:
  instance:
    hostname: peer3
  client:
    registerWithEureka: false
    fetchRegistry: false
    serviceUrl:
      defaultZone: http://127.0.0.1:8800/eureka/,http://127.0.0.1:8900/eureka/




打包后启动

java -jar eurekaschooling-0.0.1-SNAPSHOT.jar --spring.profiles.active=peer1 
java -jar eurekaschooling-0.0.1-SNAPSHOT.jar --spring.profiles.active=peer2
java -jar eurekaschooling-0.0.1-SNAPSHOT.jar --spring.profiles.active=peer3

分别访问如下地址

http://127.0.0.1:8800/

http://127.0.0.1:8900/

http://127.0.0.1:9000/

可以看到启动成功

但是我们还要测试服务注册能不能三个都同步

编写服务注册工程

 

 

配置文件application.yml

server:
  port: 8765

spring:
  application:
    name: client

eureka:
  client:
    serviceUrl:
      defaultZone: http://127.0.0.1:9000/eureka/

启动类

@EnableDiscoveryClient
@SpringBootApplication
public class EurekaclientApplication {

    public static void main(String[] args) {
        SpringApplication.run(EurekaclientApplication.class, args);
    }
}

运行测试

可以看到在三个服务中都完成了注册,说明集群实现了同步。

将端口为9000的服务宕机

可以看到在其他两个服务中依然有效。这就是高可用!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值