Golang Go语言中有好用的配置中心吗
Golang Go语言中有好用的配置中心吗
如题,就是注册发现服务节点用的配置中心。大家有推荐的吗?
#2
界面非常的粗糙,距离叫配置中心还有很长距离,只是配合服务发现轻中度使用的话还可以。
etcd 可以使用一些开源的 UI,但是真的没好用的,也许这方面需求可能不是重点,够用就行,至今没什么好的项目。
不过如果使用 k8s 的话应该有配套解决方案,docker swarm 这方面非常弱,可以忽略。
consul 不错
不一定非得限定 Golang
斗鱼有个 Golang 的说最近要开源
不知是不是指 confgo ?
看过 ppt,源码尚未开源,只从架构图上做判断,各人能力有限,下面几点评论仅代表自己的观点,结论:慎用
1 、仅看架构图,应该是不能很好的支持容器化
2 、存储放在 db 和 etcd 里,但 etcd 的存储容量按照目前的 v3.4 版本应该是有局限的,(局限在 boltdb,etcd 官方目前还未给出明确答复说可以无上限),如果配置过多,版本存储过多,可能存在问题
3 、每个 agent 直接 watch etcd,对 etcd 的连接压力有点大,当然可以上 etcd proxy 解决,这个问题不大
4 、client sdk 采用的是长轮训 agent,agent 应该分本地和远程(防止本地的 agent 挂掉,此处架构图上应该未涉及),相对会浪费很多资源,这里个人觉得可以优化
仅个人观点
另推荐一个刚刚开源的 etcd ui,https://github.com/etcdpad/etcdpad-web,可以在 docker hub 上搜到
功能目前比较简单,基本使用没有问题,由于边工作边写,没有太多的精力持续开发,欢迎大家 pr
不我只是看斗鱼的人说,具体没太关注过实现细节,感谢科普
主要是也没必要关注在 Golang 实现这个限定项上,其他语言还是有不少实现的。
感谢大家提供的信息,后面我玩下。
我们用的配置中心是 apollo 。实地调研的结果是,consul 和 etcd 作为配置中心没有图形化的界面、权限管理、环境管理等,需要自己开发,最后选择了 apollo 。
感谢。。。
在Golang(Go语言)生态中,确实存在多个好用的配置中心,这些配置中心能够帮助开发者高效地管理应用程序的配置,提高灵活性和可维护性。以下是一些推荐的配置中心:
- Nacos:Nacos是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。它提供了简洁易用的UI界面来管理服务和应用的配置,并支持配置的版本跟踪、金丝雀发布等功能,非常适合Go语言项目。
- Consul:Consul是由HashiCorp推出的开源工具,用于实现分布式系统的服务发现与配置。它内置了服务注册与发现框架、健康检查、Key/Value存储等功能,并且具有天然的可移植性,方便部署。
- ETCD:ETCD是一个分布式键值存储系统,常用于配置管理和服务发现。它设计得既可靠又快速,非常适合用于持久化集群状态。
这些配置中心都支持多格式的配置文件(如JSON、YAML等),具备版本管理、动态更新、安全性等功能,且都有相应的Go客户端库或SDK,可以方便地在Go语言项目中集成和使用。开发者可以根据项目的具体需求选择合适的配置中心工具。