springcloud(一)注册中心eureka

eureka介绍

eureka属于springcloud中的一个组件,叫注册中心,什么叫注册中心?它是用来干什么的呢?

作用:服务注册与发现,在分布式环境中,一个完整的系统可能是由几个、几十、或者几百个服务组合在一起的一套架构, eureka就是将这些毫不相关的服务管理到一起。

服务发现是基于微服务的体系结构的主要宗旨之一。尝试手动配置每个客户端或某种形式的约定可能很困难并且很脆弱。Eureka是Netflix Service Discovery服务器和客户端。可以将服务器配置和部署为高可用性,每个服务器将有关已注册服务的状态复制到其他服务器。

搭建eureka

1.新建工程:

2.引入依赖

<properties>
        <java.version>1.8</java.version>
        <spring-cloud.version>Hoxton.RC2</spring-cloud.version>
    </properties>

    <dependencies>
        <!--cloud依赖-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter</artifactId>
        </dependency>

        <!--注册中心依赖-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
        </dependency>

        <!--测试依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.junit.vintage</groupId>
                    <artifactId>junit-vintage-engine</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
    </dependencies>

    <dependencyManagement>
        <dependencies>
            <!--需要引入springcloud的依赖-->
            <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>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

    <repositories>
        <repository>
            <id>spring-milestones</id>
            <name>Spring Milestones</name>
            <url>https://repo.spring.io/milestone</url>
        </repository>
    </repositories>

这是cloud必须的依赖

cloud版本,cloud的版本都喜欢以城市名命名。

其中eureka的依赖只有一个:

3.编写配置文件

我将application.perproties文件修改为了bootstrap.yml文件,因为cloud支持这种格式,也推荐这种格式。
 

server:
  port: 8761
eureka:
  client:
    service-url:
      defaultZone: http://localhost:${server.port}/eureka/
    register-with-eureka: false 
register-with-eureka:  是否把自己作为服务注册到其他服务注册中心

4.开启eureka
      开启eureka只需要在启动类中加入一个注解即可:
 

package com.ymy;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;

@SpringBootApplication
@EnableEurekaServer //开启eureka的注解,一定要加这个注解,否者没有效果
public class CouldEurekaApplication {

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

}

到这里eureka的配置就基本完成了,下面启动项目

启动成功,由于eureka提供了窗口界面,在浏览器中输入:localhost:8761

看到这个界面代表eureka已经被启动成功,服务可以正常注册了。

如果启动失败,报配置文件的错误的话,可以引入下面的依赖:

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

新建客户端服务一:cloud-user

1.引入依赖
 

 <properties>
        <java.version>1.8</java.version>
        <spring-cloud.version>Hoxton.RC2</spring-cloud.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter</artifactId>
        </dependency>
        <!-- eureka客户端依赖-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.junit.vintage</groupId>
                    <artifactId>junit-vintage-engine</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
    </dependencies>

    <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>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

    <repositories>
        <repository>
            <id>spring-milestones</id>
            <name>Spring Milestones</name>
            <url>https://repo.spring.io/milestone</url>
        </repository>
    </repositories>

2.编写配置文件
 

server:
  port: 8800
eureka:
  client:
    service-url:
      defaultZone: http://localhost:8761/eureka/
spring:
  application:
    name: cloud-user

3.在启动类中开启eureka客户端注解

package com.ymy.coulduser;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;

@SpringBootApplication
@EnableDiscoveryClient   //开启eureka客户端注解
public class CouldUserApplication {

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

}

新建客户端二:cloud-order

依赖和cloud-user一样,请参考cloud-user,配置文件如下:

server:
  port: 8900
eureka:
  client:
    service-url:
      defaultZone: http://localhost:8761/eureka/
spring:
  application:
    name: cloud-order

其实也是一样的,就是服务名和端口不一样,在启动类中也要加入启动eureka客户端的注解。

启动两个项目

我们在打开eureka的管理界面:localhost:8761

可以看到cloud-user、cloud-order服务已经成功的注册到注册中心了。

由于eureka2.x不在进行维护了,所以选用eureka做注册中心的小伙伴最好将版本降到1.9.x,或者选择其他的注册中心,如:consul、zookeeper等等都是不错的选择。

发布了41 篇原创文章 · 获赞 79 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_33220089/article/details/103150642