4位网关高手论道:什么才是好的Spring Cloud API 网关?

Posted OmniStack

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了4位网关高手论道:什么才是好的Spring Cloud API 网关?相关的知识,希望对你有一定的参考价值。


8月20号,Spring Cloud中国社区携手秦苍科技成功举办上海网关专题会议。4位来自一线互联网公司资深架构师刘石明、林丹、许进、罗辉分享了网关建设心得。53位来自不同行业的技术人员来到现场,气氛热烈。


Spring Cloud中国社区发起人许进介绍,Spring Cloud在中国发展不过数年,但已经有秦苍科技、华为、上汽通用、饿了么、点融等28家企业率先使用Spring Cloud技术。


API网关提供API全托管服务,帮助企业管理大规模的API,降低管理成本,实现协议适配、协议转发、安全策略(WAF)、防刷、流量管控、日志监控等功能。


Spring Cloud中国社区发起人许进


API网关有流量管控、安全防护、统一接入、协议适配的作用。API网关为企业移动应用提供统一接入服务,常用于负载均衡、容灾切换等场景,因此对性能、并发性、可靠性都有非常高的要求。


API网关在监测到异常流量时,可以采取服务降级、熔断的措施,可以对流量进行灵活动态的管控。API网关也起到安全防护的功能,提供IP黑名单和URL黑名单,也可以自定义各种安全规则,起到防恶意攻击的作用。


除此之外,网关在前端系统(http、http2)和后端业务(RPC)起到协议适配的作用,提供长、短连接支持,根据前端请求路由至相应的后端微服务并执行,返回结果给前端。


许进分享了自研API网关的心得。API网关配置方面,可以配置灰度策略、回滚策略并且实时生效。API网关安全方面,可以设置安全规则,实施流量管控等,达到应用防火墙的作用。API网关监控方面,可以进行告警,流量监控等操作。

 

在API网关的研发经历上,秦苍科技的架构师林丹介绍了公司API网关从无到有,从一到多,从单一到多元的经验。


API网关分为接入层网关和应用层网关。接入层API网关可以作为入口网关,面向web应用、面向mobile应用和面向物联网设备,也可以作为面向合作渠道的出口网关,而应用层API网关主要的服务对象是内部服务。


4位网关高手论道:什么才是好的Spring Cloud API 网关?

秦苍科技架构师林丹


在保障基本路由转发外,API网关更在秦苍科技的微服务治理中扮演重要角色。随着规模化管理和业务需求的快速增长,其在服务分组管控、灰度发布、熔断监控、容器化迁移、统一出入口管理等场景都有深入实践,并且还在不断演进发展中。


4位网关高手论道:什么才是好的Spring Cloud API 网关?

饿了么资深工程师罗辉

 

和秦苍科技一样,饿了么同样面临着节假日流量洪峰的挑战,饿了么资深工程师罗辉介绍,饿了么有来自商户、用户、骑手APP三个不同入口的流量压力,集中在上午10点、下午4点左右和晚上。每天有千万级订单,如何快速解决故障,保护后端服务变成了重中之重。


饿了么采用API网关提升稳定性,其API网关实现了各种过滤器,如限流、熔断、跨域、缓存、反爬虫、用户画像和异地多活路由。


在异地多活应用场景中,饿了么在阿里云和腾讯云都建立了API router,在北京和上海都有数据中心。用户流量路由将用户、商户、骑手根据地理位置路由对应到不同的数据中心,数据中心的数据可以相互复制,为系统的稳定性、可用性提供了保障。

 

点融网资深架构师刘石明在会上分享了《我们是如何利用 gRPC做服务化及网关》,gRPC 是一个高性能、开源和通用的 RPC 框架,面向移动应用和 HTTP/2 设计,目前提供 CJava Go 语言版本。刘石明还介绍了点融网的API网关实践:Saluki Gateway。


4位网关高手论道:什么才是好的Spring Cloud API 网关?

点融网资深架构师刘石明


对于在企业实践中的网关建设,大家展开了激烈讨论。罗辉认为,网关的稳定性建设十分重要。


好的网关,不仅能够保护后端,还能保护自己,同时能够满足紧急扩容的需要。在企业实践中,如何防范DDOS攻击,识别爬虫,规范每次发布的代码,在未来还有很大进步空间。



4位网关高手论道:什么才是好的Spring Cloud API 网关?


OmniStack

秦苍Geek的聚集地







以上是关于4位网关高手论道:什么才是好的Spring Cloud API 网关?的主要内容,如果未能解决你的问题,请参考以下文章

什么才是好的电商模式呢?

一个故事告诉你什么才是好的程序员

Python金融量化 10- 100 十怎样的收益率预测模型才是好的模型?

什么才是好代码高质量代码?

什么才是好代码高质量代码?

究竟怎么样的域名才是好的域名呢