SpringCloud入门学习(服务注册中心与服务篇)

SpringCloud入门学习(服务注册中心与服务篇)

一、服务注册中心的创建

  1. 首先创建一个空的maven工程,删掉src目录,具体过程我就不演示了,相信大家都会。如下:
    在这里插入图片描述
  2. 前面也讲过,SpringCloud是基于SpringBoot的。所以,接下来创建一个SpringBoot模块:
    在这里插入图片描述
    然后选择Spring Initializr,接着依赖选择:
    在这里插入图片描述
  3. 注意修改SpringCloud版本,本文用的是Finchley.RELEASE,请和我保持版本一致,避免因为版本问题而导致项目无法启动。以下贴出我的registrycentry(服务注册中心)模块的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 http://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.1.6.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.example</groupId>
    <artifactId>registrycentry</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>registrycentry</name>
    <description>Demo project for Spring Boot</description>

    <properties>
        <java.version>1.8</java.version>
        <spring-cloud.version>Finchley.RELEASE</spring-cloud.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <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>
        </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>

</project>
  1. 如果是第一次创建该工程,依赖加载会有点费时,耐心等待就行
    创建并启动一个服务注册中心非常简单,只需按照以下步骤操作即可:
    4.1 启动类添加注解@EnableEurekaServer

    package com.example.registrycentry;
    
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    
    @SpringBootApplication
    @EnableEurekaServer     //表示我是一个服务注册中心,任何服务都需要到服务注册中心进行注册
    public class RegistrycentryApplication {
    public static void main(String[] args) {
        SpringApplication.run(RegistrycentryApplication.class, args);
    }
    }
    

    4.2 配置文件进行如下配置:

    server
      port:8761		#指定服务端口号
    
    eureka:
      client:
    	register-with-eureka: false     #是否需要将自己注册到注册中心,因为该工程自己就是服务注册中心,所以无需注册。如果是多个服务注册中心集群模式,则另当别论
    	fetch-registry: false           #是否向注册中心定时更新自己状态
    

    ok,启动项目,然后访问localhost:8761
    在这里插入图片描述
    可以看到,此时并没有服务进行注册。所以,接着,让我们创建几个服务吧!

二、服务创建并注册

  1. 同样的 new -> module -> Spring Initializr -> 依赖选择 如下:
    在这里插入图片描述
    再次强调,记得修改pom文件 <spring-cloud.version>
    修改前:

    <properties>
        <java.version>1.8</java.version>
        <spring-cloud.version>Greenwich.SR1</spring-cloud.version>
    </properties>
    

    修改后:

      <properties>
        <java.version>1.8</java.version>
        <spring-cloud.version>Finchley.RELEASE</spring-cloud.version>
    </properties>
    

    之后的每个服务也要记得修改!!!

  2. ok,创建一个服务,并将服务注册到服务注册中心,如下步骤操作即可:
    2.1 启动类添加注解@EnableEurekaClient

    package com.example.microservice01;
    
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
    
    @SpringBootApplication
    @EnableEurekaClient			//表示我是一个服务,任何服务都是服务注册者也是服务调用者,都需要注册到服务注册中心
    public class Microservice01Application {
    
    public static void main(String[] args) {
        SpringApplication.run(Microservice01Application.class, args);
    }
    }
    

    2.2 配置文件进行如下配置:

    server:
      port: 8081              #指定服务端口号
      registrycentery: 8761   #服务注册中心端口号
      
    spring:
      application:
        name: MicroService01  #服务名,服务名是唯一的,不同的服务名字不能重复
    
    eureka:
      client:
        register-with-eureka: true    #是否需要将自己注册到注册中心
        fetch-registry: true          #是否向注册中心定时更新自己状态
        service-url:
          default-zone: http://localhost:${server.registrycentery}}/eureka/		#指定去哪个服务注册中心进行注册
    

    启动项目,再去访问localhost:8761 就会发现此时,已经有一个服务注册上去了,服务名为MICROSERVICE01, 默认会将名字显示为全部大写。

  3. 接着,继续创建几个服务,步骤和上面是一样的,我就不再重复演示了。
    并在此基础上,分别写一个简单的接口调用。启动服务,再次打开注册中心localhost:8761 可以看到我启动了3个服务:
    在这里插入图片描述

SpringCloud服务注册中心与服务篇就到这里就结束啦 -> 本篇源码

下一篇我将介绍 -> SpringCloud整合Feign实现服务之间的调用

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章