• 我也是最近才知道 😂

    bpf 这个东西我就是知道个名字,不过直觉上和 tracing(dapper 就是做 tracing 的)是一类东西。

    有人这么形容 bpf

    以前的一些 linux 指标, 像是蜡烛照亮了内核, bpf 像是给内核打开了个灯

  • 系统复杂起来了,都不好理解。

    Google 他们为了理解他们自己的系统,搞了一个叫 Dapper 的东西,用来理解分布式系统。

    最近还有一是 BPF http://www.brendangregg.com/bpf-performance-tools-book.html, 好像也可以当 understanding tool 用。

    搞 Rust 的好像有不少人弄 BPF,Erlang 好像也搞过一点,不过后来似乎是废弃了。

    不知道 RoR 有没有类似的。

    (要有兴趣,有时间我们可以讨论呀(虽然这两个东西我也不咋懂

  • 我有 acm 的邮箱,不过花钱就能买。

  • 微团队管理日志 at 2021年01月11日

    俗称大忽悠 😸

    确实讲了不少如何思考的东西,还真挺有用的。

  • 微团队管理日志 at 2021年01月09日

    我们组里做技术分享,大家都认认真真做 ppt,但我们技术负责人分享就只用 emacs。但他却是把问题讲的最清楚、最明白的。

    Robert Morris 讲课也不做 ppt,课件就是有缩进的文本。同样的是东西讲的太明白了。

    但他们这种我都学不来,我对技术理解没那么深,也讲不了那么明白,只有努力并老老实实做 ppt。

    我们技术负责人几乎不怎么管我们。和产品、前端、测试团队比起来,我们后端是最松散的。

    但他在技术上影响了我们很多(我们很多慢慢的都按照他的套路玩了)。比如忽悠我们买 Safari Books,忽悠我们看有价值的技术书籍、做有价值的思考。再比如看他怎么写代码、做架构、解决问题。他搞事情,简直就是降维打击。

    没逼我们干过什么,但真的是被他忽悠忽悠着就上道了。

    做一件事总有一些规则,比如演讲要写 ppt,管理要打卡。但有的人,可以打破这些。

  • Rails 微服务初探 at 2020年12月29日

    恩,是的,无状态是说服务本身没有状态。

    如果是无状态的服务,比如 API 服务,一致性一般是由后面存储保证。

    一般 API 服务,可以不去考虑 CAP。存储服务(包括有状态的服务),比如 ETCD,才需要考虑 network partition 的时候,是否可读可写之类的。

    一致性一般是由后面存储保证

    不过也有特殊情况,GFS 存储就不保证一致性,由 lib 来处理。riak_pg(pub/sub),network partition 的时候可用,连回来的时候解决冲突。

  • Rails 微服务初探 at 2020年12月29日

    ETCD 的一致性保证有点迷,读的时候是有可能读到旧数据的。

    ttps://etcd.io/docs/v3.3.12/learning/api_guarantees/

    然后,network partition 的时候,有说能读,有说不能读的,https://stackoverflow.com/a/28927474/2477886

    ETCD 基于 Raft,但没完全用 Raft,Raft 的 request 都是要经过 master,这样的话,没办法横向扩展,ETCD 应该是没有完全用。。。具体怎么用的,还得看代码。。

  • Rails 微服务初探 at 2020年12月29日

    debug 才是麻烦的事情

    一致性,有些时候也没那么重要,可以牺牲掉换新能,或者业务层处理一下。

    很关键的地方,再根据具体情况处理。

  • Rails 微服务初探 at 2020年12月29日

    CAP 是存储要考虑的,除非这个服务没办法搞成无状态的才需要考虑。而且几个节点 partion 的可能很小,可以不考虑。

  • 赞赞赞👍

  • 听起来蛮不错的,不过我还没试过看小说,觉得词汇量比较大,会不太容易 😂

    语法可以靠猜,大体理解应该还 ok。

  • Install Ruby on Apple Silicon at 2020年11月29日

    不考虑我比较穷这一点以外,感觉挺香的。

  • 明白,再次感谢。

  • 哦,明白了,感谢。

  • 再请教一下,是不是说探测出热点,就把数据在 web server 里缓存一份,降低后面存储的压力?换句话说,其实 web server 承担了缓存的责任?

    感觉这个场景和 facebook 的有点像,他们有篇论文 Scaling Memcache at Facebook 感觉应该有一定的参考价值。

  • 请教一下 redis 报警设置在百分之 40,这感觉有点低啊,为啥不弄高点?

  • 感谢,我知道 Erlang 为了利用多核 CPU 有一系列的优化,有绑定 CPU、spin、sleep 线程之类的。但我没深入研究过 😂,对硬件了解的比较少 😂

    不过凭感觉,Ruby Actor 应该是有优化空间的。当然,能利用多核,已经是非常大的一步了。

  • 请教几个问题,还没看过 Reactor,不知道理解的对不对 😂

    这个 benchmark,要是 reactor 可以"绑定"到 cpu core 上,是可以成倍提升的?

    Ruby 在调度(Ruby Reactor 是不是直接用系统线程调度的?)reactor 的时候,其实会有,一开始 reactor1 在 cpu0 上跑,然后跑着跑着,跑到 cpu1 上了这种情况?

    而且随着 reactor/thread 的增加,这种情况会变多。

  • 一直没找到比较好的 rust 学习资料,尝试写过一个小的 project,不过后来放弃了 😂

  • Ruby 3 Fiber 变化前瞻 at 2020年11月17日

    java 有个 redis 的客户端,就是单线程 + 异步 io。

    thread 和 fiber 有不同的适用场景。fiber 没办法抢占式调度,最后还得借助系统线程。

  • 111 at 2020年11月13日

    我对我说的那些话做个总结吧。。。

    RoR 比 Java + IDE + Package 生产力更高

    那两个 query 的例子,就是为了说明,Java 没有很好的东西处理这些常见的问题。所以需要花人力解决,所以生产力不高。

    @rfactor

    还有张口闭口 IDE 提示、手写 SQL 的,这些是编程入没入门的问题吧。

    我在说生产力。。。举例能证明我的观点就够了。。。

    如果是超大型微服务的项目(业务域内核心几十个系统),我不知道现在 RoR 在这方面怎么样

    @fengkuok 是想说,这个场景下,Java 是一个选择,RoR 不一定行。

    我的回复意思是,RoR 缺少实践,可能不行。但和生产力没啥关系。

    为什么我们两个能聊下去?

    大公司(有很多内部系统的公司),你的服务要依赖很多不稳定的其他服务和代码,并且要提供稳定的服务。用 Ruby,没有相应的支持(背书),要自己搞。背后隐藏来很多奇奇怪怪的东西。

    关于楼主说的这件事

    这是楼主他们公司的事,我就是看个热闹。我不了解他们的具体情况,没发言权。

    不过可以说一点,人力成本对小公司挺重要的,大公司,人力成本就没那么重要了。

    *** 我只是说生产力问题,只针对下面这句罢了。***

    感觉像讲故事,最近用 spring boot 做了一个小项目,在 idea 强大的智能完成加持下,感觉也不比 rails 效率低多少,但静态语言带来的安全感让写代码的心智负担降低很多。

    最后,脱离场景(不了解情况)谈技术没有任何意义。

  • RoR 通过约定,降低复杂度。Spring 把复杂度都暴露给开发者了。有些 Java 的不便利,Ruby 里面就没有。

    估计要习惯一下,习惯了就好。

  • 111 at 2020年11月09日

    恩,是的。

    用不用 java 或者 spring 要看场景,每个人的认知都不一样,无关对错,个人选择罢了。

    单说 web/API 开发。

    如果是大公司,团队选择技术栈,那么我会选 java 和微服务。 如果是小公司:RoR 或者 Phoenix。 如果是个人项目:我会选 RoR。

  • 111 at 2020年11月09日

    这个是我个人的看法 😂 ,我觉得参考价值不大。。。

    不过确实没听过大公司,用 RoR 做微服务 😂