微服务网关实战02-网关搭建

在本文中,将会带着大家一步一步进行网关的搭建,主要涉及到日志、鉴权、全局异常、限流、断路、断路看板等

 

这里比较简单,直接新建一个springboot项目即可,整个项目的目录结构如下:

 

微服务网关实战02-网关搭建_第1张图片

网关项目目录结构

pom.xml文件如下:



    4.0.0
    
        org.springframework.boot
        spring-boot-starter-parent
        2.2.5.RELEASE
         
    
    platform
    gateway
    1.0.0.RELEASE
    platform-gateway
    微服务网关实战

    
        1.8
        Hoxton.SR1
        3.1.1
    

    

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

        
        
            org.springframework.boot
            spring-boot-devtools
            true
        

        
        
            org.springframework.boot
            spring-boot-starter-test
            test
            
                
                    org.junit.vintage
                    junit-vintage-engine
                
            
        
    

    
        
            
                org.springframework.cloud
                spring-cloud-dependencies
                ${spring-cloud.version}
                pom
                import
            
        
    

    
        
            
                org.springframework.boot
                spring-boot-maven-plugin
            
        
    


     

main函数如下:

package com.platform.gateway;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.netflix.zuul.EnableZuulProxy;

// 网关注解
@EnableZuulProxy
// 注册中心注解
@EnableDiscoveryClient
@SpringBootApplication
public class PlatformGatewayApplication {

    public static void main(String[] args) {
        SpringApplication.run(PlatformGatewayApplication.class, args);
    }

}

application.yml代码如下:

######配置基本信息###################################
##配置应用名称,强制,需要注册到注册中心
spring.application.name: platform-gateway
##配置时间格式,为了避免精度丢失,全部换成字符串
spring.jackson.timeZone: GMT+8
spring.jackson.dateFormat: yyyy-MM-dd HH:mm:ss
spring.jackson.generator.writeNumbersAsStrings: true
##配置环境+热部署###################################
##代表这需要加载哪个环境,dev代表着会加载application-dev.yml文件中的属性
spring.profiles.active: dev
##热部署启动
spring.devtools.restart.enabled: true
######日志配置###################################
logging.level.com.platform: debug
#######配置路由信息###################################
#数据服务路由前缀配置
zuul.routes.atomic-datas.path: /datas/**
#数据服务对应的原子服务名,此名字与注册中心上的名字一致,不过小写也行
zuul.routes.atomic-datas.serviceId: atomic-datas

application-dev.yml代码如下:

#####配置服务器基础信息#######
#网关的端口
server.port: 8012
#####配置注册中心#######
#将IP注册到注册中心上
eureka.instance.prefer-ip-address: true
#IP名称
eureka.instance.instance-id: ${spring.cloud.client.ip-address}:${server.port}
#注册中心地址
eureka.client.service-url.defaultZone: http://127.0.0.1:8761/eureka/

logback-spring.xml代码如下:







	logback

	
	

	
	
	
	
	
	
	

	
	
		
		
			debug
		
		
			${console_log_pattern}
			
			UTF-8
		
	

	
	
	
		
		${log.path}/appDebug.log
		
		
			%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n
			UTF-8 
		
		
		
			
			${log.path}/appDebug-%d{yyyy-MM-dd}.%i.log
			
				100MB
			
			
			15
		
		
		
			debug
			ACCEPT
			DENY
		
	

	
	
		
		${log.path}/appInfo.log
		
		
			%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n
			UTF-8
		
		
		
			
			${log.path}/appInfo-%d{yyyy-MM-dd}.%i.log
			
				100MB
			
			
			15
		
		
		
			info
			ACCEPT
			DENY
		
	

	
	
		
		${log.path}/appWarn.log
		
		
			%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n
			UTF-8 
		
		
		
			${log.path}/appWarn-%d{yyyy-MM-dd}.%i.log
			
				100MB
			
			
			15
		
		
		
			warn
			ACCEPT
			DENY
		
	

	
	
		
		${log.path}/appError.log
		
		
			%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n
			UTF-8 
		
		
		
			${log.path}/appError-%d{yyyy-MM-dd}.%i.log
			
				100MB
			
			
			15
		
		
		
			ERROR
			ACCEPT
			DENY
		
	

	
	
		
			
			
			
			
		
	

	
	
		
			
			
			
			
		
	

	
	
		
			
			
			
			
		
	


运行main函数,然后通过网关调用接口

后端接口:
http://localhost:8013/web/demo/user/test

网关接口:
http://localhost:8012/datas/web/demo/user/test

注意对比:网关调用接口的时候,加了datas,这个属性就在我们的application.yml里面进行配置,最后得到结果如下:

微服务网关实战02-网关搭建_第2张图片

 

至此网关项目搭建成功。

下面将会做网关的全局异常拦截

你可能感兴趣的:(微服务网关)