Spring-Cloud(一)——服务发现Eureka

一、序

关于微服务的话就不多说了,spring-cloud也已经接触多时,开个专栏做一下总结,具体思路差不多是这样。

按照微服务搭建框架顺序进行整理、总结。并会在文尾增量展示微服务高可用架构。

二、开篇

2.1、服务注册及发现-Eureka

eureka应该是最早的,应用更广泛的服务发现框架了;eureka是由Netflix开发的框架,主要用于服务的注册发现,本身是REST接口调用。

2.2、创建高可用注册中心

在这里show下父pom统一管理的配置

2.2.1、父pom

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <java.version>1.8</java.version>
    <spring-cloud.version>Greenwich.SR3</spring-cloud.version>
</properties>
 
<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>${spring-cloud.version}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

这里就展示父pom部分关键内容。spring-cloud用的是当前版本Greewich.SR3。

2.2.2、子pom

配置对于eureka服务端来说,来一个spring-cloud-starter-netflix-eureka-server的依赖即可。

<dependencies>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
    </dependency>
</dependencies>

2.2.3、Eureka集群配置

application.yml

spring:
  application:
    name: eureka-server-cluster
  profiles:
    active: eureka-serve-01

application-eureka-server1.yml

server:
  port: 8034
 
spring:
  profiles: eureka-serve-01
 
eureka:
  instance:
    hostname: eureka-serve-01
    instance-id: eureka-serve-01
    prefer-ip-address: true
  client:
    service-url:
      defaultZone: http://eureka-serve-02:8035/eureka/,http://eureka-serve-03:8036/eureka/

application-eureka-server2.yml

server:
  port: 8035
 
spring:
  profiles: eureka-serve-02
 
eureka:
  instance:
    hostname: eureka-serve-02
    instance-id: eureka-serve-02
    prefer-ip-address: true
  client:
    service-url:
      defaultZone: http://eureka-serve-02:8034/eureka/,http://eureka-serve-03:8036/eureka/

application-eureka-server3.yml

server:
  port: 8036
 
spring:
  profiles: eureka-serve-03
 
eureka:
  instance:
    hostname: eureka-serve-03
    instance-id: eureka-serve-03
    prefer-ip-address: true
  client:
    service-url:
      defaultZone: http://eureka-serve-02:8034/eureka/,http://eureka-serve-03:8035/eureka/

我是使用idea启动三个eureka进程从而构建一个虚拟集群。从而可以保证eureka的高可用。这里需要注意的点有如下几处:

  • 集群各server.port、eureka.instance.hostname、eureka.instance.instance-id需要唯一
  • eureka.client.service-url.defaultZone默认的注册域需要每个eureka服务端分别注册其他两服务,从而实现相互注册。以保证高可用

接下来,当然少不了spring-boot项目启动类starter

package com.king.demo;
 
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
 
@SpringBootApplication
@EnableEurekaServer
public class EurekaServerApplication {
 
    public static void main(String[] args) {
        SpringApplication.run( EurekaServerApplication.class, args);
    }
}
# C:\Windows\System32\drivers\etc\host修改如下内容
127.0.0.1 eureka-serve-01 eureka-serve-02 eureka-serve-03

接下来,修改application.yml中spirng.profiles.active的值,分别启动eureka-serve-01、2、3即可。

在这之后,一但有某一个服务注册在其中一个例如eureka-server-01服务端上,那么该服务也会在其他两个服务02、03上进行注册。从而避免了注册中心的单点故障。

2.3、高可用eureka在微服务中的架构图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值