Skip to content
New issue

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

apollo自动化部署时DB中eureka地址如何修改 #1179

Closed
xuechenxc opened this issue Jun 19, 2018 · 12 comments
Closed

apollo自动化部署时DB中eureka地址如何修改 #1179

xuechenxc opened this issue Jun 19, 2018 · 12 comments

Comments

@xuechenxc
Copy link

你好,我们的场景会通过marathon拉起来三个ConfigService容器做高可用,三个服务只有都启动了,才知道具体的ip地址。DB中的eureka地址要求,所有的都要填,感觉这块不好自动化,可以填容器内这个ConfigService公用的vip吗

@nobodyiam
Copy link
Member

公用的vip可能会有些问题,因为eureka是需要全部的节点信息做replication使用的

@xuechenxc
Copy link
Author

哦哦, 那如果要做到完全的自动化部署,感觉只有把Eureka从ConfigService里拆出来,这样才能提前将Eureka的地址写到DB中。
有一个场景,比如你们要扩容,临时决定再拉一个ConfigService节点起来,这时,DB内的eureka地址列表是要通过portal界面去人为改下的吗?改的时机是在新的ConfigService节点启动前还是启动后,还是顺序是无所谓的?

@nobodyiam
Copy link
Member

一般是先扩容,观察没问题后再写进db

@xuechenxc
Copy link
Author

宋前辈,当时为什么没有选择在client端做负载均衡, 这样可以减少部署的依赖,而且客户端的load balance和fail over感觉实现起来也较为简单,不知道你们当时的考虑是什么哈

@nobodyiam
Copy link
Member

现在就是在客户端做的load balance和fail over。。。使用eureka的原因是需要实现自注册和自发现,客户端虽然可以做load balance,但是也得先从某个地方拿到服务列表。

@xuechenxc
Copy link
Author

哦哦,前辈,我的意思是,要是我可能会这么设计,您看合不合理哈:

多个meta server 前,不需要haproxy,nginx等,客户端这边,可以填写多个meta server地址,作为初始化连接地址,这个地址是可以动态变化的,客户端定时向服务端pull config时,超过一定的时间,都可以由服务端带给客户端,来更新这个meta server地址。个人纠结的点,还是在于,为了meta server的高可用,引入SLB是不是有些重?

@nobodyiam
Copy link
Member

填写多个meta server ip地址的问题在于,必须确保这些地址以后一直不会变。因为客户端一旦重启,或者是新部署了一个客户端,还是需要读取预先配置好的meta server地址的。

一般而言,对于公司内ip是相对动态的资源,随着扩容和缩容,ip是会变的。

域名,就是静态资源了,是可以保证不会变化的。

@xuechenxc
Copy link
Author

好的,多谢前辈~

@nobodyiam
Copy link
Member

PR #1214 支持meta server配置多个ip地址了,不过生产环境还是建议使用域名(走slb)。

@oawang
Copy link

oawang commented Aug 15, 2018

有个疑问是,生产的 meta server 使用域名后,外部的人不就可以随便访问了吗。。信息不就泄漏了吗,不太明白

@nobodyiam
Copy link
Member

域名不代表一定是外网可以访问,比如一般的公司都有内网DNS,可以自己弄很多内部的域名。

或者,即使是外网域名,也可以把域名指向一个内网的IP,外面的人也是无法访问的。

@oawang
Copy link

oawang commented Aug 20, 2018

好的,多谢大神~

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants