zoukankan      html  css  js  c++  java
  • SpringCloud学习之手把手教你用IDEA搭建入门项目【番外篇】(一)

    之前的文章里,我曾经搭建了一个Springcloud项目,但是那个时候我对于SpringCloud架构的很多组件不甚清楚,只是通过查找资料然后动手稀里糊涂的把一个项目成功搭建起来了,其中有很多不合理和不清楚的地方,所以现在我想重新搭建一个入门的SpringCloud项目,这是对我SpringCloud学习之路的致敬

    搭建环境:

    1. JDK8(或者叫Java1.8)
    2. IDEA ULTIMATE2019.3版本(说明:如果用Community社区版,新建项目时候看不到Spring Initializer这个启动项,请下载如下插件Spring Assistant插件即可)
    3. SpringCloud版本是Hoxton.M3,读者也可以选择其他版本,建议版本不要太低

    一、搭建一个空的Maven项目

    选择【New】-->【Project】新建项目

    填写项目名称,然后点击Finish

    删除src目录,我们只需要这个maven项目的模板(或者说壳子)



    接下来,我们将正式新建我们的项目了,我们需要新建一个Eureka注册中心和两个消费者,并把他们注册到Eureka注册中心上

    一、我们新建一个注册中心名字叫eureka-server-8760,8760是我配置的端口,这个你自己可以随便取

    右键项目名,选择新建New-->Module

    <?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
        <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>2.2.2.RELEASE</version>
            <relativePath/> <!-- lookup parent from repository -->
        </parent>
        <groupId>com.xu</groupId>
        <artifactId>eureka-server-8760</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <name>eureka-server-8760</name>
        <description>Demo project for Spring Boot</description>
    
        <properties>
            <java.version>1.8</java.version>
            <spring-cloud.version>Hoxton.M3</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>
                <exclusions>
                    <exclusion>
                        <groupId>org.junit.vintage</groupId>
                        <artifactId>junit-vintage-engine</artifactId>
                    </exclusion>
                </exclusions>
            </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>
    
        <repositories>
            <repository>
                <id>spring-milestones</id>
                <name>Spring Milestones</name>
                <url>https://repo.spring.io/milestone</url>
            </repository>
        </repositories>
    
    </project>
    

    application.yml文件

    server:
      port: 8760
    eureka:
      instance:
        hostname: eureka-server-8760
      client:
        register-with-eureka: false #false 表示不向注册中心注册自己
        fetch-registry: false # false 表示自己端就是注册中心,我的职责就是维护服务实例,并不需要去检索服务
        service-url:
          defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
          #设置与Eureka Server交互的地址 查询服务和注册服务都需要依赖这个地址

    启动类里的注解配置如下

    package com.xu.eurekaserver;
    
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
    
    @SpringBootApplication
    @EnableEurekaServer     // EurekaServer服务器端启动类,接受其它微服务注册进来
    public class EurekaServer8760Application {
    
        public static void main(String[] args) {
            SpringApplication.run(EurekaServer8760Application.class, args);
        }
    
    }
    

    现在我们试着启动这个注册中心模块,找到EurekaServer8760Application这个启动类,右键选择Debug运行

    不出意外,正常启动如下

    我们在浏览器中输入http://localhost:8760/,可以看到我们的注册中心暂时没有服务被注册到注册中心

    二、我们现在新建我们的服务端,并把我们的服务端注册到我们的注册中心上去,我们的两个服务端叫eureka-client-8761和

    eureka-client-8762

    这里我们不再右键项目用New-》Module的方式,我们直接复制我们刚才的eureka-server-8760,修改子项目名称和Module名称

    我们找到刚才复制粘贴的新模块的pom文件,右键选择【Add as Maven Project】,这样我们的项目就成功便成一个Maven项目了

    先看我们的pom需要的依赖

    <?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
        <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>2.2.2.RELEASE</version>
            <relativePath/> <!-- lookup parent from repository -->
        </parent>
        <groupId>com.xu</groupId>
        <artifactId>eureka-client-8761</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <name>eureka-client-8761</name>
        <description>Demo project for Spring Boot</description>
    
        <properties>
            <java.version>1.8</java.version>
            <spring-cloud.version>Hoxton.M3</spring-cloud.version>
        </properties>
    
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
            </dependency>
    
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-test</artifactId>
                <scope>test</scope>
                <exclusions>
                    <exclusion>
                        <groupId>org.junit.vintage</groupId>
                        <artifactId>junit-vintage-engine</artifactId>
                    </exclusion>
                </exclusions>
            </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>
    
        <repositories>
            <repository>
                <id>spring-milestones</id>
                <name>Spring Milestones</name>
                <url>https://repo.spring.io/milestone</url>
            </repository>
        </repositories>
    
    </project>
    

    application.yml文件如下

    server:
      port: 8761
    spring:
      application:
        name: eureka-client-8761
    eureka:
      client:
        serviceUrl:
          defaultZone: http://localhost:8760/eureka/
      instance:
        prefer-ip-address: true
    

    启动类

    package com.xu.eurekaserver;
    
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
    
    @SpringBootApplication
    @EnableEurekaClient
    public class EurekaClient8761Application {
    
        public static void main(String[] args) {
    
            SpringApplication.run(EurekaClient8761Application.class, args);
        }
    
    }
    

    我们右键启动这个启动类,可以看到成功启动后如下

    我们刷新我们的注册中心地址http://localhost:8760/,看看有什么变化没有

    另一个服务提供者类似,详细过程不赘述,直接复制eureka-client-8761模块可以得到eureka-client-8762服务提供者模块

    启动这个新建(复制)的服务提供者eureka-client-8762

    再次刷新我们的注册中心http://localhost:8760/

    当然,当我们的两个服务提供者是同名的时候,他就是集群了,今天的内容到此为止,谢谢大家!

    ===============================================================================

    如果您觉得此文有帮助,可以打赏点钱给我支付宝或扫描二维码

  • 相关阅读:
    javaWeb普通类获取ApplicationContext
    医学图像处理最全综述
    图像分割最全综述
    解放双手——相机与IMU外参的在线标定
    从零开始一起学习SALM-ICP原理及应用
    SLAM、三维重建,语义相关数据集大全
    SLAM面试常见问题
    SLAM方向国内有哪些优秀公司?
    三维视觉、SLAM方向全球顶尖实验室汇总
    SLAM方向公众号、知乎、博客上有哪些大V可以关注?
  • 原文地址:https://www.cnblogs.com/xulijun137/p/12209693.html
Copyright © 2011-2022 走看看