2、eureka-service-7001

2020-07-12  本文已影响0人  knock

模块结构

image.png

模块代码

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">
    <parent>
        <artifactId>spring-cloud</artifactId>
        <groupId>com.yyd.cloud</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>eureka-service</artifactId>

    <dependencies>
        <!-- SpringCloud Eureka 注册中心依赖  服务端-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-tomcat</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <!-- web服务 替代tomcat -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-undertow</artifactId>
        </dependency>

    </dependencies>


    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <!--指定打包方式 loader.path使用-->
                    <layout>ZIP</layout>
                    <!--去除在生产环境中不变的依赖,只包含业务代码-->
                    <includes>
                        <include>
                            <groupId>com.yyd.cloud</groupId>
                            <artifactId>*</artifactId>
                        </include>
                    </includes>
                </configuration>
            </plugin>

            <!--拷贝依赖jar到lib-->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <executions>
                    <execution>
                        <id>copy-dependencies</id>
                        <phase>package</phase>
                        <goals>
                            <goal>copy-dependencies</goal>
                        </goals>
                        <configuration>
                            <outputDirectory>${project.build.directory}/lib</outputDirectory>
                            <overWriteReleases>false</overWriteReleases>
                            <overWriteSnapshots>false</overWriteSnapshots>
                            <overWriteIfNewer>true</overWriteIfNewer>
                        </configuration>
                    </execution>
                </executions>
            </plugin>


            <!--拷贝资源文件 copy-resources, config固定 -->
            <plugin>
                <artifactId>maven-resources-plugin</artifactId>
                <executions>
                    <execution>
                        <id>copy-resources</id>
                        <phase>package</phase>
                        <goals>
                            <goal>copy-resources</goal>
                        </goals>
                        <configuration>
                            <resources>
                                <resource>
                                    <directory>src/main/resources</directory>
                                </resource>
                            </resources>
                            <outputDirectory>${project.build.directory}/config</outputDirectory>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

            <!--拷贝target下的jar到targets-->
            <plugin>
                <artifactId>maven-antrun-plugin</artifactId>
                <executions>
                    <execution>
                        <id>copy-lib-target</id>
                        <phase>package</phase>
                        <configuration>
                            <tasks>
                                <copy todir="../targets">
                                    <fileset dir="target">
                                        <include name="*.jar"/>
                                    </fileset>
                                </copy>
                            </tasks>
                        </configuration>
                        <goals>
                            <goal>run</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

        </plugins>


        <!-- 排除资源文件 -->
        <resources>
            <resource>
                <filtering>true</filtering>
                <directory>src/main/resources</directory>
                <excludes>
                    <exclude>**/*.yml</exclude>
                </excludes>
            </resource>
        </resources>


    </build>

</project>

DockerFile

# 基础 JRE 镜像
FROM registry.cn-hangzhou.aliyuncs.com/ydyan/cloud:v0.1
MAINTAINER 13270809619@163.com

WORKDIR /root/eureka-service

ENV APP_HOME=/root/eureka-service
ENV MAIN_JAR=eureka-service-1.0-SNAPSHOT.jar
ENV JVMOPTIONS="-Xms128M -Xmx1G"
#声明容器端口
ENV EXPOSE_PORT=7001
ENV CONFIG_LABEL=master
ENV ENV_TYPE=dev

# 修改时区,使得容器时间为北京时间
RUN echo "Asia/Shanghai" > /etc/timezone

# 将所需项目文件复制进入容器中
ADD target/$MAIN_JAR $APP_HOME/
ADD target/lib/ $APP_HOME/lib/
ADD target/config/ $APP_HOME/config/

# 运行项目

CMD java $JVMOPTIONS -jar  -Dloader.path=$APP_HOME,$APP_HOME/lib -Dfile.encoding=UTF-8 $APP_HOME/$MAIN_JAR

EXPOSE $EXPOSE_PORT


#---docker服务---
#docker pull centos:7
#docker tag 37bb9c63c8b2 registry-vpc.cn-hangzhou.aliyuncs.com/acs/agent:0.7-dfb6816   镜像改名
#docker build -t yd-cloud:v0.1 .
#docker run -d -p 9001:9001 -p 9002:9002 yd-cloud:v0.1
#docker run -d -p 10001:8888(本机:容器) -name springboot(容器名称) -v /usr/local/bigdata/dockerlogs/:/usr/local/logs/ yd-cloud:v0.1
#docker ps -a (全部容器) |docker ps (运行中容器)
#docker exec -it 8b /bin/bash  (进入容器)
#docker logs -f -t --tail 500 容器名称/容器id 查看docker日志
#docker images 查看镜像
#docker kill 容器名称/容器id
#docker rm 容器名称/容器id
#docker rmi 镜像id
#docker image rm -f 镜像id

resources>application.yml

server:
  port: 7001
#eureka配置
eureka:
  instance:
    hostname: 127.0.0.1   #Eureka服务端的实例名称,localhost代表服务器的地址,最后要换的
  client:
    register-with-eureka: false  #表示是否向eureka注册中心注册自己
    fetch-registry: false       #fetch-registry如果为false, 则表示自己为注册中心
    service-url:                # 监控页面
      #单机不做集群 defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
      #集群互相关联7001关联7002和7003   defaultZone: http://127.0.0.1:7002/eureka/,http://127.0.0.1:7003/eureka/
      #其实用的端口号都应该是7001,关联的是不同服务器的地址,因为我只有一个电脑,就用了端口号代替
      defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/

resources>logback.xml

<configuration scanPeriod="10 seconds" debug="true">
    <!-- 彩色日志依赖的渲染类 -->
    <conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter"/>
    <conversionRule conversionWord="wex"
                    converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter"/>
    <conversionRule conversionWord="wEx"
                    converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter"/>

    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <encoder charset="UTF-8">
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} [%file : %line] - %msg%n</pattern>
        </encoder>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- rollover daily 配置日志所生成的目录以及生成文件名的规则 -->
            <fileNamePattern>logs/eureka-service-7001-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
            <timeBasedFileNamingAndTriggeringPolicy
                    class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <!-- 单个日志文件最大100MB -->
                <maxFileSize>100MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
            <!-- 日志文件保存15天 -->
            <maxHistory>15</maxHistory>
        </rollingPolicy>
        <prudent>false</prudent>
    </appender>

    <!-- 彩色日志格式 -->
    <property name="CONSOLE_LOG_PATTERN"
              value="${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>
    <!-- Console 输出设置 -->
    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>${CONSOLE_LOG_PATTERN}</pattern>
            <charset>utf8</charset>
        </encoder>
    </appender>

    <!--<springProfile name="dev,test,prod">-->
    <!--<root level="INFO">-->
    <!--<appender-ref ref="CONSOLE"/>-->
    <!--<appender-ref ref="FILE"/>-->
    <!--</root>-->
    <!--&lt;!&ndash;<logger name="com.yyd.mapper" level="DEBUG"/>&ndash;&gt;-->
    <!--</springProfile>-->

    <root level="INFO">
        <appender-ref ref="CONSOLE"/>
        <appender-ref ref="FILE"/>
    </root>

</configuration>

java
EurekaServiceApplication.java

package com.yyd.eurekaservice;

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

/***
 * @ClassName: EurekaServiceApplication
 * @Description: TODO
 * @author: yanyd
 * @Date: 0:48 2020/5/31
 * @version : V1.0
 */
@SpringBootApplication
@EnableEurekaServer
public class EurekaServiceApplication {

    /**
     * 启动之后访问 http://localhost:7001/
     * EnableEurekaServer 服务端启动类,可以接受别人注册进来
     */
    public static void main(String[] args) {
        SpringApplication.run(EurekaServiceApplication.class, args);
    }
}

上一篇下一篇

猜你喜欢

热点阅读