一、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")@RepositorypublicinterfaceDictFeignClient{@GetMapping("/admin/cmn/dict/getName/{dictCode}/{value}")ResultgetName(@PathVariable("dictCode")StringdictCode,@PathVariable("value")Stringvalue);@GetMapping("/admin/cmn/dict/getName/{value}")ResultgetName(@PathVariable("value")Stringvalue);}
3、调用方的操作
- 导入被调用方的模块依赖
- 注入接口即可使用
- 启动类配置注解,开启远程调用
//开启远程调用,指定扫描包@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#设置路由的urispring.cloud.gateway.routes[0].uri=lb://service-hosp#设置路由断言,代理servicerId为auth-service的/auth/路径(路径匹配)spring.cloud.gateway.routes[0].predicates=Path=/*/hosp/**#设置路由idspring.cloud.gateway.routes[1].id=service-cmn#设置路由的urispring.cloud.gateway.routes[1].uri=lb://service-cmn#设置路由断言,代理servicerId为auth-service的/auth/路径spring.cloud.gateway.routes[1].predicates=Path=/*/cmn/**
3、配置跨域问题解决
//允许跨域配置类@ConfigurationpublicclassCorsConfig{@BeanpublicCorsWebFiltercorsFilter(){CorsConfigurationconfig=newCorsConfiguration();config.addAllowedMethod("*");config.addAllowedOrigin("*");config.addAllowedHeader("*");UrlBasedCorsConfigurationSourcesource=newUrlBasedCorsConfigurationSource(newPathPatternParser());source.registerCorsConfiguration("/**",config);returnnewCorsWebFilter(source);}}