创建多模块springcloud应用eureka server和client和消费端demo

使用环境是 STS + maven

1 创建父级 项目,springcloud-demo1

new -> maven project ->

按照要求进行配置即可。然后删除 src目录,因为父级项目只是配置项目依赖和版本控制使用。

1.2 修改 pom 文件

<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.huitong</groupId>
  <artifactId>springcloud-demo1</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>pom</packaging>

  <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>Edgware.SR4</spring-cloud.version>
  </properties>

  <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.5.13.RELEASE</version>
  </parent>

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

  <modules>
  </modules>
</project>

此时也要注意springcloud 和 springboot 版本之间有一定的关联性,最好使用官网推荐的对应版本。否则可能会出现版本不兼容的问题。我就是这么趟的坑过来的

2  创建 eureka server端项目,spring-cloud-sureka-server

在 springcloud-demo1 项目上右击, new -> maven module

2.2 修改 pom 文件,添加 eureka-server 依赖, spring-cloud-starter-eureka-server

<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>com.huitong</groupId>
    <artifactId>springcloud-demo1</artifactId>
    <version>0.0.1-SNAPSHOT</version>
  </parent>
  <artifactId>spring-cloud-eureka-server</artifactId>

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

      <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-devtools</artifactId>
      <optional>true</optional>
    </dependency>
  </dependencies>

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

2.3 添加配置文件 application.yml

server:
  port: 8010

eureka:
  instance:
    hostname: 127.0.0.1
    prefer-ip-address: true

  client:
    register-with-eureka: false
    fetch-registry: false
    service-url:
      default-zone: http://${eureka.instance.hostname}:${server.port}/eureka/

eureka 配置说明 可见 http://www.cnblogs.com/li3807/p/7282492.html

在 server 端 service-url 指定暴露出的注册服务地址。让客户端可以将应用注册到该地址上。

2.4 添加启动类,StartEurekaServer

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

@SpringBootApplication
@EnableEurekaServer
public class StartEurekaServer {

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

}

3 新建一个服务提供端  module,spring-cloud-eureka-client-demo1,跟 eureka 方法一样,在springcloud-demo1项目上右击, new -> maven module

3.2 修改 pom 文件

<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>com.huitong</groupId>
    <artifactId>springcloud-demo1</artifactId>
    <version>0.0.1-SNAPSHOT</version>
  </parent>
  <artifactId>spring-cloud-eureka-client-demo1</artifactId>

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

    <!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
    <dependency>
      <groupId>org.projectlombok</groupId>
      <artifactId>lombok</artifactId>
      <scope>provided</scope>
    </dependency>

    <!-- https://mvnrepository.com/artifact/org.apache.commons/commons-lang3 -->
    <dependency>
      <groupId>org.apache.commons</groupId>
      <artifactId>commons-lang3</artifactId>
    </dependency>

  </dependencies>

</project>

3.3 添加配置文件 application.yml

server:
  port: 8020

spring:
  application:
    name: eureka-client-demo1

eureka:
  instance:
    preferIpAddress: true
    hostname: 127.0.0.1
    instanceId: ${spring.cloud.client.ipAddress:127.0.0.1}:${server.port}
  client:
    registerWithEureka: true
    fetchRegistry: true
    serviceUrl:
      defaultZone: http://${eureka.instance.hostname}:${eureka.port:8010}/eureka/

3.4 编写启动类,SpringCloudDemo1

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

@SpringBootApplication
@EnableEurekaClient
public class SpringCloudDemo1 {

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

    }

}

3.5 简单的实体类,Student

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class Student {
    private String name;
    private Integer age;

}

3.6 Controller

import org.apache.commons.lang3.ObjectUtils;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class StudentController {

    @RequestMapping(value="/student/demo1", method=RequestMethod.GET)
    public Student getStu1() {
        Student  result = Student.builder().name("allen").age(23).build();
        if (ObjectUtils.allNotNull(result)) {
            System.out.println(result);
        }

        return result;
    }

}

此时访问页面 :http://localhost:8010/

说明:由于springcloud 版本低或者什么原因,在编写配置时,使用的是 横线命名法   启动的时候一直给我报错,com.sun.jersey.api.client.ClientHandlerException: java.net.ConnectException: Connection refused: connect

后来查阅大量资料发现将配置属性全部改为 驼峰命名法 就好了

原文地址:https://www.cnblogs.com/zhaopengcheng/p/9539660.html

时间: 2024-10-11 04:06:22

创建多模块springcloud应用eureka server和client和消费端demo的相关文章

基于Spring Boot 2.0.3的Spring Cloud Eureka Server与Client

