作者回复: 技术上两者有点相似,但是gateway比esb更轻量,gateway基本上就是一个转发代理,一般不做较重的协议转换,传统esb一般里头有较重的转换逻辑;另外gateway一般处在微服务的边界上,企业内部服务一般可以采用直连,暴露出去的时候才需要通过gateway,gateway一般无状态,可以水平扩,另外gateway可以通过容错限流等手段保证高可用性,esb一般处在企业内部,是一个中心hub,所以有单点风险。
作者回复: 请参考我之前在聊聊架构公众号发表的文章《现代发布技术》https://mp.weixin.qq.com/s/WdCM6cOmjdhAEa6PtviH9A
作者回复: 可以做成动态刷新方式就不需要重启了,比如我之前公司在网关里头有个scheduler,定期去一个中央地址服务拉取最新地址信息。
作者回复: 对,在工作中思考实践过,再学习课程效果会更好。
作者回复: 是,Gateway本质上也是一种反向代理,Zuul/Nginx都可以实现,Nginx比较传统一点,用c/lua写门槛高点,偏运维,Zuul则基于Java,对开发更友好,适合DevOps。
作者回复: 不建议在网关上做RPC到HTTP转换(虽然可以这样做),建议开发适配服务(也叫聚合转换服务或BFF),在后台RPC和网关之间专门做转换聚合等适配工作。
作者回复: 网关可以集成负载均衡,比Zuul对接Eureka/Ribbon实现软负载。如果内部服务使用集中式负载,比如nginx,则网关不需要负载均衡功能,可直接通过域名调服务,会间接通过nginx做负载均衡。
作者回复: 可关注我的《微服务架构实践160讲》,其中一个模块专门讲zuul网关实践。
作者回复: 要多参与项目实践加深理解,也可进一步学习我的视频课程《微服务架构和实践160讲》,既有理论也更偏重实践。
作者回复: 技术上ok,html页面应用也算一种BFF,实际要看企业具体技术和业务上下文。
作者回复: 《微服务架构实战160讲》会专门有一模块剖析eureka。eureka是开源的,问题实在搞不定,就拉原码到本地跟踪调试一把。
作者回复: 谢谢支持🌹
作者回复: 多谢支持🌹