2 分•作者: rbanffy•6 个月前
返回首页
最新
1 分•作者: mykowebhn•6 个月前
1 分•作者: forkbikash•6 个月前
1 分•作者: shuka•6 个月前
2 分•作者: alexcloudstar•6 个月前
4 分•作者: robtherobber•6 个月前
1 分•作者: 2pk03•6 个月前
Hi HN,
KafScale 是一个与 Kafka 兼容的流处理系统,原生支持 Kubernetes,以 S3 作为事实来源,broker 不保存持久状态。它使用 Go 语言编写,运行在 Kubernetes 上。
在多年运维 Kafka 并遇到相同问题后,我们构建了它:broker 故障需要数小时才能恢复,分区重新平衡会阻塞部署,磁盘容量规划永无止境。
工作原理:
* 生产者和消费者使用标准的 Kafka 客户端
* Broker 在内存中缓冲数据,然后刷新到 S3
* etcd 存储元数据和消费者组状态
* 恢复意味着重启一个 pod 并从 S3 读取数据
* 可选的 Iceberg 处理器直接从 S3 读取数据段,完全绕过 broker,适用于批处理/分析型工作负载
您需要放弃的:延迟为 400-500 毫秒(S3 往返时间),不支持事务,不支持压缩主题。它并不能 100% 替代 Kafka。
您将获得的:broker 可随意丢弃,扩展只需增加副本数量,无需磁盘管理,通过 S3 ACL 直接访问流数据
许可证:Apache 2.0
GitHub: [https://github.com/novatechflow/kafscale](https://github.com/novatechflow/kafscale)
1 分•作者: _____k•6 个月前
1 分•作者: bobbiechen•6 个月前
1 分•作者: aaronday•6 个月前
2 分•作者: KarlVM12•6 个月前
一个利用 tmux 的终端 TUI,让终端标签页的管理更简单、更友好。
2 分•作者: skull8888888•6 个月前
116 分•作者: thefilmore•6 个月前
72 分•作者: hoherd•6 个月前
3 分•作者: thehamkercat•6 个月前
自从去年以来,他们为什么会这样(拼命地想把自己烧个精光)?
最新例子:
微软Office更名为“Microsoft 365 Copilot应用”(https://news.ycombinator.com/item?id=46496465)
不仅改名很荒谬,而且这个页面(office.com)看起来也充满了“氛围感”。
2 分•作者: artpar•6 个月前
我制作了这个工具,可以在移动设备上使用笔记本电脑的终端会话,而无需通过服务器传输数据。
使用方法:`tt start -p mypassword` → 获取一个 URL(二维码) → 在浏览器中打开 → 输入密码 → 连接成功。
它通过直接的 WebRTC 数据通道在你的机器和浏览器之间建立连接。
信令服务器是一个 Cloudflare Worker,它交换大约 2KB 的 sdp/ice 元数据后就会退出。密码永远不会被传输 - argon2id 在两端本地派生 256 位密钥。所有终端输入/输出在进入数据通道之前都会经过 nacl secretbox 加密。底层使用 DTLS 进行双重加密,但我希望即使在信令期间,中继也无法看到任何有用的信息。
使用 Go + pion/webrtc,大约 14k 行代码。浏览器端使用 xterm.js + webcrypto 进行 argon2id 加密。STUN 默认,TURN 用于对称 NAT。
我的用例:当我不坐在办公桌前时,通过手机检查 Claude 代码的运行情况。酒店 Wi-Fi,移动数据不稳定。花时间处理了 TURN 备用方案、带有重新连接的保活机制、断开连接期间的缓冲写入。PWA 可以在主屏幕上运行,并且在切换应用程序时也能正常工作。在 3G 网络下也能正常运行。
权衡:ICE 收集需要 2-5 秒才能连接。浏览器无法发起连接,需要在主机上使用 CLI。代码 24 小时后过期。
单个二进制文件,无依赖。支持守护进程模式,用于多个会话。使用竞争检测器进行测试,使用混沌测试模拟断开连接,模拟网络状况。加密和 WebRTC 的代码覆盖率约为 72%。
[https://github.com/artpar/terminal-tunnel](https://github.com/artpar/terminal-tunnel)
PS:默认中继运行在我的 Cloudflare 免费套餐上,因此不提供任何保证。你可以自托管 Worker 或在本地运行 tt 中继。
5 分•作者: tlar•6 个月前
嗨,HN,
软件包仓库不需要搞得那么复杂。它们其实就是静态文件:元数据索引和软件包本身。然而,不知为何,自己搭建一个仓库却让人感觉需要专门的基础设施和对晦涩工具的深入了解。
repogen 是一个用于软件包仓库的 SSG(静态站点生成器)。将它指向你的 .deb/.rpm/.apk 文件,它就会生成静态结构,然后你上传到 S3 或任何 Web 托管服务上。搞定。每月只需 0.02 美元,就能为你的整个团队托管软件包。
它支持 Debian、RPM、Alpine、Pacman 和 Homebrew。具有增量模式,无需重新下载所有内容即可更新仓库。处理签名。虽然还是早期版本,但它确实有效。非常希望得到反馈!
61 分•作者: wise_blood•6 个月前
3 分•作者: nynrathod•6 个月前
构建 Doo 是因为我厌倦了为每个 API 编写 200 行的身份验证样板代码。<p>示例(完整 API):<p>import std::Http::Server;<p>import std::Database;<p>struct User {<p><pre><code> id: Int @primary @auto,
email: Str @email @unique,
password: Str @hash,
</code></pre>
}<p>fn main() {<p><pre><code> let db = Database::postgres()?;
let app = Server::new(":3000");
app.auth("/signup", "/login", User, db);
app.crud("/todos", Todo, db); // Todo = 你定义的任何结构体
app.start();
}
</code></pre>
结果:<p>- POST /signup,带邮件验证 + 密码哈希(自动来自 @email, @hash)<p>- POST /login,带 JWT<p>- 完整的 CRUD 端点,用于 GET, POST, GET/:id, PUT/:id, DELETE/:id<p>- 编译为原生二进制文件<p>状态:Alpha v0.3.0。身份验证、CRUD、验证和 Postgres 正在运行。积极修复错误。<p><a href="https://github.com/nynrathod/doolang" rel="nofollow">https://github.com/nynrathod/doolang</a><p>在生产中使用之前,您需要看到什么?
1 分•作者: bookofjoe•6 个月前