05-Nacos-Feign-Gateway项目配置使用

一、Nacos配置使用

使用Nacos最为服务注册中心

1、下载nacos,启动起来

下载好Nacos进入bin
在这里插入图片描述
启动NAcos
在这里插入图片描述
在这里插入图片描述
账号密码都是nacos
在这里插入图片描述

2、项目配置依赖

   <!-- 服务注册-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>

3、springboot配置文件配置nacos地址

# nacos服务地址
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848

4、项目启动类上加上注解

// 开启spring——cloud 服务注册中心
@EnableDiscoveryClient

4、启动项目就会被Nacos发现并注册

二、Fegin 微服务接口调用

1、调用方与被调用方都导入Fegin依赖

        <!-- 服务调用feign -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
        </dependency>

2、被调用方操作

编写我们的对外调用接口
@FeignClient(“service-cmn”) 对外调用的微服务名字
接口访问路径写入完整的访问路径
eg:

@FeignClient("service-cmn")
@Repository
public interface DictFeignClient {

    @GetMapping("/admin/cmn/dict/getName/{dictCode}/{value}")
    Result getName(@PathVariable("dictCode") String dictCode,
                   @PathVariable("value") String value);

    @GetMapping("/admin/cmn/dict/getName/{value}")
    Result getName(@PathVariable("value") String value);
}

3、调用方的操作

  1. 导入被调用方的模块依赖
  2. 注入接口即可使用
  3. 启动类配置注解,开启远程调用
  4. // 开启远程调用,指定扫描包 @EnableFeignClients(basePackages = "com.atdk")

三、GateWay网关使用

1、创建网关模块

在这里插入图片描述

2、编写配置文件

# 服务端口
server.port=8888
# 服务名
spring.application.name=service-gateway

# nacos服务地址
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848

#使用服务发现路由
spring.cloud.gateway.discovery.locator.enabled=true

#设置路由id(服务名字)
spring.cloud.gateway.routes[0].id=service-hosp
#设置路由的uri
spring.cloud.gateway.routes[0].uri=lb://service-hosp
#设置路由断言,代理servicerId为auth-service的/auth/路径 (路径匹配)
spring.cloud.gateway.routes[0].predicates= Path=/*/hosp/**

#设置路由id
spring.cloud.gateway.routes[1].id=service-cmn
#设置路由的uri
spring.cloud.gateway.routes[1].uri=lb://service-cmn
#设置路由断言,代理servicerId为auth-service的/auth/路径
spring.cloud.gateway.routes[1].predicates= Path=/*/cmn/**

3、配置跨域问题解决

// 允许跨域配置类
@Configuration
public class CorsConfig {
    @Bean
    public CorsWebFilter corsFilter() {
        CorsConfiguration config = new CorsConfiguration();
        config.addAllowedMethod("*");
        config.addAllowedOrigin("*");
        config.addAllowedHeader("*");

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

        return new CorsWebFilter(source);
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值