Spring Cloud_1. 初步搭建Eureka

作者: 小疯子 分类: Spring Cloud 发布时间: 2019-11-22 12:37

1. 初步创建项目主工程

idea中右键创建一个maven项目,仅仅留下pom.xml文件。然后其中更改的内容:
<packaging>pom</packaging>作为父模块的配置
属性值的配置
`

    <java.version>1.8</java.version>
    <!-- 编码设置 -->
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <docker.image.prefix>${project.groupId}</docker.image.prefix>
    <!-- ************************依赖版本配置********************** -->
    <!--spring boot 全家桶版本-->
    <spring.boot.version>2.0.2.RELEASE</spring.boot.version>
    <!--spring cloud全家桶版本-->
    <spring.cloud.version>Finchley.SR1</spring.cloud.version>
</properties>`

版本依赖管理

<dependencyManagement>
    <dependencies>
        <!--
        ============================================================================================================
        ==================================            基础依赖版本配置             =================================
        ============================================================================================================
        -->
        <!-- spring boot -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-dependencies</artifactId>
            <version>${spring.boot.version}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
        <!-- spring cloud -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>${spring.cloud.version}</version>
            <type>pom</type>
            <scope>import</scope><!-- 如上两行可以让依赖于cloud的子模块们有对应的版本,比如eureka版本会自动确定 -->
        </dependency>
    </dependencies>
</dependencyManagement>

profiles配置

<profiles>
    <!-- 本地环境 -->
    <profile>
        <id>local</id>
        <properties>
            <package.environment>local</package.environment>
        </properties>
        <activation>
            <!--默认启用该配置-->
            <activeByDefault>true</activeByDefault>
        </activation>
    </profile>
    <!-- 研发环境 -->
    <profile>
        <id>dev</id>
        <properties>
            <package.environment>dev</package.environment>
        </properties>
    </profile>
    <!--测试环境-->
    <profile>
        <id>test</id>
        <properties>
            <package.environment>test</package.environment>
        </properties>
    </profile>
    <!--生产环境-->
    <profile>
        <id>online</id>
        <properties>
            <package.environment>online</package.environment>
        </properties>
    </profile>
</profiles>

还有build针对maven-plugin的配置:<build></build>

2. eureka-server搭建

首先项目结构中增加一个管理帮助文件夹manage-assist,这个模块中是针对系统进行辅助帮助服务的,和业务没关系,比如assist-eureka-register就是一个辅助模块,manage-assist的父模块是项目根,子模块是assist-eureka-register.

manage-assist pom.xml

<packaging>pom</packaging>定义父模块打包方式
<parent>定义其父模块为根项目下的pom.xml信息
<modules>定义子模块信息,就是assist-eureka-register
同样根项目下的pom.xml中也要定义此标签,设置值为manage-assist。

assist-eureka-register pom.xml

1. 包含信息:

<parent>定义父模块
<dependencies>定义eureka-server依赖,不用设置版本号,从父父模块的denpendencymanage中的spring-cloud就会自动检测到了
<build>构建相关信息的配置

2. 工程启动application类

添加@EnableEurekaServer注解来进行服务中心的启动

3. eureka server配置

在路径:src/main/resources/application.yml文件中添加配置信息

通过eureka.client.registerWithEureka:false和fetchRegistry:false来表明自己是一个eureka server.
其中的defaultZone的配置信息参见:resources/conf/application-local.properties中(不同的环境对应的配置不同)

4.启动工程

启动(如果报错:Unable to start embedded Tomcat可能是jdk配置版本有问题,这里就配置为1.8版本的jdk,我的idea自动配了1.11了相关jdk配置链接:链接1链接2
打开浏览器访问: http://localhost:8761 ,出现eureka-server的管理界面

3. eureka-client搭建

eureka基础架构了解,包含了三个核心要素:
。服务注册中心:eureka提供的服务器,提供服务注册与发现的功能,也就是中上一节中实现的eureka-server
。服务提供者:提供服务的应用,可以是spring boot应用,也可以说其他技术平台且遵循eureka通讯机制的应用。它将自己提供的服务注册到eureka,以供其他应用发现。
。服务消费者:消费者应用从服务注册中心获取服务列表,从而使消费者可以知道去何处调用其所需要的服务。

3.1 项目结构

项目中创建了manage-server目录,其中名下的模块就是服务提供者,类似于service的感觉,目标就是将名下的模块都注册到eureka中去,因为每个模块都依赖于大致相同的eureka-client或者一致的配置,所以在manage-server目录下新建一个server-config,专门用来进行统一server的配置的,然后建针对用户的服务提供者server-user模块

3.2 manage-server pom.xml

和之前大差不差的内容,只不过多了一个<dependencyManagement>用于针对项目中其他微服务?的依赖配置以及针对manager-server子模块需要依赖的其他依赖模块的配置和版本预置。这里目前也就是个server-configuration子模块的依赖配置。

3.2 server-configuration配置

pom.xml引入dependencies,包含针对eureka-client的依赖,注意还要随着引入spring-boot-starter-web依赖。

3.3 server-user配置

(1)pom.xml中引入dependencies,包含了server-configuration依赖(因为此依赖中依赖了eureka-client,所以间接就引入啦)
(2)启动类application添加@EnableEurekaClient 注解

3.4 配置application.yml

在src/main/resources新建文件application.yml,进行eureka-client的配置,相关配置类似于之前eureka-server的配置,其中的default-zone就是eureka-server的注册中心

3.5 添加测试用的restcontroller(provider)

在src/main/java的provider目录下添加UserController作为服务提供者被其他服务访问的入口。

3.5 启动

启动之前的eureka-register项目,然后启动此项目,查看eureka管理平台信息会多出一个微服务
项目路径:https://github.com/shuishuiafeng/shop.git

0

发表评论

电子邮件地址不会被公开。 必填项已用*标注