当时没完全看明白,似乎是:
middleware 生成 request id 后,写到了 thread local variable 中的。
到了写 log 时,把 thread local variable 中的东西读出来。
我的理解对吗?
最近肺炎有疫情,不建议去人口密集的公共场所。
你的贴每次都发的有点突然啊。
填好了
你去深圳啦?
我也参加,想拜读一下大家的 micro service 是怎么写的,比如:
等等。
道理都懂,就是想看看真代码是如何组织的。
作为一个老家伙,我觉得默默会挺好,老朋友见见面,随便聊聊天。
+1
撒花
有测试工程师的岗位么?
有,我已经更新了帖子。
比如一个上午/下午 4 轮这种的吗?
你说的很对。我们的面试通常先是电话面试,然后再约一个上午/下午 3-4 轮面试。
运维是没有 level 的吗?
运维两个岗位的 level:一个是 devops(T2),一个是 senior devops (T3)
此贴顺便帮我们 SAP 的隔壁团队 successfactor 招聘 Java 工程师 以及 Java 专家。感兴趣的同学可以投递简历。
Duties and Responsibilities:
Required Skills & Experience:
Duties and Responsibilities:
BS/MS in Computer Science, Computer Engineering or related technical
又加了一个职位:运维工程师。
感兴趣的同学,欢迎投递简历。
谢谢。
可以申请的,稍微透露一下,我们对英文的要求降低了一些。 😀
我们项目因为历史原因,在使用 delayed_job,db 做 Queue 系统,锁是个很大问题。
借用一篇文章的标题:《Databases suck for Messaging》
https://www.rabbitmq.com/resources/RabbitMQ_Oxford_Geek_Night.pdf
迫于无奈,我们最终把 delayed_job 的后端迁移到 RabbitMQ 上。
薪资是在公司内部是保密的,我也不知道别人的薪水,需要和 HR 直接谈。你可以按行情价要。
有几点要说明:
我们的面试比较注重计算机基本功,英文沟通能力,项目经验。编程语言不是首要考量因素。如果你是 Java 程序员、Python 程序员,也可以申请。
我们的项目中有个组件是 Java 写的,还有 golang 写的项目,是个大杂烩。
暂时没有内,还有一个 ops 的岗位,过几天会发出来。
我们没有强制要求,你可以只写后端,也可以前后端通吃。写烦了后端,也可以写 mobile 客户端。
以上只是根据 O(log n) 进行估算,可能不准确。但我想表达的意思是,假如一张表的某个字段的值的 cardinality 很高,根据这个字段的索引进行查询,无论是 100 万的记录,还是 1000 亿条记录,IO 次数可能差不多。
粗略估计一下,假如 B Plus tree 每个节点的大小为 4896 byte,用来存放 big integer (8 byte),大概可以存 300-600 个之间。[1]
假如我们取最小的数字 300 做 branching factor,那么在一张 1000 亿的表中读取一条记录需要几次 IO 呢?
5 次。
[1] 我不知道 block 的指针占多大,所以只能估算。假如 block 指针大小为 8 bype,则 branching factor 为 4896/(8+8) = 306。
对屏蔽的处理,我放到了 Part 3 中。
http://mednoter.com/design-of-feed-part-three.html
多谢,已经修改。
很多人选择推拉结合。
一个例子就是「对僵尸用户的处理」
几年前我在薄荷网工作,那时有 2000 万用户,但日活只有 20+ 万。换句话说,存在大量的僵尸用户。如果为他们准备好队列,填满内容,其实是很不划算的,浪费了大量的存储空间。尤其是使用内存数据库时,简直是烧钱。当时采用的策略是:平时不管这些僵尸用户,他们的队列是空的,没有任何 feed,当他们登录时,临时去拉数据,把他们的队列填满。
但是企业市场不能这么考虑问题,SAP 的客户每年都在付费,人家买的就是服务。所以即使客户不登录,我们还是把每个客户队列中的内容准备好。
假如 Bell 取消了屏蔽,再次去拉 Ryan 的消息吗?
我的考虑:Feed 的内容大部分都有时效性,过了时间之后就没有什么价值了。取消屏蔽后,是不是可以不用拉数据啊。
Feed 流设计 (四):存储层
第四部分写数据库的选择,过几天再更新哈。
好主意!我把索引贴到文章底部了。