Springboot集成zuul网关和config分布式配置管理中心

创建网关服务项目

网关官方文档

引入zuulMaven地址

<!--网关-->
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-netflix-zuul</artifactId>
    </dependency>
    <!--actuator监测中心-->
    <dependency>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>
     <!--eureka客户端--->
     <dependency>
			 <groupId>org.springframework.cloud</groupId>
			 <artifactId> spring-cloud-starter-netflix-eureka-client</artifactId>
    </dependency>
     <!--springcloudconfig客户端配置服务中心-->
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-config-client</artifactId>
    </dependency>

配置服务调用规则

application.wml

 spring:
  application:
    name: zuul

eureka:
  client:
    #registerWithEureka: false #false:不作为一个客户端注册到注册中心
    #fetchRegistry: false     
    #serviceUrl:
      #defaultZone: http://localhost:8761/eureka/
server:
  port: 80

# 这一段zuul配置也可以用一个单独的配置服务项目进行实时更新
#服务一member
#只要请求包含logins的都将拦截走nember服务
#服务二pay
*****************************start*********************************
zuul:
  routes:
    users:
      path: /login/**
      serviceId: member
    pay:
      path: /pay/**
      serviceId: pay
#如果模块服务有做集群的,zuul网关会默认做轮询机制
  #配置zuul路由时用将此属性设置为false//转发调用服务出错,修改为true
ribbon:
  ReadTimeout: 60000
  ConnectTimeout: 60000
  MaxAutoRetries: 0
  MaxAutoRetriesNextServer: 1
  eureka:
    enabled: true
    *******************************end*****************************************


    #开启所有端口的监控
management:
	  endpoints:
	    web:
	      exposure:
	        include: "*"

启动器:

加入这几个注解OK

@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})
@EnableZuulProxy
@EnableEurekaClient
public static void main(String[] args) {
    SpringApplication.run(ZuulServer.class,args);
}
 //配置时施更新
    @RefreshScope
    @ConfigurationProperties("zuul")
    public ZuulProperties zuulProperties(){
        return  new ZuulProperties();
    }

网关过滤器使用:

	@Component
	public class ZuulFilters extends com.netflix.zuul.ZuulFilter {
	    //filterType代表过滤类型
	    @Override
	    public String filterType() {
	        return null;
	    }
	    //filterOrder代表过滤器顺序
	    @Override
	    public int filterOrder() {
	        return 0;
	    }
	    //shouldFilter代表这个过滤器是否生效  设置为true生效
	    @Override
	    public boolean shouldFilter() {
	        return true;
	    }
	    //处理逻辑的地方,做权限控制、日志等都是在这里
	    @Override
	    public Object run() throws ZuulException {
	        return null;
	    }
	}

分布式配置服务中心

在这里插入图片描述

maven地址:

    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-config-server</artifactId>
    </dependency>

配置:application.yml

eureka:
  client:
    service-url:
      defaultZone: http://localhost:8761/eureka/

spring:
  application:
    name: config-server
  cloud:
    config:
      server:
        git:
          uri:   #git远程配置文件地址
          search-paths:
            - gkconfig
        native:
          search-locations: #本地地址
      label: master  #分支
server:
  port: 8888

启动器

	@EnableConfigServer
	@EnableDiscoveryClient
	@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})
	public class ConfigServer {
	    public static void main(String[] args) {
	        SpringApplication.run(ConfigServer.class,args);
	    }
	}
发布了78 篇原创文章 · 获赞 6 · 访问量 6723

猜你喜欢

转载自blog.csdn.net/YHM_MM/article/details/104384173