`

springcloud之(Eureka)服务注册与发现

阅读更多

一、spring cloud简介

spring cloud 为开发人员提供了快速构建分布式系统的一些工具,包括配置管理、服务发现、断路器、路由、微代理、事件总线、全局锁、决策竞选、分布式会话等。

 

二、创建服务注册中心

在这里,我们需要用的的组件上Spring Cloud Netflix的Eureka ,eureka是一个服务注册和发现模块。

   2.1 首先创建一个maven主工程。

 

   2.2 然后创建2个model工程:一个model工程作为服务注册中心,即Eureka Server,另一个作为Eureka Client。

下面以创建server为例子,详细说明创建过程:

本人用的是spring sts:

右键工程->New-> 选择Spring Starter Project:

创建工程的pom 如下

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.shiziqiu</groupId>
    <artifactId>eurekaServer-study</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>

    <name>eureka-server-study</name>
    <description>Demo project for Spring Boot</description>

      <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.2.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
    </properties>

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

        <!-- spring boot test-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Dalston.RC1</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>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </repository>
    </repositories>
</project>

 

2.3 启动一个服务注册中心,只需要一个注解@EnableEurekaServer,这个注解需要在springboot工程的启动application类上加:

 

@EnableEurekaServer
@SpringBootApplication
public class EurekaServerStudyApplication {
    public static void main(String[] args) {
        SpringApplication.run(EurekaServerStudyApplication.class, args);
    }
}

我们来看下配置文件
在默认情况下erureka server也是一个eureka client ,必须要指定一个 server。

eureka server的配置文件appication.yml:

server:
  port: 8761
eureka:
  instance:
    hostname: localhost
  client:
    registerWithEureka: false
    fetchRegistry: false
    serviceUrl:
         defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/

 

通过eureka.client.registerWithEureka:false和fetchRegistry:false来表明自己是一个eureka server.

 

2.5 eureka server 是有界面的,启动工程,打开浏览器访问:
http://localhost:8761 ,界面如下:



 

 

三、创建一个服务提供者 (eureka client)

当client向server注册时,它会提供一些元数据,例如主机和端口,URL,主页等。Eureka server 从每个client实例接收心跳消息。 如果心跳超时,则通常将该实例从注册server中删除。

 

创建过程同server类似,创建完pom.xml如下:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.shiziqiu</groupId>
    <artifactId>eurekaClient</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>

    <name>eureka-client-study</name>
    <description>Demo project for Spring Boot</description>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.7.RELEASE</version>
        <relativePath /> <!-- lookup parent from repository -->
    </parent>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
    </properties>

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

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

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Dalston.RC1</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>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </repository>
    </repositories>
</project>


通过注解@EnableEurekaClient 表明自己是一个eurekaclient.

@EnableEurekaClient
@RestController
@SpringBootApplication
public class EurekaClientStudyApplication {

    public static void main(String[] args) {
        SpringApplication.run(EurekaClientStudyApplication.class, args);
    }
   
    @Value("${server.port}")
    String port;
   
    @RequestMapping("/hello")
    public String home(@RequestParam String name) {
        return " hello" + name + "i am from port:" + port;
    }
}

需要在配置文件中注明自己的服务注册中心的地址,application.yml配置文件如下:

eureka:
  client:
    serviceUrl:
      defaultZone: http://localhost:8761/eureka/
server:
   port: 8762
spring:
    application:
       name: service-hi

 

需要指明spring.application.name,这以后的服务与服务之间相互调用一般都是根据这个name 。
启动工程,打开http://localhost:8761 ,即eureka server 的网址:

 

 

 

你会发现一个服务已经注册在服务中了,服务名为SERVICE-HI ,端口为7862

 

这时打开 http://localhost:8762/hello?name=shiziqiu,你会在浏览器上看到 :

 

helloi shiziqiu,i am from port:8762

源码下载:https://github.com/shiziqiu/shiziqiu-springcloud

 

四、参考资料

springcloud eureka server 官方文档

springcloud eureka client 官方文档

 

 

  • 大小: 71.6 KB
  • 大小: 52.9 KB
分享到:
评论

相关推荐

    01Spring Cloud Eureka:服务注册与发现1

    Eureka是Spring Cloud Netflix子项目的核心组件之一,它提供了服务注册与发现机制,允许微服务在注册中心注册自己的地址及端口信息,然后在需要调用其他服务时,从注册中心获取服务列表,并调用对应的服务实例。

    springcloud之eureka注册服务与发现

    在Spring Cloud生态系统中,Eureka是核心组件之一,主要用于服务的注册与发现。Eureka的工作原理、使用方式以及源码分析对于理解微服务架构中的服务治理至关重要。下面将详细阐述Eureka的相关知识点。 1. **Eureka...

    spring cloud eureka服务注册与发现

    Spring Cloud Eureka是Spring Cloud框架中的一个核心组件,主要用于实现微服务架构中的服务注册与发现功能。在微服务架构中,服务之间的通信依赖于服务发现机制,Eureka就是扮演这个角色,帮助各个微服务实例自动...

    SpringCloud基础概念与入门+SpringCloud核心组件Eureka服务注册与发现等全套教程

    SpringCloud核心组件Eureka服务注册与发现 SpringCloud核心组件Ribbon负载均衡 SpringCloud核心组件Feign声明式服务调用 SpringCloud核心组件Hystrix断路器与容错机制 SpringCloud核心组件ZuulAPI网关 SpringCloud...

    spring-cloud-eureka 服务注册及发现实例

    在这个实例中,我们将探讨如何利用 Spring Cloud Eureka 实现服务注册与发现,以及相关的配置和实践。 首先,Spring Boot 是一个快速开发框架,它简化了创建独立、生产级别的基于 Spring 的应用程序。版本 2.1.10....

    springcloud整合Eureka的demo

    Eureka是SpringCloud生态中的一个关键组件,主要负责服务注册与发现。本教程将详细介绍如何整合SpringCloud与Eureka,创建一个基本的服务发现示例。 首先,我们需要理解Eureka的工作原理。Eureka是一个基于REST的...

    Spring Cloud eureka服务注册DEMO

    我们将基于提供的"Spring Cloud Eureka服务注册DEMO"来理解其核心概念,并探索如何通过三个Spring Boot应用——服务注册模块、服务提供模块和服务发现与消费模块——实现服务注册与发现。 1. **Eureka概述**: ...

    springCloud+eureka

    综上所述,"springCloud+eureka" 主要是利用 Spring Cloud 的 Eureka 模块构建微服务架构,实现服务的注册与发现,从而简化了分布式系统中的服务治理。通过启动 Eureka Server 和两个客户端,可以演示服务间的通信和...

    springcloud-eureka-server.zip

    在分布式微服务架构中,服务治理扮演着至关重要的角色,而SpringCloud Eureka Server正是这样一款专为解决服务注册与发现问题而设计的组件。本文将围绕"springcloud-eureka-server.zip"这个项目,深入探讨Spring...

    SpringCloud学习之服务注册与发现

    总结一下,本教程主要涉及了Spring Cloud中Eureka服务注册与发现的使用,包括Eureka Server的配置和启动,以及客户端服务的注册和调用。通过这样的实践,我们可以更好地理解和掌握微服务架构下服务间的通信机制,为...

    spring cloud eureka(免费下载)

    Spring Cloud Eureka是Spring Cloud框架中的一个核心组件,主要用于实现微服务之间的服务发现和服务治理。在微服务架构中,每个服务可能都会独立部署和扩展,Eureka作为一个服务注册中心,帮助各个服务实例进行注册...

    Spring Cloud Eureka Server

    Spring Cloud Eureka Server是Spring Cloud框架中的一个关键组件,它主要负责服务的注册与发现,是微服务架构中实现服务治理的重要工具。Eureka Server作为服务注册中心,为其他微服务提供服务注册和发现的能力,...

    SpringCloud+eureka+gateway.zip

    Eureka是SpringCloud中的服务注册与发现组件,它允许服务提供者注册自己的服务,并让服务消费者能够发现并调用这些服务。Eureka服务器作为服务注册中心,负责存储、检索服务实例的信息。服务提供者启动时向Eureka...

    Spring Cloud 之 Eureka集群整合Zuul、Feign-源码

    6. **测试验证**:部署所有服务,通过调用Zuul的公共入口,测试服务间的通信是否正常,包括Eureka的注册与发现、Zuul的路由转发和Feign的声明式调用。 这个压缩包文件可能包含了相关的示例代码、配置文件以及详细的...

    springcloud-eureka.zip

    在微服务架构中,Eureka作为服务注册与发现的核心,帮助各个微服务实例之间能够互相找到并进行通信。下面将详细阐述Eureka的相关知识点。 1. **Eureka Server**:Eureka服务器是Eureka的核心,它是一个分布式的服务...

    springcloud eureka 服务注册中心

    **SpringCloud Eureka 服务注册中心** 在微服务架构中,服务发现是核心组件之一,它使得服务之间能够互相找到并进行通信。Spring Cloud Eureka 就是这样的一个服务注册与发现工具,它是 Netflix 提供的开源项目,是...

    spring cloud之Eureka Server搭建

    在Spring Cloud生态系统中,Eureka Server是核心组件之一,它主要负责服务的注册与发现。本文将详细介绍如何搭建一个简单的Eureka Server,帮助新手快速入门。 首先,我们需要了解Eureka Server的基本概念。Eureka...

    springcloud eureka服务注册中心 最新版本2.x.x

    SpringCloud Eureka是微服务架构中的关键组件,它作为一个服务注册与发现的工具,使得服务之间的调用变得简单。在最新版本2.x.x中,Eureka提供了更稳定、高效的特性来支持大规模分布式系统的构建。 首先,让我们...

    spring cloud eureka 注册中心客户端

    Spring Cloud Eureka是Netflix开发的服务发现组件,它在微服务架构中扮演着核心角色,用于管理服务实例的注册与发现。Eureka客户端是Eureka生态系统的一部分,它允许微服务应用注册到Eureka服务器并获取其他服务的...

Global site tag (gtag.js) - Google Analytics