微服务2-网关

1.加入eureka-client和zuul启动器

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-zuul</artifactId>
</dependency>

2.添加application.yml相关配置

server:
  port: 10010
spring:
  application:
    name: xxxx-gateway
eureka:
  client:
    service-url:
      defaultZone: http://localhost:10086/eureka
    registry-fetch-interval-seconds: 5
zuul:
  prefix: /api
  routes:
    item-service: /item/** #路由到商品的微服务
    search-service: /search/** #路由到搜索微服务
  1. 添加启动类
@SpringBootApplication
@EnableDiscoveryClient
@EnableZuulProxy
public class GatewayApplication {

    public static void main(String[] args) {
        SpringApplication.run(GatewayApplication.class);
    }
}
  1. 用网关处理跨越相关请求
@Configuration
public class CorsConfiguration {

    @Bean
    public CorsFilter corsFilter() {

        // 初始化cors配置对象
        CorsConfiguration corsConfiguration = new CorsConfiguration();
        // 允许跨域的域名,如果要携带cookie,不能写*, *代表所有域名都可以跨域访问
        corsConfiguration.addAllowedOrigin("http://manage.xxxx.com");
        corsConfiguration.addAllowedOrigin("http://www.xxxx.com");
        corsConfiguration.setAllowCredentials(true); //设置是否允许携带cookie
        corsConfiguration.addAllowedMethod("*");  // 代表所有的请求方法, GET, POST, PUT, Delete
        corsConfiguration.addAllowedHeader("*");  // 允许携带任何头信息

        // 初始化cors配置源对象
        UrlBasedCorsConfigurationSource configurationSource = new UrlBasedCorsConfigurationSource();
        configurationSource.registerCorsConfiguration("/**", corsConfiguration);

        // 返回corsFilter实例, 参数: cors配置源对象
        return new CorsFilter(configurationSource);
    }
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。