Spring Cloud 组件搭建(一)Eureka服务发现

来源:互联网 发布:电视阿里云系统好不好 编辑:程序博客网 时间:2024/06/05 02:12

Spring Cloud生态圈目前有21个子项目来共同构建,解决了目前微服务系统的很多问题,废话不多说,直接上其最普通简单的Eureka服务发现与注册中心搭建过程。本系列教材依照1.3.5.RELEASE版本,该版本比较稳定,JDK要求1.7以上。

1、micro-service父工程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.lovnx</groupId>  <artifactId>micro-service</artifactId>  <version>0.0.1-SNAPSHOT</version>  <packaging>pom</packaging>  <modules>    <module>eureka-sever</module>  </modules>    <parent>        <groupId>org.springframework.boot</groupId>        <artifactId>spring-boot-starter-parent</artifactId>        <version>1.3.5.RELEASE</version>        <relativePath/> <!-- lookup parent from repository -->    </parent>    <dependencyManagement>        <dependencies>            <dependency>                <groupId>org.springframework.cloud</groupId>                <artifactId>spring-cloud-dependencies</artifactId>                <version>Brixton.RELEASE</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>

注意:micro-service是一个pom工程,搭建的时候不要建错了。

2、eureka-server工程:pom.xml

<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.lovnx</groupId>    <artifactId>micro-service</artifactId>    <version>0.0.1-SNAPSHOT</version>  </parent>  <artifactId>eureka-sever</artifactId>  <packaging>jar</packaging>    <properties>        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>        <java.version>1.7</java.version>    </properties>    <dependencies>        <dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter-test</artifactId>            <scope>test</scope>        </dependency>        <dependency>            <groupId>org.springframework.cloud</groupId>            <artifactId>spring-cloud-starter-eureka-server</artifactId>        </dependency>    </dependencies></project>

注意,建立eureka工程的时候记得依赖于建立的micro-service工程,打包方式jar和war皆可。

3、启动主类:EurekaServer.java

package com.lovnx;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;@EnableEurekaServer@SpringBootApplicationpublic class EurekaServer {    public static void main(String[] args) {        SpringApplication.run(EurekaServer.class, args);    }}

4、配置文件:application.properties

spring.application.name=eureka-serverserver.port=7070#eureka.instance.hostname=localhosteureka.client.register-with-eureka=falseeureka.client.fetch-registry=falseeureka.client.serviceUrl.defaultZone=http://localhost:${server.port}/eureka/

注意:放在resources文件夹下

5、日志打印配置:logback.xml

<?xml version="1.0" encoding="UTF-8"?><!-- Logback configuration. See http://logback.qos.ch/manual/index.html --><configuration scan="true" scanPeriod="10 seconds">    <!--<include resource="org/springframework/boot/logging/logback/base.xml" />-->    <!--定义日志文件的存储地址和前缀名-->    <property name="LOG_HOME" value="F:/logs" />    <property name="LOG_PREFIX" value="micro-eureka-server" />    <!-- 一般信息按照每天生成日志文件 -->    <appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">        <File>${LOG_HOME}/${LOG_PREFIX}-info.log</File>        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">            <!-- 每天一归档 -->            <fileNamePattern>${LOG_HOME}/${LOG_PREFIX}-info-%d{yyyyMMdd}.log.%i</fileNamePattern>            <!-- 单个日志文件最多500MB, 30天的日志周期,最大不能超过20GB -->            <maxFileSize>100MB</maxFileSize>            <maxHistory>30</maxHistory>            <totalSizeCap>20GB</totalSizeCap>        </rollingPolicy>        <encoder>            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->            <Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} -%msg%n</Pattern>        </encoder>    </appender>    <!--错误信息按照每天生成日志文件-->    <appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">            <level>ERROR</level>        </filter>        <File>${LOG_HOME}/${LOG_PREFIX}-error.log</File>        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">            <!-- 每天一归档 -->            <fileNamePattern>${LOG_HOME}/${LOG_PREFIX}-error-%d{yyyyMMdd}.log.%i</fileNamePattern>            <!-- 单个日志文件最多500MB, 30天的日志周期,最大不能超过20GB -->            <maxFileSize>100MB</maxFileSize>            <maxHistory>30</maxHistory>            <totalSizeCap>20GB</totalSizeCap>        </rollingPolicy>        <encoder>            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->            <Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} -%msg%n</Pattern>        </encoder>    </appender>    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">        <encoder>            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>        </encoder>    </appender>    <!-- 日志输出级别 -->    <root level="INFO">        <!-- <appender-ref ref="STDOUT" /> -->        <appender-ref ref="INFO_FILE" />        <appender-ref ref="ERROR_FILE" />    </root></configuration>

注意:也放在resources文件夹下,最后一段可以调整输出级别,INFO、DEBUG、WARN、ERROR皆可,注释下面<appender-ref ref="STDOUT" />则不打印日志。

6、整合工程结构:

这里写图片描述

搭建好了,启动主类,在浏览器输入:http://localhost:7070 出现以下页面就成功了:

这里写图片描述

代码托管于github:https://github.com/Lovnx/micro-service

0 0