(6). docker启动:
ENV_HOST="192.168.33.88" ENV_SERVICE_PREFIX="api.order.com" swoftcli run -c http:start -b bin/swoft
2. 总结:
①. 实际开发中,在最外层浏览器与第三方脚本,直接请求nginx上,nginx再进行反向代理.
a. 由nginx进行负载均衡到部署的2-3台网关上.
b. 做一个简单的负载均衡,当一个网关A出现问题,nginx是可以进行转移到网关B中.
c. 网关还可以提供自己的集群转移相关算法.
②. 内网部署几台docker服务器,服务与服务之间是用RPC之间互调.
a. 外部/前端不能直接赤裸裸用http来直连调用这些RPC服务.
b. 因为服务都部署在内网.所以,必须要有一个网关.这个网关是用来跟外部沟通的桥梁.
c. 浏览器去访问网关,由环境变量参数或consul_tag来决定到底使用哪一个后端RPC来完成交互.
d. 第三方合作公司如果没有精力开发调用我们的RPC服务,可以用http方式调用网关.
③. 性能考量:
a. 加网关这个过程肯定是有一定性能损耗.
b. 但是服务一旦复杂后,牺牲一些性能,完成服务的可维护性,是可取的.
④. 功能扩展:
a. 目前只实现了网关做路由转发的功能.
b. 实际开发中,可以把更多精力集中到业务上去,通用的内容利用网关来处理.如:
限流、熔断、集成统一鉴权.
⑤. 功能扩展 - 鉴权:
a. 当浏览器或脚本去请求课程RPC服务时,假设需要对token的解析验证.
b. 如果每个RPC服务都去写token解析验证,会有重复工作.
c. 直接由网关获取用户的token并解析,得到用户信息.
d. 调用RPC服务的时候,可以用参数的方式、头的方式传递过去.