V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  ZSeptember  ›  全部回复第 12 页 / 共 51 页
回复总数  1020
1 ... 8  9  10  11  12  13  14  15  16  17 ... 51  
2022-03-05 21:45:55 +08:00
回复了 voidmnwzp 创建的主题 程序员 (纯主观)一个 javaver 用 go 语言的初步体验
果然只是初步体验。。
虽然我现在也主要用 Go ,但是总还是觉得 Go 缺的东西太多了。。
你说的这几点除了 1 协程更方便,5 Go 更轻量以外,其他应该没有一个是 Go 比 Java 好的,最多只是各有千秋。。
@xy90321 看我 12 楼,你这个方案提过了
@xy90321 自增步长改成 100 ,就是和我最开始的方案差不多,只是我是用 redis 保存 sequence 。使用自增连续序列确实可以,不过我们使用 spanner ,自增插入会有热点问题,一般不考虑。
不过我的方案,相比,去掉了 redis 依赖,热点影响应该还可以接受,感觉确实还行。
@ZeawinL 每次都要 count 一次,然后 offset 一次,性能不太行。
2022-03-04 18:50:25 +08:00
回复了 Hug125 创建的主题 Java 🆘 江湖救急 被 CVE-2022-22947 攻击了
加载路由的时候报错了,把被污染的路由配置删掉?
2022-03-04 18:48:53 +08:00
回复了 Hug125 创建的主题 Java 🆘 江湖救急 被 CVE-2022-22947 攻击了
太惨了
@corningsun 可以,转串行,没问题,就是改动比较大。
@giiiiiithub 忘记说明一个大限制,因为一些不可控的原因,创建 coupon 是有 rate limit 限制的 2 QPS ,40 RPM 。但是提供批量创建机制 每次 100 个。
@edward1987 @mango88 可以,直接不落数据库
@corningsun 服务多实例的,你这是转单实例了。
@oddcc 你这个和我 12 楼的一样的,是可以的。读 100 个,然后把这 100 个删掉,就不会被其他实例读取了。
@haython 这一点和我们业务不一样,我们的 coupon 是一个 coupon code 发给用户就需要能使用的。
现在的方案,不是在生成 coupon 的时候就给用户绑定,不过确实启发了一下,可以在生成的时候就绑定到人。就是较大调整。
@freelancher 你这是一种方案,对用户分区,冲突概率会低一些,但是哪个实例负责哪个分区也是一个问题,需要协商。。。
@mekingname 看我 23 楼。

随机不是目的。
而且随机入库以后,我多个服务实例读出来怎么错开
@Habyss
@mxT52CRuqR6o5

我强调随机是是因为当前的保证不重复分配的方案是乐观锁,随机能避免冲突,提高性能。

如果分配方案不使用乐观锁,可以不需要
但是整体方案需要考虑到正确性以及性能
@mxT52CRuqR6o5 看分配步骤,随机性是为了避免乐观锁冲突,影响分配性能,因为要保证不能重复分配同一个 coupon 。

你的那个方案和我 10 楼回复的一样,能 work ,但是性能应该应该比较差。其实我测试过,性能应该能满足我们系统现在的需求,但是天花板比较低。
@Habyss
1. 第一种考虑过,读取 100 个,然后全部删除掉,和预分配状态本质差不多;就是考虑到这时候挂掉了就浪费一批 coupons 。
2. 存到数据库可以给一个随机编号,但是不知道怎么能读出来是随机的?
@murmur 实时性其实要求也不是特别高,但是还是需要提高分配性能而已。

现在其实有一个最基本的方案:

1. 读 100 个 coupons
2. 随机选择一个

冲突概率还是挺低的,但是每一次都要读数据库,有点浪费
重点其实看怎么能提高随机读取 coupon 的性能以及随机性
@murmur 数量其实不是重点,重点是一个 coupon 只能给一个人发,不能重复发。
1 ... 8  9  10  11  12  13  14  15  16  17 ... 51  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   6019 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 23ms · UTC 02:08 · PVG 10:08 · LAX 18:08 · JFK 21:08
Developed with CodeLauncher
♥ Do have faith in what you're doing.