springBootVersion = '2.0.3.RELEASE' springCloudVersion = 'Finchley.RELEASE' 1.服务发现和服务注册 服务发现:如何提供给客户端一个可用的服务?客户端自己找,还是服务器端帮它找.● 客户端发现:客户端查询服务注册表,然后使用负载均衡算法从中选择一个实例,并发出请求.● 服务器端发现:客户端通过负载均衡器向某个服务提出请求,负载均衡器查询服务注册表,并将请求转发到可用的服务实例.服务注册:● 自注册:服务实例自己注册● 第三

SpringCloud(3)---Eureka服务注册与发现

Eureka服务注册与发现 一.Eureka概述 1.Eureka特点 (1) Eureka是一个基于REST的服务,用于定位服务,以实现云端中间层服务发现和故障转移. (2) Eureka 主管服务注册与发现,在微服务中,以后了这两者,只需要使用服务的标识符(==就是那个在每个服务的yml文件中取得服务名称==), 就可以访问到服务,不需要修改服务调用的配置文件. (3) Eureka遵循AP原则(高可用,分区容错性),因为使用了自我保护机制所以保证了高可用. 2.Eureka两大组件 两大组

springCloud(5):Eureka的元数据与Eureka Server的rest端点

一.Eureka的元数据 1.1.简介 Eureka的元数据有两种:标准元数据和自定义元数据. 标准元数据指的是主机名.IP地址.端口号.状态页和健康检查等信息,这些信息都会被发布在服务注册表中,用于服务之间的调用. 自定义元数据可以使用eureka.instance.metadata-map配置,这些元数据可以在远程客户端中访问,但一般不会改变客户端的行为,除非客户端知道该元数据的含义. 1.2.操作 如下图: 1.2.1.修改demo2的application.properties配置 se

SpringCloud 学习(二)-2 :Securing The Eureka Server

由于工作等种种原因未能连续进行学习,现在继续学习微服务,不过是新建的demo,springcloud版本用的是Finchley.SR2. 之前用简单demo实现了注册中心,现在来对注册中心加安全验证: 一.添加依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </d

SpringCloud系列五:为Eureka Server添加用户认证及元数据

1. 回顾 上一篇博客讲解了Eureka集群及将微服务注册到集群上.在前面的讲解中,Eureka Server都是允许匿名访问的,本次将讲解如何构建一个需要登录才能访问的Eureka Server. 2. 为Eureka Server添加用户认证 > 复制项目 microservice-discovery-eureka,将ArtifactId修改为 microservice-discovery-eureka-authenticating. > 在pom.xml中添加spring-boot-st

【微服务架构】SpringCloud之Eureka(服务注册和服务发现基础篇)(二)

上篇文章讲解了SpringCloud组件和概念介绍,接下来讲解一下SpringCloud组件相关组件使用.原理和每个组件的作用的,它主要提供的模块包括:服务发现(Eureka),断路器(Hystrix),智能路有(Zuul),客户端负载均衡(Ribbon),Archaius,Turbine等  今天学习的是Eureka即注册中心 一:Eureka简介 Eureka是Spring Cloud Netflix的一个子模块,也是核心模块之一.用于云端服务发现,一个基于REST的服务,用于定位服务,以实

升级微服务架构1:搭建Eureka Server服务中心

Spring Cloud中使用Eureka来做服务注册和发现,来统一管理微服务实例. 1.使用IDEA创建一个空的Maven项目做父模块 (也可以不用父项目,所有模块都用平行结构) 删除父模块src文件夹 可使用Spring Initializr来创建模块或者创建Maven项目手动添加依赖 2.使用Spring Initializr创建Eureka Server 选择SDK 1.8 Artifact填写对应模块的名称 依次选择Cloud Discovery->Eureka Server,Spri

SpringCloud Netflix Eureka

Eureka是Netflix开源的服务发现组件,基于REST,SpringCloud将它集成在子项目Spring Cloud Netflix中,从而实现服务的注册.发现. Eureka包含Server.Client两部分: Eureka Server  接收服务注册.保存各服务节点的信息 Eureka Client  即各服务节点,内置Ribbon(实现负载均衡).消费者通过Ribbon从提供该服务的节点列表中确定一个要使用的节点. Eureka的架构 搭建单个Eureka Server 1.创

SpringCloud之eureka注册中心入门

eureka注册中心 一.基本概念 SpringCloud封装 了Netflix公司的eureka作为自己微服务的注册中心.这个注册中心和dubbo中的zookeeper很相似,简单来说,只要你可以将你的"微服务"模块注册到注册中心,就可以供其他服务调用,一般来说,只有provider会注册到eureka,consumer也可以注册,但是并不建议这么做. eureka的架构图如下: 二.在SpringCloud项目中使用eureka 要想使用SpringCloud的子模块,一般分为两步