前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >微服务项目:尚融宝(33)(服务调用(3))

微服务项目:尚融宝(33)(服务调用(3))

作者头像
一个风轻云淡
发布2022-11-15 14:43:39
1610
发布2022-11-15 14:43:39
举报
文章被收录于专栏:java学习java

微服务网关

一、创建模块service-gateway

1、创建模块

在srb下创建普通maven模块

Artifact:service-gateway

2、配置pom

在api-gateway的pom中添加如下依赖

代码语言:javascript
复制
<dependencies>
    <!-- 网关 -->
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-gateway</artifactId>
    </dependency>
    <!--服务注册-->
    <dependency>
        <groupId>com.alibaba.cloud</groupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
    </dependency>
</dependencies>

3、配置application.yml

代码语言:javascript
复制
server:
  port: 80 # 服务端口

spring:
  profiles:
    active: dev # 环境设置
  application:
    name: service-gateway # 服务名
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848 # nacos服务地址
    gateway:
      discovery:
        locator:
          enabled: true # gateway可以发现nacos中的微服务,并自动生成转发路由

4、logback.xml

修改日志输出目录名为 gateway

5、创建启动类

代码语言:javascript
复制
@SpringBootApplication
@EnableDiscoveryClient
public class ServiceGatewayApplication {

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

6、启动网关

注意:因为nginx和网关同时使用了80端口,因此先停止nginx,然后再启动网关

nginx.exe -s stop

二、路由配置

1、基本配置

application.yml文件中添加路由配置

代码语言:javascript
复制
#spring:
# cloud:
#   gateway:
      routes:
      - id: service-core
        uri: lb://service-core
        predicates:
        - Path=/*/core/**
      - id: service-sms
        uri: lb://service-sms
        predicates:
        - Path=/*/sms/**
      - id: service-oss
        uri: lb://service-oss
        predicates:
        - Path=/*/oss/**

三、跨域配置

1、配置文件

在 api-gateway中添加跨域配置

代码语言:javascript
复制
@Configuration
public class CorsConfig {
    @Bean
    public CorsWebFilter corsFilter() {
        CorsConfiguration config = new CorsConfiguration();
        config.setAllowCredentials(true); //是否允许携带cookie
        config.addAllowedOrigin("*"); //可接受的域,是一个具体域名或者*(代表任意域名)
        config.addAllowedHeader("*"); //允许携带的头
        config.addAllowedMethod("*"); //允许访问的方式

        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
        source.registerCorsConfiguration("/**", config);

        return new CorsWebFilter(source);
    }
}

2、删除后端跨域配置

删除微服务中的跨域注解 @CrossOrigin

今日bug

failed to req API:localhost:8848/nacos/v1/ns/instance. code:500 msg: java.net.ConnectException

解决 1、检查nacos有没有开启 2、检查nacos开启是否正常 3、nacos和eureka不一样,eureka是项目的一部分,nacos更像是合作伙伴的关系,新手容易忽略

如果nacos正常开启了,重新启动项目,还是不行 (1)检查注解@EnableDiscoveryClient (2)检查配置文件

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-09-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 微服务网关
  • 一、创建模块service-gateway
    • 1、创建模块
      • 2、配置pom
        • 3、配置application.yml
          • 4、logback.xml
            • 5、创建启动类
              • 6、启动网关
              • 二、路由配置
                • 1、基本配置
                • 三、跨域配置
                  • 1、配置文件
                    • 2、删除后端跨域配置
                    • 今日bug
                    领券
                    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档