我是靠谱客的博主 含糊菠萝,最近开发中收集的这篇文章主要介绍springcloud之eureka集群业务需求1.eureka简介2.目录结构3.创建cloud-eureka-server70014.创建cloud-eureka-server7002(类比7001创建)5.创建cloud-provider-payment8001模块6.类比cloud-provider-payment8001,创建80027.创建cloud-provider-consumer80模块测试结果总结,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

业务需求

  1. eureka简介
  2. 引入依赖
  3. 修改配置
  4. 创建provider和consumer
  5. 测试

1.eureka简介

  1. Spring Cloud Eureka 是Spring Cloud Netflix 微服务套件中的一部分, 它基于Netflix Eureka 做了二次封装, 主要负责完成微服务架构中的服务治理功能。
  2. Spring Cloud 通过为Eureka 增加了Spring Boot 风格的自动化配置,我们只需通过简单引入依赖和注解配置就能让Spring Boot 构建的微服务应用轻松地与Eureka 服务治理体系进行整合。
  3. Eureka 提供的服务端, 提供服务注册与发现的功能, 一般被称作eureka-server。

2.目录结构

在这里插入图片描述

3.创建cloud-eureka-server7001

Server端引入依赖

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

    <!--自定义api通用包-->
    <dependency>
        <groupId>com.study.cloud</groupId>
        <artifactId>cloud-api-commons</artifactId>
        <version>${project.version}</version>
    </dependency>
 #如果单纯的引入Eureka server相关的依赖,不用引入这个依赖,这个依赖是我本地的commons模块,自己测试用的
        <dependency>
            <groupId>com.study.cloud</groupId>
            <artifactId>cloud-api-commons</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>

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

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
#用于热部署
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
            <optional>true</optional>
        </dependency>
#lombok插件
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
        </dependency>
# 用于swagger,方便测试
        <dependency>
            <groupId>com.github.xiaoymin</groupId>
            <artifactId>swagger-bootstrap-ui</artifactId>
            <version>1.8.6</version>
        </dependency>
# 用于swagger,方便测试
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.9.2</version>
        </dependency>
    </dependencies>

创建模块,并且修改yaml文件

yaml配置文件

server:
  port: 7001

eureka:
  instance:
    hostname:   eureka7001.com#eureka服务端实例名称
  client:
    register-with-eureka: false #表示不像注册中心注册自己
    fetch-registry: false #false表示自己就是注册中心,我的职责就是维护服务实例,并不区检索服务
    service-url:
      defaultZone: http://eureka7002.com:7002/eureka/      #集群模式下,向别的eureka注册
#      defaultZone: http://eureka7001.com:7001/eureka/     单机模式下,向自己注册

#  server:
#    enable-self-preservation: false # 关闭自我保护机制 保证不可用服务及时清除
#    eviction-interval-timer-in-ms: 2000

创建启动类,并且添加注解

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

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

4.创建cloud-eureka-server7002(类比7001创建)

引入依赖

引入的依赖和7001的依赖相同

创建模块,并且修改yaml配置文件

yaml配置文件

server:
  port: 7002

eureka:
  instance:
    hostname: eureka7002.com #eureka服务端实例名称
  client:
    register-with-eureka: false #表示不向注册中心注册自己
    fetch-registry: false #false表示自己就是注册中心,我的职责就是维护服务实例,并不区检索服务
    service-url:
      defaultZone: http://eureka7001.com:7001/eureka/

创建启动类,并且添加注解

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

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

5.创建cloud-provider-payment8001模块

引入依赖

         <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-actuator</artifactId>
        </dependency>

修改yaml配置文件

server:
  port: 8001
  servlet:
    context-path: /v1payp
spring:
  application:
    name: cloud-payment-service
  datasource:
    type:  com.alibaba.druid.pool.DruidDataSource            # 当前数据源操作类型
    driver-class-name: org.gjt.mm.mysql.Driver              # mysql驱动包
    url:  jdbc:mysql://localhost:3306/db2021?useUnicode=true&characterEncoding=utf-8&useSSL=false
    username: root
    password:
mybatis:
  mapperLocations: classpath:mapper/*.xml
  type-aliases-package: com.study.cloud.entities    # 所有Entity别名类所在包
eureka:
  client:
    #表示是否将自己注册金eurekaserver
    register-with-eureka: true
    #是否从eureka抓取自己的注册信息,默认为true,集群必须为true才能配合ribbon使用负载均衡
    fetch-registry: true
    service-url:
      defaultZone: http://eureka7001.com:7001/eureka/,   http://eureka7002.com:7002/eureka/
  instance:
    instance-id: payment8001                      #主机名称
    prefer-ip-address: true                       #表示访问路径是否显示ip地址

创建启动类并添加注解

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

6.类比cloud-provider-payment8001,创建8002

7.创建cloud-provider-consumer80模块

引入依赖

  <dependencies>
 #如果单纯的引入Eureka server相关的依赖,不用引入这个依赖,这个依赖是我本地的commons模块,自己测试用的
        <dependency>
            <groupId>com.study.cloud</groupId>
            <artifactId>cloud-api-commons</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>

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

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
#用于热部署
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
            <optional>true</optional>
        </dependency>
#lombok插件
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
        </dependency>
# 用于swagger,方便测试
        <dependency>
            <groupId>com.github.xiaoymin</groupId>
            <artifactId>swagger-bootstrap-ui</artifactId>
            <version>1.8.6</version>
        </dependency>
# 用于swagger,方便测试
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.9.2</version>
        </dependency>
    </dependencies>

修改yaml配置文件

yaml配置文件

server:
  port: 80
  servlet:
    context-path: /v1payc
spring:
  application:
    name: cloud-consumer-order80

eureka:
  client:
    #表示是否将自己注册金eurekaserver
    register-with-eureka: true
    #是否从eureka抓取自己的注册信息,默认为true,集群必须为true才能配合ribbon使用负载均衡
    fetch-registry: true
    service-url:
      defaultZone: http://eureka7001.com:7001/eureka/,   http://eureka7002.com:7002/eureka/

创建启动类并添加注解

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

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

测试结果

在这里插入图片描述
在这里插入图片描述
可以看出是以轮询的方式分别访问8001和8002端口。当关闭其中一个server以后,还是这样的结果。

总结

1.eureka集群,其实就是创建多个eureka,然后相互之间注册
2.我创建的只是抽象出来的一些东西,一些具体的业务逻辑代码没有展示出来。
3.最主要的就是yaml配置文件。

最后

以上就是含糊菠萝为你收集整理的springcloud之eureka集群业务需求1.eureka简介2.目录结构3.创建cloud-eureka-server70014.创建cloud-eureka-server7002(类比7001创建)5.创建cloud-provider-payment8001模块6.类比cloud-provider-payment8001,创建80027.创建cloud-provider-consumer80模块测试结果总结的全部内容,希望文章能够帮你解决springcloud之eureka集群业务需求1.eureka简介2.目录结构3.创建cloud-eureka-server70014.创建cloud-eureka-server7002(类比7001创建)5.创建cloud-provider-payment8001模块6.类比cloud-provider-payment8001,创建80027.创建cloud-provider-consumer80模块测试结果总结所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(109)

评论列表共有 0 条评论

立即
投稿
返回
顶部