• spring-boot 多模块化项目和EurekaServer的搭建


    Spring boot由于其

      1、易于开发和维护。2、单个微服务启动快。3、局部修改部署容易。4、技术栈不受语言限制等优点受到越来越多公司的重视。spring-boot还集成了许多关于微服务开发的框架(例如配置管理,服务发现,断路器,智能路由,微代理,控制总线,一次性令牌,全局锁,领导选举,分布式 会话,群集状态),使我们部署微服务免去了繁琐的配置。

    下面我们来学习利用spring-boot搭建电商项目。

    Spring Boot 2.0.0-SNAPSHOT 要求 Java 8 和 Spring Framework 5.0.2以上,Maven 3.2 以上或者Gradle 4。

    本文使用 Spring Boot 2.0.0-SNAPSHOT Java9 和 Spring Framework 5.0.2.RELEASE以上,Maven 3.3.9。开发工具使用sping官方提供的spring suit tool 3.9.1(STS)。

    一、Spring多模块化项目的搭建

      首先我们需要建立一个Spring-boot的父项目,一个多模块项目通过一个父POM 引用一个或多个子模块来定义。

        <!-- 定义spring-cloud的路径 -->
        <groupId>com.hzt.cloud</groupId>
        <artifactId>esupermarket</artifactId>
        <!-- 自定义父项目的版本 -->
        <version>1.0.0</version>
        <!-- 假如为父项目,打包方式必须为pom -->
        <packaging>pom</packaging>

    并且删除文件根目录下所有文件,只留下pom.xml即可。

        <!-- 使当前项目继承spring-boot 2.0 -->
        <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>1.5.9.RELEASE</version>
        </parent>

    然后定义我们所需要的spring-boot的版本,这样我们项目就是使用的spring-boot 2.0版本了。

    <!-- 定义继承此父类的子模块,module中填写的为子模块的 artifactId-->
        <modules>
            <module>eureka-server</module>
            <module>eureka-server1</module>
        </modules>

    同时插入我们即将定义的子模块,这样子模块既可以使用父模块中引入的依赖。

    <dependencyManagement>
            <dependencies>
            <!-- 加入spring-boot 关于web的依赖 -->
                <dependency>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-web</artifactId>
                </dependency>
                <!-- 统一依赖管理 -->
                <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>

    加入spring-boot关于web以及统一依赖管理的模块.

    <!-- 仓库管理 -->
        <repositories>
            <repository>
                <id>spring-milestones</id>
                <name>Spring Milestones</name>
                <url>https://repo.spring.io/milestone</url>
                <snapshots>
                    <enabled>false</enabled>
                </snapshots>
            </repository>
        </repositories>

    这样我们父类模块的pom即搭建成功.

    二、子模块 EurekaServer服务的搭建

       右键父模块 new -> mavenmodule ,创建一个子模块

      1、pom.xml的配置

      

    <modelVersion>4.0.0</modelVersion>
        <!-- 项目名 , 不需要groupId和name标签-->
        <artifactId>eureka-server1</artifactId>
        <!-- 打包方式 -->
        <packaging>jar</packaging>
        
        <!-- 继承的父类 , 为父模块 -->
        <parent>
            <groupId>com.hzt.cloud</groupId>
            <artifactId>esupermarket</artifactId>
            <!-- 版本为父类定义的version标签 -->
            <version>1.0.0</version>
            <relativePath/>
        </parent>
    
        <dependencies>
        <!-- 引入关于 eureka-server的依赖 -->
            <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-security</artifactId>
            </dependency> </dependencies>

    其中,spring-boot 2.0和2.0以前引入 eureka-server的artifactId有所区别。

    2、启动类

    @SpringBootApplication//启动注解,表示此为spring-boot的一个入口类
    @EnableEurekaServer//此行注解代表为一个服务注册组件,此注解仅适用于eureka
    //@EnableDiscoveryClient//此注解同上,但是适用于其他服务注册主件
    public class EurekaServerApplication {
    
        public static void main(String[] args) {
            SpringApplication.run(EurekaServerApplication.class, args);
        }
    }

    我们可以根据不同的服务发现方式定义不同的注解。@EnableDiscoveryClient注解可以支持其他的服务发现方式。

    3、application.yml配置文件

    server:
      #配置eurekaServer的端口号
      port: 8761
    security:
      basic:
        #代表开启账号密码认证,登录eurekaServer时需要输入账号密码
        enabled: true 
      user:
        name: root
        password: 123
    eureka:
      client:
        service-url: 
          #代表注册到eureka服务端的地址
          defaultZone: http://root:123@127.0.0.1:8761/eureka
          #该服务为注册中心,增加此行代表不在注册中心注册自己
        register-with-eureka: false
        #由于注册中心呢的职责是维护实例,为FALSE代表其不用去检索服务
        fetch-registry: false
        #配置主机名
      instance:
        hostname: peer1
        #配置服务名
    security:
      basic:
        #代表开启账号密码认证
        enabled: true
      user:
        name: root
        password: 123

    同理 , 我们可以配置一个eurekaServer1搭建eurekaServer的高可用集群。其中peer1为我本地机器上配置的负载地址,指向www.peer1.com。启动服务器。

  • 相关阅读:
    m_Orchestrate learning system---三、session使用完整流程是什么
    m_Orchestrate learning system---四、多看参考文档很多事情很轻松就解决了
    m_Orchestrate learning system---五、学的越多,做的越快
    m_Orchestrate learning system---六、善用组件插件的好处是什么
    m_Orchestrate learning system---七、如何快速学好前端
    cocos2d0基础知识三个音符
    URAL 1727. Znaika&#39;s Magic Numbers(数学 vector)
    第13周项目2-纯虚函数形类家庭
    [cocos2dx注意事项009]试用quick-cocos2dx-2.2.4
    百度之星 1004 Labyrinth
  • 原文地址:https://www.cnblogs.com/zhoading/p/12174502.html
Copyright © 2020-2023  润新知