V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  kidlj  ›  全部回复第 8 页 / 共 56 页
回复总数  1115
1 ... 4  5  6  7  8  9  10  11  12  13 ... 56  
2022-08-19 21:09:47 +08:00
回复了 mitu9527 创建的主题 程序员 数据库与缓存的一致性问题的两个疑问
Friends don't let friends do dual writes.

更新完数据库紧接着更新缓存或者写入消息队列,这就是双写或者多写,总会有第一步成功了下一步失败的概率(比如网络抖动等原因),这时候就会造成数据不一致。

我个人的项目实践了一种事件驱动的异步架构,也就是 CDC ( change data capture )架构,选型上使用的是 Debezium + Kafka connector ,当然 Java 生态的也可以用 Canal 替换 Debezium 。简单来说 Debezium 的工作就是监听数据库的写入变更( pg 的 wal log 或 mysql 的 bin log ),为每条变更记录生成一条 Kafka message (包含变更记录的主键 id 等其他字段信息),通过 Kafka connector 自动写入到一个数据库表对应的 Kafka Topic 。采用这种架构处理缓存过期就很简单了。业务端只要更新数据库就可以,(避免了双写的问题),更新缓存的逻辑起一个线程或 goroutine 监听这个表对应的 Kafka topic ,拿到消息以后解析出主键 id ,然后 purge 掉对应记录的缓存。如果消费了这条消息以后 purge 缓存失败怎么办?有这种可能的。Kafka 的 message 有 commit 机制,purge 失败可以一直重试,当成功了以后再 commit 消息。虽然这种架构是异步的,不过得益于 Kafka 的良好吞吐性能,几乎可以做到 real-time 的使用体验。
2022-08-16 10:39:41 +08:00
回复了 ulyc 创建的主题 分享发现 分享一个代码托管平台, sourcehut
真棒!感谢分享。
先在 goroutine 里启动任务,然后 Echo 启动不成功直接 panic.
2022-08-13 21:58:10 +08:00
回复了 zhouxinhao 创建的主题 新手求助 brave browser
> 请在标题中描述内容要点。如果一件事情在标题的长度内就已经可以说清楚,那就没有必要写正文了。
2022-08-10 16:07:23 +08:00
回复了 zhouchijian 创建的主题 MacBook Pro 日经贴: 32G 和 16G
@zhouchijian vscode + Xcode 开发 app 😄

vscode 主要 remote 到 linux 笔记本不怎么吃内存( docker 也跑在 Linux 上),就是 Xcode 模拟器一开 swap 会用很多,这时候有一点儿小卡。其它时候很丝滑。
2022-08-10 15:35:41 +08:00
回复了 zhouchijian 创建的主题 MacBook Pro 日经贴: 32G 和 16G
这么说吧,过几年你出掉这个机器 16G 怕是不太好出(然而我个人用着 8G 的 M1 iMac 不亦乐乎)
好棒,支持这么多扩展不容易!占个楼,没选上也会购买。
2022-07-23 23:09:22 +08:00
回复了 winRain 创建的主题 Go 编程语言 golang 用 & 返回对象和直接返回对象有啥区别?
变量自动取地址和指针自动解引用是在方法的*调用*阶段,为了方便所以加了这样的语法糖。
而案例中 return 值到 interface 变量,是在方法的*定义*阶段,可能这时候不让具体类型变量满足指针 receiver 的 interface ,为了强调吧。当然假如不是这种设计,像 op 期待的那样,返回值是具体类型,自动取地址以满足指针 recieve 的 interface ,实现上应该也是可以的,只不过设计者没有做这种选择。我个人还是觉得就是为了在方法的*定义*阶段强调返回值的正确性吧。

Anyway ,暴露指针而不是采用引用类型,可能是 Go 的缺点之一吧。(如果采用引用类型又可能会带来什么问题,我没有了解)。
2022-07-22 11:37:42 +08:00
回复了 MaxSoloware 创建的主题 分享创造 [限免] MacOS 高颜值便利贴 App
@jindeq (粵語)偏爱,喜爱,喜欢 :)
2022-07-20 22:00:42 +08:00
回复了 charlieethan 创建的主题 C++ 谷歌发布开源开发语言 Carbon : 号称将替代 C++
好事儿。可能就像 Kotlin 和 Java 的关系吧。
2022-07-20 12:22:48 +08:00
回复了 MaxSoloware 创建的主题 分享创造 [限免] MacOS 高颜值便利贴 App
一个 bug:

便签窗口关闭后,点击 dock 上的 app 图标无反应(无便签窗口弹出)。
2022-07-20 12:20:24 +08:00
回复了 MaxSoloware 创建的主题 分享创造 [限免] MacOS 高颜值便利贴 App
感谢创造&分享。几个建议:

1. 可以设置使用标准字体吗?不太心水这几款手写体。
2. 可以设置窗口大小就好了,喜欢窄窄的长条状的便签,放边上不占空间。
3. 能调整透明度就更好啦。
文档很不错,star 了。
2022-07-09 22:14:17 +08:00
回复了 pkupyx 创建的主题 程序员 go 有没有比较合适的异常处理流程方案
写 web 的话,echo 框架有集中处理错误的方式,比如加上 message 字段或者根据 accept header 返回不同的 content-type 数据。在业务 handler 里只需要 return error 就好了。

另外,同意楼上说的,方便的不一定是正确的。Go 的错误处理虽然还有优化空间,但在很多人看来这种方式起码是正确的。
耗尽的意思。比如 nginx -s reload 会开一个新线程接受新连接,待老线程把当前连接都处理完了( drain ),老线程再退出。
2022-07-06 17:47:40 +08:00
回复了 Ucers 创建的主题 全球工单系统 网易云音乐没有安全的命得了安全的病
楼上对 Last.fm 感兴趣的各位,Spotify 原生支持将播放记录同步到 Last.fm ,只需要 OAuth 授权一下。
2022-06-20 18:54:00 +08:00
回复了 Renco 创建的主题 程序员 想问问各位大佬,平日开发异常是怎么处理的。
if err != nil {
// handle err
}
2022-06-12 12:04:15 +08:00
回复了 bwt 创建的主题 北京 关于房子潮湿的问题请教
就是屋外空气湿的原因,这两天不是下雨了嘛。我住是在阳面,很大一扇窗,屋里湿度也是 60 以上。
2022-06-11 23:34:20 +08:00
回复了 Authorization 创建的主题 程序员 有没有能比较准的天气预报
iOS 用过最好的天气 app 是新浪天气,完全免费无广告。能显示几分钟后下雨以及几分钟雨停。
2022-06-11 11:58:30 +08:00
回复了 syc721 创建的主题 Apple MacOS apple music 曲库时不时分裂
N 多年的问题了,从 iTunes 时代就这样。无语。
1 ... 4  5  6  7  8  9  10  11  12  13 ... 56  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2591 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 38ms · UTC 15:01 · PVG 23:01 · LAX 07:01 · JFK 10:01
Developed with CodeLauncher
♥ Do have faith in what you're doing.