2 . Spring Cloud注册中心,Eureka(Finchley版本)

本文介绍了Spring Cloud的注册中心,特别是Eureka的使用。通过Finchley.SR3版本,阐述了如何设置Eureka单机版注册中心,并展示了客户端如何注册到Eureka。文章提供了官方文档链接及实例代码,帮助读者理解和实践Eureka服务治理。
摘要由CSDN通过智能技术生成

项目github地址:https://github.com/SpanishSoap/spring-cloud-example,本章用到的项目模块,见下图

一.Spring Cloud的介绍

Spring Cloud是一个基于Spring Boot实现的云应用开发工具,它为基于JVM的云应用开发中涉及的配置管理、服务发现、断路器、智能路由、微代理、控制总线、全局锁、决策竞选、分布式会话和集群状态管理等操作提供了一种简单的开发方式。

Spring Cloud包含了多个子项目(针对分布式系统中涉及的多个不同开源产品),比如:Spring Cloud Config、Spring Cloud Netflix、Spring Cloud CloudFoundry、Spring Cloud AWS、Spring Cloud Security、Spring Cloud Commons、Spring Cloud Zookeeper、Spring Cloud cli等项目。

二.Spring Cloud的注册中心

由于Spring Cloud为服务治理做了一层抽象接口,所以在Spring Cloud应用中可以支持多种不同的服务治理框架,比如:Netflix Eureka、Consul、Zookeeper等,本文主要介绍单机版的Eureka,下章介绍高可用的版本。

三.版本选择

spring Cloud使用  Finchley.SR3

spring boot使用   2.0.4.RELEASE

四.Eureka注册中心

官方文档传送门:

https://cloud.spring.io/spring-cloud-static/Finchley.SR2/multi/multi_spring-cloud-eureka-server.html  spring  cloud注册中心文档

https://spring.io/guides/gs/service-registration-and-discovery/#initial   spring  cloud 官方例子

本系列所用的都是maven的父子工程架构,父工程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>org.friends</groupId>
    <artifactId>centralpark</artifactId>
    <version>1.0-SNAPSHOT</version>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.4.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <modules>
        <module>eureka-server-standalone</module>
        <module>eureka-client</module>
    </modules>

    <properties>
        <java.version>1.8</java.version>
        <spring-cloud.version>Finchley.SR3</spring-cloud.version>
    </properties>

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

    <!--dependencyManagement 管理总版本,就是一个声明,如果子模块使用还需要单独引用具体jar包-->
    <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>

</project>

子工程pom引入netflix的 eureka-server包

<?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>
    <parent>
        <groupId>org.friends</groupId>
        <artifactId>centralpark</artifactId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <groupId>com.friends</groupId>
    <artifactId>eureka-server-standalone</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>eureka-server-standalone</name>
    <description>Demo project for Spring Cloud</description>
    <dependencies>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
    </dependency>
    </dependencies>
</project>

在启动类上加入注解    @EnableEurekaServer  如下

@SpringBootApplication
@EnableEurekaServer
public class EurekaServerStandaloneApplication {
    public static void main(String[] args) {
        SpringApplication.run(EurekaServerStandaloneApplication.class, args);
    }
}
application.yml配置文件中 因为EurekaServer作为服务端的同时也会作为客户端进行注册,所有在单机版关闭他的默认注册行为将registerWithEureka和fetchRegistry设置为false,将serviceUrl指向自己
server:
  port: 8761
eureka:
  instance:
    hostname: localhost
  client:
    registerWithEureka: false
    fetchRegistry: false
    serviceUrl:
      defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
spring:
  application:
    name: EurekaServerStandalone

启动访问localhsot:8761见如下管理界面,代表启动成功

五.Eureka客户端注册

官方文档传送门:https://cloud.spring.io/spring-cloud-static/Finchley.SR2/multi/multi__service_discovery_eureka_clients.html

客户端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.friends</groupId>
    <artifactId>eureka-client</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>eureka-client</name>
    <description>Demo project for Spring Cloud</description>
    <parent>
        <groupId>org.friends</groupId>
        <artifactId>centralpark</artifactId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <dependencies>
        <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-web</artifactId>
        </dependency>
    </dependencies>
</project>

在启动类上加入注解    @EnableDiscoveryClient如下

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

application.yml配置文件中,进行多客户端配置,注册都上述eureka server上

spring:
  profiles:
    active: EurekaClient8001

---
eureka:
  client:
    serviceUrl:
      defaultZone: http://localhost:8761/eureka/
server:
  port: 8000
spring:
  application:
    name: EurekaClient8000
  profiles: EurekaClient8000
---
eureka:
  client:
    serviceUrl:
      defaultZone: http://localhost:8761/eureka/
server:
  port: 800
spring:
  application:
    name: EurekaClient8001
  profiles: EurekaClient8001


启动访问localhsot:8761见下图,刚启动的客户端服务注册成功

上一篇:Spring Cloud版本信息一网打尽  https://blog.csdn.net/NDKHBWH/article/details/94437354

下一篇:Spring Cloud注册中心,Eureka集群,高可用版本(Finchley版本)https://blog.csdn.net/NDKHBWH/article/details/94734211

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值