Comments (16)
那是因为你把meta server在每个环境都配置成一样了。
在build.sh里面有设置meta server地址的地方,需要确保都设置对了。
更多内容,可以参考文档。
from apollo.
哦,明白了,意思是不同的环境需要有不同的config service,对应不同环境的ApolloConfigDB,如:
dev_meta=http://localhost:8080
fat_meta=http://localhost:8081
uat_meta=http://localhost:8082
pro_meta=http://localhost:8083
Portal只是对不同环境的Config Service配置操作
from apollo.
是的,Portal只是对不同环境的Admin Service配置操作,更多信息可以参考Apollo配置中心设计
from apollo.
这种配置为什么不配置在表里面 感觉这个设计比较奇葩
from apollo.
放在表里的话,客户端如何知道meta server地址?
from apollo.
去注册中心拿
from apollo.
你们的这个配置中心目前为止感觉所有的开源的里面最好用的,最全的 只有这点 有多地方需要构建,这点设计待商榷 ,其实可以很多的配置可以 配到表里发布到注册中心
不过总体还是很强大的
from apollo.
我们的meta server就相当于你说的注册中心。。。
所以,问题来了,客户端怎么知道注册中心在哪里。。。
from apollo.
这个。。。应该是设计的风格了 客户端其实只需要配置一个注册中心的地址,然后所有的都去拿
from apollo.
恩,这个就和网络策略有关了,我们的设计思路是各环境间严格隔离,也就是比如测试环境的应用无法访问到生产环境的服务(只对极少量的工具应用开放访问其它环境的服务,如apollo-portal),所以我们是在每个环境都部署了一个meta server,用来作为客户端的注册中心。
所以必须在客户端配置上各个环境的meta server地址,才有了把meta server地址打包在jar包里的做法。
这块确实不是最完美的方式,之前我们还考虑过把配置服务的地址写在机器上的server.properties中,这样就不需要在jar包里面设置不同环境的地址了。不过这个运维成本略高,最后没有采用。
from apollo.
恩,这个就和网络策略有关了,我们的设计思路是各环境间严格隔离,也就是比如测试环境的应用无法访问到生产环境的服务(只对极少量的工具应用开放访问其它环境的服务,如apollo-portal),所以我们是在每个环境都部署了一个meta server,用来作为客户端的注册中心。
所以必须在客户端配置上各个环境的meta server地址,才有了把meta server地址打包在jar包里的做法。
这块确实不是最完美的方式,之前我们还考虑过把配置服务的地址写在机器上的server.properties中,这样就不需要在jar包里面设置不同环境的地址了。不过这个运维成本略高,最后没有采用。
我们现在急需要环境能够自定义添加的功能,我们全球现在由20多个数据中心,希望能公用一个portal。
每个数据中心内部可能有多个机房,在数据中心内部使用多台服务器部署config/admin/meta服务,通过服务中心内部的load balance服务对外暴露统一service ip(不支持load balance的情况下使用多个固定ip的meta地址)。
对于portal服务来说,在portal数据库中增加一个environment表,environment表支持用户添加自定义的环境:
环境名称 + 环境的meta地址 + 测试可用按钮。
用户添加environment时候,输入环境名称(支持中文),以及对应该环境的meta地址即可,添加完成后可以点击测试按钮,测试该环境是否可用,可用后,才能够使用。
分布式部署中,只要完成一个数据中心的分布式部署即可(config/admin/meta+mysql),config/admin/meta可以都部署在同一个容器中(k8s使用同一个pod)。
我觉得这样的方式会好很多。希望能够继续交流!
from apollo.
@xinyu7git 多谢建议!
from apollo.
经过比较apollo是同类产品里做得最好的。在配置管理方面,这种多环境多库的设计可能适合平台/产品型的应用,通常只有确定的开发、预发、线上等环境。当我们在做项目的时候,同一个应用有N个项目多套环境,就不知道怎么用了
from apollo.
@Brightfox 可以看看集群是否能解决你们的场景
from apollo.
不能让conf和admin服务配置一下portal的地址,让他们自己去找portal注册吗,我想知道这样做的难点在哪里。
反正这样做就可以很方便,甚至可以把配置维护任务交给非技术人员做。
现在这种设计,每增加一个环境就需要重新配置、重启portal,感觉挺麻烦的,docker的话可能好点,还没试。
最后,你们这项目做得很好,先点个赞,我只是提出我的想法,希望继续改进完善。
from apollo.
@DiamondBug 感谢建议,其实之前也有想过在portal提供一个环境管理页面的,不过由于环境的配置非常低频,所以该功能还没做
from apollo.
Related Issues (20)
- The management platform has added a new global configuration search feature HOT 3
- Spring 中 ConfigurationProperties 配置热更新问题 HOT 5
- 2.1.0版本,非 properties 格式的公共配置文件如yml的继承是否依然是在整个文件内容粒度进行,如果是请明确告知用户 HOT 5
- 增加不同环境下所有namespace的一键同步 HOT 3
- Add more observability in apollo config client HOT 2
- 请教 Bash 脚本如何请求开启了访问密钥的配置项 HOT 6
- apollo.meta; nested exception is java.net.UnknownHostException: apollo.meta HOT 5
- When is the 2.3.0 release scheduled? HOT 2
- Portal 模块 RestTemplate 支持配置 ConnectionTimeToLive
- apollo2.1.0集成pgsql,求给一份pgsql的sql文件。mysql的不可以用 HOT 3
- 无法删除旧的配置 HOT 5
- 在项目namespace数量比较多的情况下(大约1000个),打开页面加载速度很慢,比较影响用户体验,这个是否有什么优化改进方案? HOT 7
- Apollo是否可以支持按照key维度来发布? HOT 2
- 1.8.0,接入一个app.id 使用多个namespace的时候,多个namesapce均开启了accesskey.sercet,这时候接入的配置代码要怎么写呢 HOT 3
- OidcLocalUserService throw an Exception when executing createLocalUser in OIDC profile HOT 6
- 麻烦问下,有什么办法能同时读到多个环境同一个配置的值吗? HOT 3
- 使用客户端添加string类型的配置项时会报错 HOT 1
- 配置从 2.1.0导出,导入到 2.2.0,数据中时间解析失败 HOT 1
- 在 apollo-portal统一增加访问路径的前缀/apollo 时,导入配置的请求url 有部分没有添加前缀 HOT 1
- apollo-portal 使用统一前缀/apollo以后,创建集群失败 HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from apollo.