我的第一反应是业务规划,找出最核心的业务,依次保证
比如我拍个个脑袋:先保证礼物能送出,再保证礼物消息能推送到主播和金主,再保证其他用户能看到,再保证小时榜级别的更新,再保证其他的。
之后再拆到 礼物送出是需要保证 ACID 的,其他的 异步慢慢来,礼物推送到主播,最小消费一次推送,其他用户消息推出去就行。再就是榜单计算,比如 压力大的情况下,小时榜转化为 5 -10 秒一次结算,其他榜结算方式改为 5 分钟甚至 1 小时一结算降低压力。能放内存放内存,能不扔库不扔库。缓存 能分区域就分区域,redis 按地理区域划分,之后读的时候累加即可,不用做到原子性
当然这些都是基于我对直播粗浅的理解,在考虑技术实现成本的情况下想的一些皮毛,为大佬抛砖引玉。若有问题,还请别见笑
已更新到 rails7,对于我来说 最有用的是 multiple databases 在 has_one through 的时候,可以直接使用而不担心跨数据库了
还可以在 oss 上分 热资源 冷资源 继续压缩成本。。。
lol 出镜了,鄙人对各大厂商 cdn 花销这块还算研究的比较多,欢迎有想降低 cdn 成本,又对 cdn 质量有严苛要求的小伙伴找我做咨询哟,微信 atpking 注明 cdn 咨询
哈哈 很早就点赞的一个项目,算是同行
可以使用 tubro_stream 在第一级更新的时候 直接 stream.update 二级和三级 select
可以使用不同的 queue 之后 sidekiq 启动的时候 只消耗特定的 queue 即可
不拿股份 不是说不行,但是从创业的角度上来说,不是个好事
项目初期还好,大家和和睦睦 等到了遇到瓶颈,需要花费与工资不匹配的时间,需要做超越的时候, 就怕核心认为 到哪里不是拿工资,走人
我认识一个做海外休闲游戏的老板,之前鏖战一沙雕游戏,苦了半年盈利了,但是分红没谈拢,技术怒而走人。创业公司人才梯队压根就没有,老板求神拜佛花了 4w 招阿里哥们补位,结果业务完全带不动,那哥们实在不好交差就上了个 k8s 后闪人了。
ruby 圈的盆友们都埋藏着创业的心 加油~
nginx 利用 HOST,转发到不同的端口
系统级的解决方案还是有意义的。一招鲜,吃遍天。可以同样适用与 sidekiq,或者其他服务的日志。就类似 弄明白 systemd 之后,就跟 进程自己的 daemon 模式说 byebye 了
注册了一个 看了下管理端 不愧是 oracle 数据库就只有 oracle 自家产品
CC 都好办 最麻烦的还是 ddos 直接不给你操作的任何机会,直接进黑洞
简单的搞法就是 通过 CDN 来隐藏服务 IP
我记得上次看到类似这个内容 好像是搏一搏,单车变摩托的故事线 也不知道那个老哥上岸了没
说实话 成年人 向来是全都要
脑子里冒出了滑板鞋的歌词:有些事我都已忘记但,我现在还记得
我这边不太喜欢用 foreman 的原因是 我偶尔会在代码里加入 byebug 来进行调试
foreman 好像在遇到 byebug 的时候 没办法进行交互
说的没错 就是它
这个是解决 tailwindcss purge 速度的问题的么?tailwindcss 2.1 以后可以跑 jit(就是本文推荐的方式),直接生成已经使用的 class 的 css 文件,速度就几百毫秒 作者说 tailwindcss3 会把 jit 模式设置成默认
tailwind 是你改动的时候比较方便,想到啥效果,直接敲出来就好了,传统的搞法 开发的时候要绕一下,还得去改 css 文件,中间转一道很麻烦
另外在传统方式中 class 取名的时候也面临一个困境 到底是 功能性的取名(类似 user-profile)还是表现形式的取名(类似 card),tailwindcss 就直接统一了这个搞法 全都按表现形式来
推荐看一下 refactoring ui 这本书,好像就是 tailwindcss 作者写的,里面一些理念我觉得还挺对的
我的理解是 foreman 是帮你一个指令起 application 所需的所有服务的东西,能统一配置环境啥的 没说可以管理 puma sidekiq 等服务挂不挂
守护进程的话我记得 ruby 是用 god , 但是 god 本身也需要跑在 daemon
systemd 的好处就是统一了各种语言,直接按规定的写
感觉 foreman 主要用于开发阶段 systemd 用于部署阶段
这个可以在渲染 html 的时候 直接渲染 checked 字符串到 input 中
刚好 10.1 的时候处理过,你可以参考下
<%@sections.each do |section|%>
<div data-controller='checkbox-select-all'>
<label>
<input type="checkbox" data-checkbox-select-all-target="checkboxAll" />
<span><%= section.name%></span>
</label>
<ul>
<% section.nodes.each do |node|%>
<li>
<label>
<% checked = @tech_node_ids.include?(node.id) %>
<input type="checkbox" name="tech_nodes[]" data-checkbox-select-all-target="checkbox" <%= checked ? "checked" : "" %> value="<%= node.id%>" />
<span><%= node.name%></span>
</label>
</li>
<%end %>
</ul>
</div>
<%end %>
我是觉得混用就挺好的
目前 homeland 感觉能上 react 的地方不多
倒是可以把 turbolinks 切换成 turbo,可玩性就高一些了
看起来不错
主要是老项目 又想用 tailwindcss 的 就很适合这种搞法(比如 homeland)
应该是有 gem 内存泄漏了。 除了选择 puma killer 还可以试试 systemd 本身有内存约束
我用 puma killer 有时候 worker 没起来
pv 在 1000w 以下的项目 rails 没什么大问题, 至于再大一些,我自己的项目没到那个量级,但是我觉得应该问题不大。
如果我创业,我肯定会选择 ruby 技术路线,虽然招一个 ruby 很贵(然而现在真也不贵,对比兄弟社区 testerhome 的测试招聘和社区最近的招聘),但是性价比很高,但凡搞 ruby 一阵子,基本都能做到能前端能后端能部署能运维,甚至有的能上到抗 ddos,下到 sketch 出图。两三个人就 run 个 A 轮的技术的 ruby 团队我都见过几个了。
Ruby 在国内确实存在最大的难题:ruby 圈人很少,之前在 2021 rubyconf 群里看见一堆老人,就感觉社区需要新人,需要新鲜血液
编个段子宣泄下情绪不是说不行,只是这么做意义不大,
困难大家都能看到,把问题解决了,才是正道
问题是不是就只能等大神的解决?
当然不是,是来自于社区的每一个人,
不是说 非得去 pr ruby, PR rails,提高运行速度 100%,才算解决问题
对社区的人友善,写一个新人友好的 教程,发一个用 ruby 开发的有趣指令,开源一个 rails 项目解决一个大家遇到的问题,或者自己创业时选择 ruby 作为主力语言, 都是对 ruby 社区的贡献。
还是那句话 大家多为社区添砖加瓦 做大做强
说的没错 我是 10 年前就是写 java 的,现在 java 的 spring 生态也很好,绝大多数国内大公司最终业务都跑在 java 上
快速迭代速度和开发效率 ruby on rails 优势更大,ruby 社区的大多数人估计都赞成
我反思了下,确实你说的对,我没必要贬低其他人,要打拳我大可以去微博怼社会话题
最后祝我们为多为 ruby 社区添砖加瓦,做大做强
困扰到我的是内存 不仅仅是 ruby 内存 也不仅仅是 rails 内存 gem 内存 而是 内存
也许我的语文能力还没幼儿园毕业,让你理解起来费力了,我得好好反思下自己,多为社区添砖加瓦