第三章:搭建最简单的spring cloud应用(服务注册,网关路由转发)

引言

不用任何第三方开源框架,集成最简单的spring cloud微服务应用。包括使用eureka注册中心实现服务发布到注册中心中,gateway实现网关路由转发。

1、我们先创建一个简单的maven项目
(1)、maven的简介,maven的两大核心功能

  • 依赖管理(jar包管理)
  • 构建项目(项目打包)


    第三章:搭建最简单的spring cloud应用(服务注册,网关路由转发)_第1张图片
    创建一个maven父模块项目

2、然后基于父模块项目创建module子模块项目 eureka注册中心

第三章:搭建最简单的spring cloud应用(服务注册,网关路由转发)_第2张图片
创建eureka注册中心

pom文件拷贝父模块的eureka的服务端依赖


        
            org.springframework.cloud
            spring-cloud-starter-netflix-eureka-server
        
    

eureka的pom.xml文件



    
        yu-study
        com.zhushengyu.study
        0.0.1-SNAPSHOT
    
    4.0.0

    yu-study-eureka

    
        
            org.springframework.cloud
            spring-cloud-starter-netflix-eureka-server
        
    



将父模块之前创建的工程src文件删除,父模块的功能主要就是为了管理jar包。整理的工程如图


第三章:搭建最简单的spring cloud应用(服务注册,网关路由转发)_第3张图片
image.png

启动eureka子模块EurekaApplication的main方法(适当进行了日志答应的改造)

spring boot默认集成slf4j框架,它定义了一些日志接口,规范日志输出,真正的实现是logback或log4j。我们代码中写的都是slf4j的代码。

启动成功如图


第三章:搭建最简单的spring cloud应用(服务注册,网关路由转发)_第4张图片
启动成功图

可以点击这个地址,浏览器就可以进入注册中心了


第三章:搭建最简单的spring cloud应用(服务注册,网关路由转发)_第5张图片
注册中心

注册中心可以看到,目前没有其它任何服务

3、我们现在添加子模块gateway网关模块
引用的依赖,先添加最简单的 spring cloud自己gateway模块依赖,以及eureka注册中心客户端依赖



    
        yu-study
        com.zhushengyu.study
        0.0.1-SNAPSHOT
    
    4.0.0

    yu-study-gateway

    
        
            org.springframework.cloud
            spring-cloud-starter-gateway
        
        
            org.springframework.cloud
            spring-cloud-starter-netflix-eureka-client
        
    

然后创建一个eureka的客户端的基于gateway的main方法启动类


第三章:搭建最简单的spring cloud应用(服务注册,网关路由转发)_第6张图片
image.png

其中application.yml文件需要指定eureka的注册中心地址

eureka:
  client:
    service-url:
      defaultZone: http://localhost:8761/eureka/
server:
  port: 9000
spring:
  application:
    name: yu-study-gateway

先启动eureka注册中心,再启动gateway网关,重新访问下eureka注册中心


第三章:搭建最简单的spring cloud应用(服务注册,网关路由转发)_第7张图片
image.png

此时就发现服务注册上去了

4、我们现在再创建一个系统的业务模块,后面开发功能可以在这个业务模块中写公司对应的业务,这里只演示一个模块,其它业务模块类似。在父模块的基础上添加子模块。
这里我们只引入最基本的依赖,web程序访问的依赖,eureka客户端依赖



    
        yu-study
        com.zhushengyu.study
        0.0.1-SNAPSHOT
    
    4.0.0

    yu-study-system

    
        
            org.springframework.cloud
            spring-cloud-starter-netflix-eureka-client
        

        
            org.springframework.boot
            spring-boot-starter-web
        
    


第三章:搭建最简单的spring cloud应用(服务注册,网关路由转发)_第8张图片
创建好的业务模块

然后我们写个最简单的controller

package com.zhushengyu.study.yustudy.system.controller;

import org.springframework.web.bind.annotation.GetMapping;

/**
 * @Description TODO
 * @Author jin_z
 * @Date 2020/6/7 13:59
 * @since:
 * @copyright:
 */
public class TestController {

    @GetMapping("/test")
    public String test(){
        return "success";
    }
}

yml文件配置注册到注册中心去

eureka:
  client:
    service-url:
      defaultZone: http://localhost:8761/eureka/
server:
  port: 9001
  servlet:
    context-path: /system
spring:
  application:
    name: yu-study-system

如图项目结构


第三章:搭建最简单的spring cloud应用(服务注册,网关路由转发)_第9张图片
image.png

重新启动eureka注册中心,然后启动业务模块system
此时注册中心就可以看到我们注册的服务了


第三章:搭建最简单的spring cloud应用(服务注册,网关路由转发)_第10张图片
image.png

我们访问下那个controller的请求

第三章:搭建最简单的spring cloud应用(服务注册,网关路由转发)_第11张图片
image.png

此时我们是直接通过system项目端口访问的,这根本没有达到gateway路由转发的效果,我们要通过网关9000端口去访问其它业务请求。此时在gateway的yml文件下配置一下路由转发就行,多个业务模块就配置多个路由转发


第三章:搭建最简单的spring cloud应用(服务注册,网关路由转发)_第12张图片
image.png
eureka:
  client:
    service-url:
      defaultZone: http://localhost:8761/eureka/
server:
  port: 9000
spring:
  application:
    name: yu-study-gateway
  ##路由转发
  cloud:
    gateway:
      routes:
        -   id: system
            predicates:
              -   args:
                    - /system/**
                  name: Path
            uri: http://127.0.0.1:9001

重启gateway服务,此时浏览器就可以通过9000端口访问了

第三章:搭建最简单的spring cloud应用(服务注册,网关路由转发)_第13张图片
image.png

这样后期所有的其它业务模块都可以通过这个统一网关入口进行访问,后期其它业务模块可以进行屏蔽掉,只能通过网关访问。对应的服务限流什么请求都可以通过网关实现
路由转发:将外部请求转发到实际的业务模块进行处理
作者:金哲一(jinzheyi)【笔名】
本文代码地址: https://gitee.com/jinzheyi/springboot/tree/master/springcloud-study
本文链接: https://www.jianshu.com/p/3c39323172b8

你可能感兴趣的:(第三章:搭建最简单的spring cloud应用(服务注册,网关路由转发))