springboot-cloud-1-eureka

   github地址:https://github.com/github-ygy/spring_cloud_test
整体学习思路:
    1.服务提供者在启动时,向注册中心注册自己提供的服务。
    2.服务消费者在启动时,向注册中心订阅自己所需的服务。
    3.注册中心返回服务提供者地址给消费者。
    4.服务消费者从提供者的地址中调用服务。

eureka-server

        服务注册中心,提供服务注册于发现的功能,同时自己也可以开启服务注册。
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>test.ygy.eureka</groupId>
    <artifactId>eureka-server</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>

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

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.6.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>
        <spring-cloud.version>Dalston.SR2</spring-cloud.version>
    </properties>

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

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </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>${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>
开启服务端
    服务提供者,将服务注册到服务注册中心,其它消费者则可以通过服务注册中心发现服务,获取服务并消费。
@EnableEurekaServer  //开启服务注册中心
@SpringBootApplication
public class EurekaServerApplication {

    public static void main(String[] args) {
        SpringApplication.run(EurekaServerApplication.class, args);
    }
}
application.properties
spring.application.name=server
####配置访问端口
server.port = 9999
eureka.instance.hostname=localhost
#####不需要注册
eureka.client.register-with-eureka=false
#####不需要检索服务
eureka.client.fetch-registry=false
###eureka 自我保护
###eureka.server.enable-self-preservation=false
###eureka client间隔多久去拉取服务注册信息  默认30秒
###eureka.client.registry-fetch-interval-seconds=30
###eureka server至上一次收到client的心跳之后,等待下一次心跳的超时时间 默认90秒
###eureka.instance.lease-expiration-duration-in-seconds=10
###eureka client发送心跳给server端的频率 默认30秒
###eureka.instance.lease-renewal-interval-in-seconds=5
###清理无效节点的时间间隔
###eureka.server.eviction-interval-timer-in-ms=0
client
开启客户端
@EnableEurekaClient
@SpringBootApplication
public class EurekaClientApplication {

    public static void main(String[] args) {
        SpringApplication.run(EurekaClientApplication.class, args);
    }
}
application.properties
spring.application.name= client
server.port=8888
eureka.client.serviceUrl.defaultZone=http://localhost:9999/eureka/

server分片

hosts
127.0.0.1 pear1
127.0.0.1 pear2
application-server1.properties
server.port=9998
eureka.instance.hostname=test1
spring.application.name=server
eureka.client.serviceUrl.defaultZone=http://test1:9998/eureka/,http://test2:9999/eureka/
eureka.server.enable-self-preservation=false  //关闭保护机制
###eureka.instance.prefer-ip-address= true  //默认false 不适用ip
application-server2.properties
server.port=9998
eureka.instance.hostname=test1
spring.application.name=server
eureka.client.serviceUrl.defaultZone=http://test1:9998/eureka/,http://test2:9999/eureka/
eureka.server.enable-self-preservation=false
###eureka.instance.prefer-ip-address= true  //默认false 不适用ip
application-client.properties
spring.application.name= client
server.port=8888
eureka.client.serviceUrl.defaultZone=http://pear1:9998/eureka/,http://pear2:9999/eureka/
### Spring Cloud Netflix Eureka Client 和 Spring Cloud Starter Eureka Client 的区别与使用 Spring Cloud 提供了多种工具和依赖项来支持微服务架构中的服务注册与发现功能。以下是关于 `Spring Cloud Netflix Eureka Client` 和 `Spring Cloud Starter Eureka Client` 的详细信息,包括它们的区别、使用场景以及相关依赖配置。 #### 1. 定义与背景 `Spring Cloud Netflix Eureka Client` 是基于 Netflix 开源项目 Eureka 的实现[^1]。它允许微服务应用程序将自身注册到 Eureka Server,并从 Eureka Server 中发现其他服务。 `Spring Cloud Starter Eureka Client` 是 Spring Cloud 提供的一个启动器(Starter),封装了 Eureka Client 的核心功能,简化了依赖管理和配置过程[^2]。 #### 2. 区别 - **命名与范围** `Spring Cloud Netflix Eureka Client` 是具体的客户端实现,直接与 Eureka Server 进行交互。而 `Spring Cloud Starter Eureka Client` 是一个更高层次的抽象,包含 `Spring Cloud Netflix Eureka Client` 及其相关的依赖项[^3]。 - **依赖管理** 使用 `Spring Cloud Starter Eureka Client` 时,开发者无需手动添加 Eureka Client 的依赖,因为该启动器已经包含了所有必要的依赖项。例如: ```xml <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependency> ``` 上述代码片段展示了如何通过 Maven 引入 `Spring Cloud Starter Eureka Client`[^4]。 - **配置复杂度** `Spring Cloud Starter Eureka Client` 提供了开箱即用的功能,减少了手动配置的工作量。相比之下,直接使用 `Spring Cloud Netflix Eureka Client` 需要更多的自定义配置[^5]。 #### 3. 使用场景 - **Spring Cloud Netflix Eureka Client** 如果项目需要更精细的控制或定制化功能,可以选择直接使用 `Spring Cloud Netflix Eureka Client`。这种情况下,开发者可能需要手动处理一些依赖项和配置[^6]。 - **Spring Cloud Starter Eureka Client** 对于大多数标准微服务应用场景,推荐使用 `Spring Cloud Starter Eureka Client`,因为它能够快速集成 Eureka 功能,减少开发时间[^7]。 #### 4. 示例代码 以下是一个简单的 Spring Boot 应用程序示例,展示如何使用 `Spring Cloud Starter Eureka Client` 将服务注册到 Eureka Server: ```java import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.netflix.eureka.EnableEurekaClient; @SpringBootApplication @EnableEurekaClient public class MyEurekaClientApplication { public static void main(String[] args) { SpringApplication.run(MyEurekaClientApplication.class, args); } } ``` 在 `application.yml` 或 `application.properties` 文件中,需要指定 Eureka Server 的地址: ```yaml eureka: client: serviceUrl: defaultZone: http://localhost:8761/eureka/ ``` #### 5. 注意事项 - 确保使用的 Spring Cloud 版本与 Spring Boot 版本兼容[^8]。 - 如果使用的是较新的 Spring Cloud 版本,需要注意 Netflix 组件(如 Eureka)可能已被标记为维护模式[^9]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值