spring-cloud 学习笔记 - 外传(1)

[外传] Spring Cloud Eureka Server服务注册中心高可用方案

在微服务架构中,作为核心的服务注册中心是整个系统的关键,它的高可用性决定了系统的整体的稳定性。

在前面的学习中我们讲到,Eureka Servers是单点运行的,但是它本身也算是一个微服务,所以它可以再多个Eureka Server实例中互相注册,这样就可以构建一个高可用的Eureka Server的服务集群。

(注册中心的高可用方案图)

注册中心的搭建

1. 创建项目

创建spring boot项目 spring-cloud-eureka-server,在SpringCloudEurekaServerApplication中添加EnableEurekaServer注解:

@SpringBootApplication 
@EnableEurekaServer 
public class SpringCloudEurekaServerApplication {
    public static void main(String[] args) {
        SpringApplication.run(SpringCloudEurekaServerApplication.class, args);
    }
} 
2. 添加配置

由于我们需要运行三个服务,所以我们需要准备三个配置文件:

application-peer1.properties:

spring.application.name=spring-cloud-eureka-server
server.port=9001
eureka.client.service-url.defaultZone=http://192.168.1.110:9002/eureka/,http://192.168.1.110:9003/eureka/

application-peer2.properties:

java spring.application.name=spring-cloud-eureka-server
server.port=9002
eureka.client.service-url.defaultZone=http://192.168.1.110:9001/eureka/,http://192.168.1.110:9003/eureka

application-peer3.properties:

java spring.application.name=spring-cloud-eureka-server
server.port=9003
eureka.client.service-url.defaultZone=http://192.168.1.110:9001/eureka/,http://192.168.1.110:9002/eureka/

从上面的配置可以看出来,我们使用三个服务,并且将其两两注册,这样我们的就算是其中一个down掉,依然可以正常运行。

3. 打包运行

使用maven命令将项目进行打包。

使用java命令来启动项目:

java -jar spring-cloud-eureka-server-0.0.1-SNAPSHOT.jar --spring.profiles.active=peer1
java -jar spring-cloud-eureka-server-0.0.1-SNAPSHOT.jar --spring.profiles.active=peer2
java -jar spring-cloud-eureka-server-0.0.1-SNAPSHOT.jar --spring.profiles.active=peer3

启动成功后就可以在注册中心页面看见对应的另外两个注册中心了:

4. 微服务注册

服务注册中心运行起来以后我们就可以将服务注册到注册中心了,由于三个注册中心都是互相关联的,所以我们只需要在其中一个注册我们的服务就可以在其他两个注册中心看见我们的服务了。

当然我们也可以使用nginx、zuul等服务网关对服务进行一个负载均衡,这里我们使用nginx对服务进行负载均衡,具体设置如下:

worker_processes 1;

events { worker_connections 1024; }

http { include mime.types; default_type application/octet-stream;

sendfile        on;

keepalive_timeout  65;

upstream eureka-server{
    server 192.168.1.110:9001;
    server 192.168.1.110:9002;
    server 192.168.1.110:9003;
}

server {
    listen       80;
    server_name  192.168.1.110;

    location / {
        proxy_set_header Host $host;

        proxy_set_header X-Real-IP $remote_addr;

        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

        proxy_pass http://eureka-server/; 
    }

    error_page  404              /404.html;

    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   html;
    }

}

}

最后,我们需要修改微服务的配置文件,将我们的高可用注册中心设置进去:

spring.application.name=spring-cloud-eureka-client

server.port=1001

eureka.client.service-url.defaultZone=http://192.168.1.110/eureka/ 

结束

本文部分文本来源于互联网

感谢以下文章提供的灵感和帮助

转载于:https://my.oschina.net/u/3886491/blog/1844515

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值