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

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

背景

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

需求

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

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

有没有简单版的注册中心

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

题外话

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

3920 次点击
所在节点    程序员
36 条回复
Lonely
2021-07-07 14:04:39 +08:00
eureka 啊
0576coder
2021-07-07 14:24:30 +08:00
@Lonely
感觉 eureka 得至少 3 节点 单机的是不是不太好 0 -
damai0419
2021-07-07 14:41:14 +08:00
没啥其他要求的话,用中间件可不可以?比如 MQ ?
Dragonphy
2021-07-07 14:58:36 +08:00
一上线生产就疯狂占用资源,到现在还没解决,阿里的开源就是屎🐶
w292614191
2021-07-07 15:04:48 +08:00
为什么觉得自己写的会轻量呢?
wellsc
2021-07-07 15:05:49 +08:00
中间件为什么要被语言限制
0576coder
2021-07-07 15:06:50 +08:00
@Dragonphy

哈哈哈 我之前用过他们的熔断限流的 sentinel 先不说占不占资源 这东西有两种 log 没法自定义格式 写死了的
0576coder
2021-07-07 15:07:43 +08:00
@wellsc
但是这边是 java 要用 所以不管怎么样 client 服务注册的代码还是要用 java 写的
所以就这样问了
0576coder
2021-07-07 15:08:16 +08:00
@w292614191
不考虑真·高可用,我单机实现一个简易版的 我感觉会很轻量
wateryessence
2021-07-07 15:12:40 +08:00
Curator 复合你需求吗
heheda11
2021-07-07 15:39:24 +08:00
自己写难点就在于 CAP 分布式一致性问题,弄好这个其他的就是 CURD 了
coolcoffee
2021-07-07 15:49:54 +08:00
如果是在同一个集群,应该可以直接用自带 Headless Services 来实现吧。 我看携程的 apollo 在本来是 Eureka 作为服务发现,在 K8S 里面就用 K8S 自带的了。

K8S Headless Services 会自动维护可用 EndPoint 节点,配置好健康检查探针及时将不可用服务踢出去就好了。
Rwing
2021-07-07 15:51:50 +08:00
Consul ?
securityCoding
2021-07-07 15:56:51 +08:00
consul 或者 etcd 质量是绝对有保证的
wizzer
2021-07-07 16:01:42 +08:00
zk 啊 占用资源少
julyclyde
2021-07-07 16:18:50 +08:00
建议别选阿里的,过几天就没人管了
jorneyr
2021-07-07 16:35:43 +08:00
K8S 可以使用网络插件 Calico 固定 Pod IP 啊: annotations:
cni.projectcalico.org/ipAddrs: '["${podIp}"]' # For Calico
jorneyr
2021-07-07 16:36:34 +08:00
实在不行,使用 Service 也可以,甚至 Statefulset 的域名也能在 Pod 内部访问目标机器。
sppan
2021-07-07 18:03:20 +08:00
hazelcast 可以看下是否满足你的需求,一个 jar 搞定。
Jooooooooo
2021-07-07 18:14:09 +08:00
自己搞个 zk 就行了

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

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

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

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

© 2021 V2EX