千家信息网

怎么使用Spring Cloud中API网关

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,本篇内容主要讲解"怎么使用Spring Cloud中API网关",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"怎么使用Spring Cloud中API网关"
千家信息网最后更新 2026年11月01日怎么使用Spring Cloud中API网关

本篇内容主要讲解"怎么使用Spring Cloud中API网关",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"怎么使用Spring Cloud中API网关"吧!

一、为什么需要网关?
安全性:
1.最主要的一点是网关可以将所有服务的API接口统一聚合,并统一对外暴露。外界系统调用API接口时,都是由网关对外暴露的API接口,外界系统不需要知道微服务系统中各个服务之间相互调用的复杂性。微服务系统也保护了七内部微服务单元的API接口,防止其被外部直接调用,导致服务的敏感信息泄露。
2.网关可以做用户身份认证和权限认证,防止非法请求操作API接口,对服务器起到保护作用。
性能:
1.zuul、ribbon、eureka相结合,可以实现路由和负载均衡的功能,zuul可以将请求流量按照默认轮询策略分发到集群状态下的不同服务实例。
作用:
1.可以实现负载均衡、路由转发、实时日志输出、权限控制、系统监控等
2.可以实现流量监控,在高流量的情况下,对服务进行降级

二、网关框架分类
1.Netflix Zuul,zuul是spring cloud的一个推荐组件,https://github.com/Netflix/zuul
--本博客讲解Zuul
2.Kong kong是基于Nginx+Lua进行二次开发的方案, https://konghq.com/
3.orange,这个开源程序是国人开发的, http://orange.sumory.com/

三、怎么使用网关(Zuul)==>实战?
1.jar包依赖
com.suning.drp
drp-gateway
0.0.1
war


drp-parent
com.suning.drp
0.0.1
../drp-parent/pom.xml





org.springframework.cloud
spring-cloud-starter-zuul



org.springframework.cloud
spring-cloud-starter-netflix-zuul



org.springframework.cloud
spring-cloud-starter-netflix-eureka-client

2.配置文件
### eureka注册服务中心
server.port=80
eureka.client.serviceUrl.defaultZone=${eurekaServiceDefaultZone}
### eurekaServiceDefaultZone取值不同环境下的值,例子取的生产中的值,vars.prd.properties
eurekaServiceDefaultZone=http://10.235.5.28:8080/eureka,http://10.235.5.29:8080/eureka,http://10.235.5.30:8080/eureka

### 网关名称
spring.application.name=tigbs-gateway
### 反向代理,将服务的IP隐藏,通过项目名访问
### 以/cms/访问的请求地址转发到管理端
zuul.routes.cms.path=/cms/**
zuul.routes.cms.serviceId=drp-cms
### 以/portal/访问的请求地址转发到管理端
zuul.routes.portal.path=/portal/**
zuul.routes.portal.serviceId=drp-portal
3.启动类
// EnableZuulProxy开启zuul功能
@EnableZuulProxy
// EnableEurekaClient将网关服务当做客户端注册到eureka服务中心
@EnableEurekaClient
@SpringBootApplication
public class GateWayServiceApplication extends SpringBootServletInitializer {

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

@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(GateWayServiceApplication.class);
}
}
4.业务代码--验证用户在客户端是否有登陆
@Component
public class TokenFilter extends ZuulFilter {
//具体过滤的逻辑
public Object run() throws ZuulException {
// 获取上下文
RequestContext currentContext = RequestContext.getCurrentContext();
HttpServletRequest request = currentContext.getRequest();
String userToken = request.getParameter("userToken");
if (StringUtils.isEmpty(userToken)) {
currentContext.setSendZuulResponse(false);
currentContext.setResponseStatusCode(401);
currentContext.setResponseBody("userToken is empty");
return null;
}
// 否则正常执行业务逻辑.....
return null;
}

// 判断过滤器是否生效,为true,说明需要过滤,则执行run()
public boolean shouldFilter() {
return true;
}

// 过滤器的执行顺序。当请求在一个阶段的时候存在多个多个过滤器时,需要根据该方法的返回值依次执行
// 优先级为0,数字越小,越早执行该过滤器
public int filterOrder() {
return 0;
}

// 过滤器类型:pre,post,routing,error四种。 pre表示在请求之前进行拦截
public String filterType() {
return "pre";
}

}

到此,相信大家对"怎么使用Spring Cloud中API网关"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

服务 网关 接口 系统 过滤器 流量 不同 均衡 业务 作用 内容 功能 地址 外界 多个 客户 客户端 方法 服务中心 服务系统 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 重生之互联网科技帝国 深圳互联网络科技有限公司 紫鲸互联网科技 朗涯互联网科技 极限挑战互联网科技 壹账通互联网科技 太原新华互联网科技学校怎么样 济南和联互联网科技有限公司 上海电发互联网科技有限公司 恒银科技与互联网金融 黑科技闪耀互联网之光 如何创新互联网科技 互联网公司黑科技创始人 烟台灵鸽互联网科技有限公司 互联网公司高科技产品 深圳无忧互联网科技 普陀区互联网教育科技管理办法 米泉互联网科技专业怎么样 互联网科技的前景 第三届互联网大会安防黑科技 科技与互联网 青岛互联网科技公司 互联网科技公司有哪些 湖南洣水互联网科技有限公司扣款 玉溪互联网科技怎么选 上海科技产业互联网平台 元气玛特互联网科技公司是外包吗 云鲸互联网络科技有限公司 兰石爱特工业互联网科技分公司 广州三三互联网科技有限公司
0