美文网首页Spring Cloud Labs微服务架构和实践IT技术篇
第一篇: 服务的注册与发现(Eureka)

第一篇: 服务的注册与发现(Eureka)

作者: Owater | 来源:发表于2017-08-04 20:03 被阅读42次

转载请标明出处: http://www.jianshu.com/p/f73b6d6c9c11
本文出自Owater的博客

Spring Cloud简介

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

1、创建Maven工程
2、创建Module(因为后面还需要创建其他模块)

右键工程=>New Module

选择Spring Initializr,命名为eureka-server

选择cloud discovery->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>com.owater</groupId>
    <artifactId>eureka-server</artifactId>
    <version>0.0.1</version>
    <packaging>jar</packaging>

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

    <parent>
        <artifactId>docker-springcloud-parent</artifactId>
        <groupId>com.owater</groupId>
        <version>0.0.1</version>
    </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-server</artifactId>
        </dependency>

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

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

    <build>
        <plugins>
            <plugin>
                <groupId>com.spotify</groupId>
                <artifactId>docker-maven-plugin</artifactId>
                <configuration>
                    <imageName>${project.name}:${project.version}</imageName>
                    <dockerDirectory>${project.basedir}/src/main/docker</dockerDirectory>
                    <resources>
                        <resource>
                            <targetPath>/</targetPath>
                            <directory>${project.build.directory}</directory>
                            <include>${project.build.finalName}.jar</include>
                        </resource>
                    </resources>
                </configuration>
            </plugin>
        </plugins>
    </build>


</project>

创建个appication.yml文件 (默认生成的是properties文件),eureka是一个高可用的组件,它没有后端缓存,每一个实例注册之后需要向注册中心发送心跳(因此可以在内存中完成)

server:
  port: 7000

spring:
  application:
    name: eureka-server

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

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

启动一个服务注册中心,在启动application类上加@EnableEurekaServer

@EnableEurekaServer
@SpringBootApplication
public class EurekaServiceApplication {

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

启动浏览器,打开 http://localhost:7000,由于还没向Eureka注册服务,所以下面没有Application

源码参考:https://github.com/Owater/docker_springcloud/tree/master/eureka-server
Spring Cloud Eureka 官方文档

转载请标明出处: http://www.jianshu.com/p/f73b6d6c9c11
本文出自Owater的博客

相关文章

网友评论

    本文标题:第一篇: 服务的注册与发现(Eureka)

    本文链接:https://www.haomeiwen.com/subject/hakblxtx.html