We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
具体情况是这样的,目前后端由c++、golang、java组成,最开始只有c++,c++那边自研了一套rpc的框架,后来java和go也接入到这套框架上,接下来又自研了网关服务,入口网关用的nginx,这样整体结构如下: nginx->自研网关->微服务 同时静态资源由nginx转发。
目前想要通过opensergo实现灰度发布,同时支持前端静态资源灰度和后端服务灰度,结合目前的情况想了以下几种方案,但是都存在一定问题: 1、将现有的nginx拆分成灰度和正式,在nginx之上再加一层网关,并且新加的网关原生支持opensergo,将流量分发到灰度或者正式的nginx,然后通过nginx打灰度标记,通过自研网关转发到灰度或者正式的微服务上。 考虑这种方案的原因是,原本已经做过一套灰度发布方案,注册中心支持区分灰度节点和正式节点,但是现有方案对于灰度规则的配置方式过于不合理,需要写配置文件,操作复杂,支持的规则只有一种,而且由于某些原因存在一定的业务侵入。 目前由于未找到nginx直接接入opensergo的相关文档,使用其它网关如springcloud等需要额外的调研和接入成本,但是看起来开发量更小。
2、基于方案1,在自研网关和rpc层面完全改造,支持opensergo的协议,并给nginx提供脚本,通过opensergo的配置规则识别流量。 这样的好处是规则相对配置更灵活且能够实时生效,缺点是改造量太大。
3、不考虑opensergo,重做一套用于配置和验证灰度规则的功能,再由nginx、网关做接入。 这样做的好处是成本可控,而且对于大多数采用docker compose部署的项目,方便接入,不像opensergo目前强依赖k8s,缺点是轮子越造越多,维护更困难。
目前思考出了这三种方案,想讨论一下哪种方式更合理,或者还有没有其它方式
The text was updated successfully, but these errors were encountered:
No branches or pull requests
具体情况是这样的,目前后端由c++、golang、java组成,最开始只有c++,c++那边自研了一套rpc的框架,后来java和go也接入到这套框架上,接下来又自研了网关服务,入口网关用的nginx,这样整体结构如下:
nginx->自研网关->微服务
同时静态资源由nginx转发。
目前想要通过opensergo实现灰度发布,同时支持前端静态资源灰度和后端服务灰度,结合目前的情况想了以下几种方案,但是都存在一定问题:
1、将现有的nginx拆分成灰度和正式,在nginx之上再加一层网关,并且新加的网关原生支持opensergo,将流量分发到灰度或者正式的nginx,然后通过nginx打灰度标记,通过自研网关转发到灰度或者正式的微服务上。
考虑这种方案的原因是,原本已经做过一套灰度发布方案,注册中心支持区分灰度节点和正式节点,但是现有方案对于灰度规则的配置方式过于不合理,需要写配置文件,操作复杂,支持的规则只有一种,而且由于某些原因存在一定的业务侵入。
目前由于未找到nginx直接接入opensergo的相关文档,使用其它网关如springcloud等需要额外的调研和接入成本,但是看起来开发量更小。
2、基于方案1,在自研网关和rpc层面完全改造,支持opensergo的协议,并给nginx提供脚本,通过opensergo的配置规则识别流量。
这样的好处是规则相对配置更灵活且能够实时生效,缺点是改造量太大。
3、不考虑opensergo,重做一套用于配置和验证灰度规则的功能,再由nginx、网关做接入。
这样做的好处是成本可控,而且对于大多数采用docker compose部署的项目,方便接入,不像opensergo目前强依赖k8s,缺点是轮子越造越多,维护更困难。
目前思考出了这三种方案,想讨论一下哪种方式更合理,或者还有没有其它方式
The text was updated successfully, but these errors were encountered: