小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。
在spring cloud netflix时使用zuul作为官网,但是随着zuul2.0的多次跳票和getway异军突起。getway已经是一款主流的产品了,同时springcloud alibaba官网的推荐网关也是getway,所以在选型时不需要犹豫。干就完了。同时getway使用了webflux,较第一代网关更优秀。
1.为什么使用网关
使用网关后,对于系统相当有了一个统一的入口,例如你有100个微服务系统,现在只需要对外暴露网关的地址即可。同时所有的请求都是通过网关的分发,所以很方便的在网关上对请求拦截,重而实现反向代理,鉴权,流量控制,熔断,日志监控等。
2.实现
getway基础实现很简单。鉴权等功能会在以后章节中发布。
1.添加pom.xml
1 | xml复制代码 <dependency> |
注意:getway使用的是webflux,不要引入spring-boot-starter-web
2.修改启动类
1 | less复制代码@EnableDiscoveryClient |
3.bootstrap.yml
getway也需要注册到nacos中。也需要将namespace和group对应。
1 | yaml复制代码server: |
楼主因为在小公司,所以只使用该规则就满足了业务要求,如果有其他规则使用,请自行百度,这里不具体介绍。
注意:
- getway只能获取同namespace和group中的服务。
- websocket接口与普通接口用以上配置就可以同时接受,不用额外配置路由。
3.配置oauth2的跨域
spring cloud ouath2 + getway跨域是有特别的配置的(与普通跨域不同)需要特别注意。
1.修改bootstrap.yml
1 | yaml复制代码spring: |
2.添加GatewayConfig
1 | kotlin复制代码import org.springframework.boot.context.properties.EnableConfigurationProperties; |
注意如果网关中添加了跨域配置,业务服务就不要添加了,否则就会报错!
本文转载自: 掘金