heqingpan 最近的时间轴更新
heqingpan

heqingpan

V2EX 第 88883 号会员,加入于 2014-12-28 22:40:32 +08:00
今日活跃度排名 1495
heqingpan 最近回复了
16 小时 18 分钟前
回复了 panlatent 创建的主题 程序员 来推荐推荐自己的开源项目和经验吧
[r-nacos]( https://github.com/nacos-group/r-nacos) 一个基于 rust 重新实现的 nacos 配置注册服务。(star: 692, docker 下载量: 25k+)

相较于 java nacos server 来说,是一个提供相同功能,启动更快、占用系统资源更小(接入接近 5 千个配置,450 个服务实例,服务使用的内存在 15M 左右)、性能更高、运行更稳定的服务。

其设计上完全兼容最新版本 nacos 面向 client sdk 的协议支持使用 nacos 服务的应用不用修改代码直接平迁到 r-nacos 。

经验:
1. 用 rust 重写原 java 写的常用中间件,一般占用系统资源更小、性能更高;完成度比较高的话还是有很多人愿意使用。
2. 作者最好也是开源项目的用户,最开始当做满足自己的需求。当你能比较好的满足自己的需求,也会同时满足同类场景的用户。
3. 项目的第一版核心功能基本需要自己独立开发,要做好心理准备。
csdn 页面乱七八糟,个人是坚决不用。
22 天前
回复了 kerb15 创建的主题 程序员 公网部署 Nacos 被入侵了...
@kerb15 如果只是通过公网下发配置,那换 r-nacos 应该能满足你的场景。

部署 r-nacos 后只暴露独立的控制台网络端口到外网,用于下发配置。
sdk 网络端口只给内网应用使用,不要对外网暴露保证安全。
22 天前
回复了 kerb15 创建的主题 程序员 公网部署 Nacos 被入侵了...
OP 暴露 nacos 到外网的目的是什么?

如果只是想用控制台做运维,可以试试用 r-nacos (用 rust 重新实现的兼容服务)。

r-nacos 的控制台支持对外网暴露。
控制台使用独立端口号,然后对这个端口号所有请求加上登录与鉴权验证。
控制台登陆接口内置错误频次限制与验证码,避免对账户的暴力遍历破解。
@Felldeadbird
除非没人用,不然都忙。

成品前忙开发,成品后忙写文档、推广给潜在用户。
亲身实践过,如果不依赖三方库从 0 开始写,一般 AP 会比 CP 简单些。

不过 CP raft 一般都有库(与业务无关的基础部分),而 AP 没有( AP 一般和业务相关较大,没有通用库)。

CP 基于库做二次开发与 AP 从 0 开发相比,工作量会差不多。(和具体业务有关)

我之前在写 r-nacos (用 rust 重新实现 nacos )时,有分别用 CP(基于 raft 库)实现配置中心,用 AP (从 0 开发)实现注册中心。
它们两块整体工作量上感觉差不多。

附上去年在本站发的相关帖子: https://v2ex.com/t/974680
@pckillers
我上面说的动态感知配置变更,是通过配置中心 client 监听配置中心内容实现的,是不是监听本地配置文件。

k8s 就算能更新 pod 的配置文件,如果想不重启更新配置,还应要应用主动监听配置文件内容是否有变化。(相当于自己实现动态配置功能)

通过动态配置做切流、回滚等流程控制很好用。

没有动态变更配置的能力,可能不会想去写这类控制代码;但系统支持这个能力,在写新的高风险链路逻辑时一般都会加上,在遇到问题能快速回切止损。

当你用上一次避免问题扩大代之后,你应该就不愿意放弃它。
@pckillers
k8s 的 configmap 很难完全替代配置中心。

部分场景有依赖配置中心的运行时动态变更配置能力,k8s 通过重启方式重新加载配置是不太能接受的。

比如我们新写一个新的处理流程,支持出问题时通过配置控制是回切到老逻辑。
如果通过配置中心,可以在 1 秒内把几十个实例秒级回退到老逻辑。
如果走 k8s 的分批重启加载新配置,回切时长达不到这效果。

类似的场景还有临时动态调整处理线程池数量等。
nacos 也可以考虑换成轻量级 r-nacos (用 rust 重写的 nacos ,协议完成兼容),这样就可以和 apisix 配套使用。
哪个页面,是指登陆页面吗?
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1753 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 21ms · UTC 16:33 · PVG 00:33 · LAX 09:33 · JFK 12:33
Developed with CodeLauncher
♥ Do have faith in what you're doing.