码上微服务- 环境搭建 - Eureka注册中心

Posted hackly

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了码上微服务- 环境搭建 - Eureka注册中心相关的知识,希望对你有一定的参考价值。

一、前言

  本章将讲述基于Spring Cloud的注册中心Eureka的简单工程搭建及Docker部署。

二、环境准备

  • 操作系统:CentOS 7.2
  • 项目管理:MAVEN(推荐使用阿里源中央仓库:http://maven.aliyun.com/nexus/content/repositories/central/)
  • 开发IDE:IDEA
  • 所用语言:JAVA
  • 所用容器:Docker

三、 Eureka注册中心项目搭建

  • JAVA工程创建(这里使用了IDEA)

技术分享图片

技术分享图片

 技术分享图片

技术分享图片

  • 相关的pom.xml

<?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.lee</groupId>
    <artifactId>eureka_server</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>

    <name>eureka_server</name>
    <description>eureka_server</description>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.3.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>Finchley.RELEASE</spring-cloud.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
        </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>
  • 相关propertities.yml配置文件

server:
  port: 8761

eureka:
  instance:
    hostname: 127.0.0.1
  client:
    registerWithEureka: false
    fetchRegistry: false
    serviceUrl:
      defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
  server:
    enable-self-preservation: false # 设为false,关闭自我保护,生产环境不建议关闭,采用其他方式,后面会讲
    eviction-interval-timer-in-ms: 5000 # 清理间隔(单位毫秒,默认是60*1000)
  • 启动/查看

技术分享图片

【打开浏览器】-->【输入:http://127.0.0.1:8761】

技术分享图片

   至此,简单的注册中心工程创建完成。

四、Maven打包/Docker容器

  •  Maven打包jar(windows环境下)

  流程:在CMD窗口下切换至工程根目录 --> 输入Maven打包命令:  mvn package -f pom.xml 

  注:打包过程中会下载Maven打包所使用的插件,首次打包过程会花费一定的时间。

技术分享图片

技术分享图片

  看到上述信息代表打包成功,打包生成的jar包路径如图所示。

  • Docker部署(这里使用Dockerfile打包成Docker容器)

  流程:将Maven打包好的jar包文件上传至服务器 --> 编写Dockerfile文件 --> 执行build --> 启动容器

  注:有同学会问怎么那么繁琐,本系列为纯手工过程,理解了过程,后面会使用自动化构建进行替代,是一个循序渐进的过程。

  我这里上传的路径为:/home/teach/eureka_server/eureka_server-0.0.1-SNAPSHOT.jar

  Dockerfile文件与jar包同目录,Dockerfile内容如下:

FROM java:8
MAINTAINER 2299252@qq.com
WORKDIR /app
ADD eureka_server-0.0.1-SNAPSHOT.jar /app/eureka_server-0.0.1-SNAPSHOT.jarEXPOSE 8761
ENTRYPOINT ["/usr/bin/java","-jar","eureka_server-0.0.1-SNAPSHOT.jar"]

  执行Docker build 命令(注意命令最后的【.】)

docker build -t lee/eureka_server:v1 .

技术分享图片

  启动镜像

docker run --name eureka_server_v1 -d -p 8761:8761 lee/eureka_server:v1

技术分享图片

  检验 【打开浏览器】-->【输入:http://部署主机地址:8761】

技术分享图片

  至此,Eureka注册中心的简单工程搭建及Docker部署结束。

以上是关于码上微服务- 环境搭建 - Eureka注册中心的主要内容,如果未能解决你的问题,请参考以下文章

Eureka高可用集群环境搭建

Spring-Cloud之Eureka注册中心环境搭建(单节点)

gateway网关使用

注册中心 Eureka 源码解析 —— 调试环境搭建(含源码)

SpringCloud系列服务注册中心Eureka基础

eureka服务注册与发现:搭建注册中心