作者回复: 很好的建议,后面考虑专门就这个主题写一篇公众号文章,作为技术普及铺垫,请留意我的公众号《波波微课》。
作者回复: 对,拆分成微服务了,但是这些微服务的前端应用模块,有些可是单页应用形式,有些仍然可以是web mvc应用形式,后台则一般都是api/服务。比如,携程网站后台基本都微服务了,前台的主站还是web mvc形式,也有支持无线的h5单页应用形式。
作者回复: Spring Cloud Gateway还比较新,生产级落地案例还不多。可以关注测试和试点,课程后面有一节主流网关概览也会谈到Spring Cloud Gateway。
作者回复: 网关躲在负载均衡器后面,一般无状态,可以按需部署多台,分摊负载。
作者回复: Nginx可以做集群实现HA,例如采用keepalived可实现Active-Active HA,具体可以参考nginx官方文档: https://docs.nginx.com/nginx/admin-guide/high-availability/ha-keepalived-nodes/ 另外,对于中大规模企业应用,建议nginx采用无状态集群部署,前置硬件负载均衡器(如F5)对nginx进行负载均衡,点评camel可以对分布式nginx集群进行集中管控,参考:https://github.com/dianping/camel
作者回复: 课程案例staffjoy应用是前后分离的微服务架构,所有应用/微服务都可以部署在容器云(如k8s)集群中,并且所有应用/微服务都是躲在网关Fraday后面,这里的Faraday起的作用即是网关,也是反向代理(和nginx类似)。 目前不少企业的前后分离和微服务架构,因为遗留系统等因素,做法不一,把前端和nginx部署在一起也是一种做法,不过部署起来比较麻烦一点。staffjoy是支持一键部署到容器云环境,可以单个服务部署,也可以一起部署,都很简单,因为不管前端单页还是Spring微服务,都是等价的应用或服务。
作者回复: 考虑kong/traefik/envoy等这些支持通过api动态热加载的反向代理,或者采用支持动态热加载的nginx扩展,如点评的camel:https://github.com/dianping/camel
作者回复: nginx是通用反向代理,网关也可以部署在nginx后面,这个时候nginx可以对网关做反向路由和负载均衡等功能。