Java 有没有轻量级的服务注册中心,现在搜了一圈下来就看到阿里的有个 nacos,如果自己写的话 是不是更好

2021-07-07 14:00:16 +08:00
 0576coder

背景

目前只是简单的几个按业务不同,单独以域名的方式分割了两三个服务,每个服务三四台机器,都是 spring boot 单机版

需求

现在有两个服务可能有相互通信的必要,因为要更新应用内部的一些信息,所以需要按 IP 加端口的形式去通知。比如说后台更新了分组,需要通知到特征计算各个机器上去。目前就是简单的特征项目启动的时候上报自己的 IP+节点,然后后台挨个去通知。

但是为了响应统一号召,我们全面再切 k8s,所以就不像之前的物理机了,IP 都是固定,机器数量也可能变得动态,所以可能需要一个简单的服务注册中心。并且实时的判断特征服务的节点是否还活着

有没有简单版的注册中心

目前有个想法是直接用公司现有基于 etcd 的,我自己做个轻量级常驻的 watch 就行了

题外话

阿里的 nacos 不知道实际用起来轻量不轻量,但是福报厂的东西有些质量很一般,还有些没法自定义的东西,或者宣传吹的很牛逼,实际跑起来 250 。

3939 次点击
所在节点    程序员
36 条回复
sjzjams
2021-07-07 18:38:06 +08:00
站在巨人的肩膀上 有时间的话可以再造轮子
misaka19000
2021-07-07 20:49:47 +08:00
zk 不行
misaka19000
2021-07-07 20:49:53 +08:00
zhenjiachen
2021-07-07 23:21:33 +08:00
上了 k8s 难道不能直接用 k8s 的 service 调用服务吗?
louchenabc
2021-07-07 23:28:46 +08:00
用了 k8s,就不需要服务注册中心了,spring cloud 项目中有 k8s 的 discovery 的 starter,直接使用就好了。
k8s 上面的 pod 信息本身就保存在 etcd 里,它的基础架构就支持了服务发现。

我这份 ppt 里面有提到这个,感兴趣的话可以看下。

https://github.com/lcomplete/TechShare/blob/master/docs/java/%E5%88%86%E5%B8%83%E5%BC%8F%E7%B3%BB%E7%BB%9F%E5%BC%80%E5%8F%91-%E5%BE%AE%E6%9C%8D%E5%8A%A1%E5%9F%BA%E7%A1%80%E8%AE%BE%E6%96%BD%E6%9E%B6%E6%9E%84.pptx
xuanbg
2021-07-08 08:10:06 +08:00
Consul 不也挺好的?直接 docker 运行就行,没有任何代码维护的心智负担,还不够轻量级?
caixiaomao
2021-07-08 08:29:11 +08:00
etcd ? 用的人挺多的
kright
2021-07-08 10:56:32 +08:00
nacos 用起来倒是挺简单的,但是有两个问题
1,服务启动后 10s 左右,是没法调通的,还没注册好
2,如果你哪天发现磁盘空间慢了,记得去看下 nacos 的日志。。。
mosliu
2021-07-08 11:30:46 +08:00
eureka 也可以单机啊?
就是不是高可用就是了。。
不过 eureka 似乎确实也不算轻量
mmdsun
2021-07-08 12:37:57 +08:00
阿里 nacos BUG 很多,前段时间还爆出鉴权漏洞,传特定 header 就不用鉴权了。

推荐 eureka,sping 还在维护更新没有停更。
Lighfer
2021-07-08 13:52:17 +08:00
我们写了一个 redis 版的,然后用 java 按照 redis 的协议极其轻量级的服务器,用于本地做测试用
Lighfer
2021-07-08 13:52:46 +08:00
@Lighfer 然后用 java 按照 redis 的协议写了一个极其轻量级的服务器
0576coder
2021-07-08 13:55:16 +08:00
@louchenabc
感谢大佬 我研究下
ciki
2021-07-08 14:04:00 +08:00
@0576coder 单机用啥微服务啊
0576coder
2021-07-08 14:41:46 +08:00
@ciki
你可以看下我的背景
更新应用内部的一些信息,所以需要按 IP 加端口的形式去通知。比如说后台更新了分组,需要通知到特征计算各个机器上去

所以需要一个简易版的服务注册就行了
xjlnjut730
2021-07-09 06:15:45 +08:00
我做技术选型,都是什么流行用什么,看看 github /gitee 上 top20 的 java 微服务框架流行啥用啥,大概率不会出大问题。
按这种思路就是无脑 nacos,不用纠结太多,不过我们实测下来的话,1.x 的版本是稳定可用的,2.x 的在容器环境下不太稳定,暂时不太建议用。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/788070

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX