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
该issue是对功能实施的一个讨论贴...细节还待补充
数据流图如下:
该方案仅为草案,请各位进行讨论和补充
方案图中以Zookeeper作为集群实例上报,目前该 Application SDK 项目地址sofa-dashboard-client.
假设存在应用实例 a(ip:10.1.1.1,rpc-port:9090, http-port:8080), 服务名A
如下为实例对应的会话节点, 其中/app/instance/A为永久节点, 其value值可以记录应用维度的一些配置:
/app/instance/A
/apps/instance/A/10.1.1.1:8080?startTime=<startTime>&lastRecover=<lastRecover>
通过接口直接对接apollo-portal,不关心apollo背后对接的用户体系实现.
由于 apollo 有一套良好的账号系统逻辑,支持通过LDAP或者自定义逻辑接入企业已有的账号系统,因此Dashboard这边只需要考虑对apollo的账号系统进行对接。关于apollo的账号系统拓展参考apollo认证逻辑
该对接功能包含如下几个不足之处:
用户登录后,使用apollo操作过程过程可以参考使用文档,简要包含了如下几个过程:
通过上报应用信息自动创建apollo应用定义
我们期望在SOFADashboard在管理的时候简化创建应用过程,使用上报的应用信息自动创建一个缺省应用。这样在用户行为上就只保留对namespace的操作和配置修改操作,增强易用性。
使用和 apollo-portal 接口直接对接方式而不是 OpenApi 对接
apollo除了前端调用的接口以外,还支持OpenApi的方式进行接入。
但是该方案有一定局限性:
首先,只有超级管理员能创建 OpenApi token; 事实上下发配置者几乎不是超级管理员,而是应用管理者;
其次 OpenApi 的局限性很强,比如不支持创建用户,不支持创建应用等功能;
最后,有的用户在自己的环境下已经有一套独立运行的 apollo 服务了,我们希望 Dashboard 的调用逻辑和 portal 保持一致,而不是魔改一些逻辑,这样即使使用了Dashboard也不会影响到apollo独立运行的状态.
因此综上所述,我们采用直接对接 portal 接口的方式对 apollo-portal进行调用
apollo 本质上是依靠多维度的方式去管理一个config,为了实现服务管控,需要在RPC SDK中针对下发配置进行监控并执行相关操作。
config
目前我想的方案是先支持应用维度的环境变量,形如:
@RestController public class HelloController { @SofaReference(binding = @SofaReferenceBinding(bindingType = "bolt", lb="${hello.service.lb:roundRobin}")) private HelloService service; @GetMapping public String hello(@RequestParam("name") String name) { return service.sayHello(name); } }
使用环境变量注入的方式和apollo用户使用习惯一致,也较容易实现。
后期的方案,则可以脱离环境变量,直接在Dashboard界面上通过服务维度进行操作;
The text was updated successfully, but these errors were encountered:
补充:
其他
Sorry, something went wrong.
No branches or pull requests
一. 数据流模型
数据流图如下:
二. 方案流程细节说明
该方案仅为草案,请各位进行讨论和补充
1. 关于应用实例上报和应用读取
方案图中以Zookeeper作为集群实例上报,目前该 Application SDK 项目地址sofa-dashboard-client.
假设存在应用实例 a(ip:10.1.1.1,rpc-port:9090, http-port:8080), 服务名A
如下为实例对应的会话节点, 其中
/app/instance/A
为永久节点, 其value值可以记录应用维度的一些配置:2. 关于接入apollo(Important)
系统账号对接
由于 apollo 有一套良好的账号系统逻辑,支持通过LDAP或者自定义逻辑接入企业已有的账号系统,因此Dashboard这边只需要考虑对apollo的账号系统进行对接。关于apollo的账号系统拓展参考apollo认证逻辑
该对接功能包含如下几个不足之处:
关于对 Portal Server 的调用
用户登录后,使用apollo操作过程过程可以参考使用文档,简要包含了如下几个过程:
我们期望在SOFADashboard在管理的时候简化创建应用过程,使用上报的应用信息自动创建一个缺省应用。这样在用户行为上就只保留对namespace的操作和配置修改操作,增强易用性。
apollo除了前端调用的接口以外,还支持OpenApi的方式进行接入。
但是该方案有一定局限性:
首先,只有超级管理员能创建 OpenApi token; 事实上下发配置者几乎不是超级管理员,而是应用管理者;
其次 OpenApi 的局限性很强,比如不支持创建用户,不支持创建应用等功能;
最后,有的用户在自己的环境下已经有一套独立运行的 apollo 服务了,我们希望 Dashboard 的调用逻辑和 portal 保持一致,而不是魔改一些逻辑,这样即使使用了Dashboard也不会影响到apollo独立运行的状态.
因此综上所述,我们采用直接对接 portal 接口的方式对 apollo-portal进行调用
3. 关于服务管控维度
apollo 本质上是依靠多维度的方式去管理一个
config
,为了实现服务管控,需要在RPC SDK中针对下发配置进行监控并执行相关操作。目前我想的方案是先支持应用维度的环境变量,形如:
使用环境变量注入的方式和apollo用户使用习惯一致,也较容易实现。
后期的方案,则可以脱离环境变量,直接在Dashboard界面上通过服务维度进行操作;
The text was updated successfully, but these errors were encountered: