`
sunhb1990
  • 浏览: 1587 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

工作上的变迁

    博客分类:
  • java
 
阅读更多
   我们的kafka的“复制品”metamorphosis做了1.4版本,实现了同步复制方案,broker本身也做了很多优化,总体而言meta是一个非常成熟可用的产品了。甚至可以说是我在淘宝做的最好的一个产品。有些朋友总是问我们为什么不直接用kafka,而要另写一个?这里做个统一的解答。
(1)kafka是scala写的,我对scala不熟悉,也不待见,考虑到维护和语言熟悉程度,用java重写仍然是最好的选择。
(2)其次,kafka的整个社区非常不活跃,发展太慢,而我又不愿意去学习scala来参与社区发展,那么唯一的出路就是自己写。
(3)kafka的一些工作不能满足我们的要求,比如一开始它连producer的负载均衡都没有,它的消费者API设计还是比较蛋疼的。它也不支持事务,没有考虑作为一个通用的MQ系统来使用。并且它也没有高可用和数据高可靠的方案。
(4)我们做了什么呢?
a.用java彻底重写整个系统,除了原理一致,整个实现是彻底重新实现的。
b.我们提供了生产者的负载均衡(仍然是基于zk),重新设计了消费者API,更符合 JMS的使用习惯。
c.我们提供了事务实现,包括producer和consumer端的,包括本地事务和符合XA规范的分布式事务实现。
d.我们提供了两种数据高可靠方案:类似mysql的异步复制和同步复制方案。通过将消息复制到多个节点上来保证数据的高可靠。
e.我们提供了http协议的实现,并且本身使用协议也是类似memcached的文本协议,内部也增加了很多统计项目,可以以memcached的stats协议的方式来获取纯文本的统计信息。整个系统运维很方便。
f.提供了很多扩展应用:广播消费者的实现,多种offset存储的实现(默认的zookeeper,还有文件和mysql),tail4j用于作为agent发送日志,log4j appender扩展用于透明地使用log4j发送消息,hdfs writer用于将消息写入hdfs,storm spout用于将消息接入storm做实时分析,基本上形成一套完整的工具链和扩展。
g.一些其他功能点:group commit提升数据可靠性和吞吐量,连接复用,集群下的顺序消息发送,消息数据的无痛迁移和水平扩展,web管理平台等。

    meta未来会走开源的路子,不过不会是我来推动的,估计是在今年会有进展。

    我最近还写了一些小项目值得一提,首先是aviator这个轻量级的表达式执行引擎发布了2.2.1版本,主要是这么几个改进:
(1)支持多维数组变量的访问,如a[0][0]
(2)添加Expression#getVariableNames()用于返回表达式的变量列表
(3)添加AviatorEvaluator#exec方法来简化调用
(4)bug修正等。
    maven直接升级:
<dependency>
                        <groupId>com.googlecode.aviator</groupId>
                        <artifactId>aviator</artifactId>
                        <version>2.2.1</version>
        </dependency>

    其次,hs4j这个handler socket的客户端,由新浪微博的@赵鹏城实现了inc/dec协议,添加了incr和decr方法用于更新计数,感谢他的贡献,如果你需要这两个功能可以自己从github拉取源码并构建打包,暂时不准备发布到maven。

    第三,关注高可用的Transaction Manager实现的可以关注下我的ewok项目,这是一个基于BTM这个开源JTA实现,提供基于bookkeeper的高可用的TM项目。将事务日志写到高可用的bookkeeper上,并利用zookeeper来做到故障的透明迁移,某个TM挂了,可以在其他机器上从bookkeeper拉取日志并恢复。代码已经稳定并做了性能测试,没有做进一步的破坏性测试。BTM是一个比JOTM和atomikos更靠谱的开源JTA实现,并且性能也好上很多,代码质量更不用说,建议有兴趣的可以看一下。我也为它贡献了一个事务日志写入优化的patch,日志写入性能提升了近一倍。

    最后,我在clojure上做了一些事情,首先是为storm项目贡献了两个patch:利用curator做zookeeper交互和添加storm.ui.context.path选项,前者被作者接受,后者暂时只对我们有用。前者让storm跟zk的交互更可用,后者是为storm ui添加了可选的相对路径。你都可以在我fork的分支上尝试,curator的patch在storm 0.6.2上发布,现在还是snapshot状态。昨天晚上牙痛睡不着,半夜写了个clojure STM profiler,用于统计分析clojure STM运行状况,诸如事务运行次数和时间,事务的重试原因和次数等,可以针对每个dosync的form做统计,有兴趣也可以看下。不过我其实更想将这个功能加入到clojure核心,会尝试提交下pull request。

   还有个工作上的变迁,我将在2月1号正式从呆了近三年的淘宝离职,加入一支充满活力的创业团队。从稳定的大公司出来,去加入一家初创公司,不能说没有风险,但是我还是想去接受新的挑战,愿意更新我的知识结构,愿意向牛人们学习。
分享到:
评论

相关推荐

    996加班工作制:互联网公司管理控制变迁研究.pdf

    在当前的移动互联网公司中,劳动者在制度层面的加班要求与之前灵活、自主的理想工作形式之间形成了较大反差,这促使学者们对移动互联网公司内部劳动控制机制的本质性变迁进行了深入思考。 文章的研究成果由梁萌教授...

    我所亲历的档案工作变迁

    我所亲历的档案工作变迁

    Socket状态变迁图

    在进行Socket编程时,理解Socket的状态变迁图是非常重要的,因为这有助于我们更好地掌握Socket的工作流程和可能出现的问题。以下是对Socket状态变迁图的详细解读: 1. **创建(Creation)** 在开始时,我们需要...

    Java内存模型的历史变迁

    ### Java内存模型的历史变迁 #### 一、引言 随着多核处理器的普及与高性能计算需求的增长,Java作为主流编程语言之一,对于并发处理的支持变得越来越重要。Java内存模型(Java Memory Model,简称JMM)作为Java...

    云计算时代下的企业IT运维变迁

    云计算时代下的企业IT运维变迁  IBM 谭瑞忠:部署一些系统资源,这样的一些事情,就是说用户有一个终端界面,他可以说需要两台UNV,需要怎么样的一些什么环境,只要有页面请求,就可以做出来了,这是一个,另外一...

    996加班工作制互联网公司管理控制变迁研究.pptx

    996加班工作制互联网公司管理控制变迁研究.pptx

    小米网架构变迁实践

    ### 小米网架构变迁实践 #### 一、小米网技术架构的发展历程 小米网作为小米公司的官方网站,自诞生之初就面临着巨大的挑战和技术难题。在小米网发展的早期阶段,技术团队仅有三位开发工程师,在短短两个月的时间...

    JIRA工作流介绍

    - **查看工作流**:用户可以通过查看问题页面中的工作流变迁链接,了解问题当前所处的步骤以及可执行的变迁。 #### 九、总结 JIRA的工作流功能是实现项目管理流程自动化的重要工具。通过合理配置工作流,可以确保...

    初中语文文摘社会职业的变迁

    标题:初中语文文摘社会职业的变迁 随着社会的不断进步和经济结构的演变,职业的发展和变迁成为了一个值得关注的话题。...无论社会如何变迁,理解和适应市场经济的规律,将有助于我们在职业道路上更加游刃有余。

    互联网时代,我眼中的架构变迁

    ### 互联网时代的架构变迁 #### 单机时代与单体架构 互联网的早期阶段,特别是在资源有限、人力资源紧张的情况下,为了能够快速推出产品或者上线网站,单机模式成为了一个非常实用的选择。在这种模式下,所有的...

    七年级地理上册 第2节《海陆的变迁》同步练习1 新人教版

    地质工作者在喜马拉雅山的岩石中发现有海洋生物化石,这表明该地区在远古时期曾是海洋。 5. 提出“大陆漂移假说”的科学家是D.魏格纳,他的理论认为地球上的大陆板块在过去曾发生过大规模的移动。 6. 材料分析题:...

    工作的失去,获得--劳动力在自动化下的变迁(麦肯锡全球学院2017,12综合报告)

    工作的失去,获得--劳动力在自动化下的变迁(麦肯锡全球学院2017,12综合报告),全文版

    人工智能与新闻传播生态的三次变迁.pdf

    综上所述,人工智能对新闻传播生态产生了深远影响,它不仅推动了新闻采编和报道的自动化,提高了新闻生产的效率,还预示着未来新闻传播领域与人工智能融合后可能出现的新形态。随着技术的不断进步,我们有理由相信,...

    人工智能技术变迁与科幻电影中的A I性别偏见.pdf

    因此,如何在科幻电影中正确地展示AI形象,尤其是女性AI形象,成为电影工作者和研究者必须面对的问题。 在技术演进和电影文本塑造方面,人工智能技术的发展与科幻电影中的AI形象塑造紧密相连。技术的性别分野在人工...

    审计模式变迁.pptx

    【审计模式变迁】\n\n审计模式是审计实践的核心,其变迁反映了审计行业随时代发展不断演进的历程。从账项基础审计到制度基础...了解这些变迁有助于我们更好地理解审计工作的本质和未来发展趋势,为审计实践提供指导。

    JIRA工作流详解文档.pdf

    综上所述,JIRA工作流是一个强大的工具,可以帮助组织更好地管理问题的生命周期,无论是简单的还是复杂的业务流程。通过自定义工作流,团队可以根据项目的特定需求灵活地调整工作流的结构和行为,从而提高工作效率和...

    剖析TCP连接的状态变迁图

    TCP连接的状态变迁图是理解TCP工作原理的关键,它有助于排查和解决网络或系统故障。 TCP连接的建立通常通过三次握手完成: 1. 客户端发送带有SYN标志的TCP报文,请求建立连接。 2. 服务器响应,返回一个SYN+ACK报文...

    jira工作流介绍

    4. 变迁和链接:工作流中的变迁是连接两个步骤的单向链接,它定义了问题从一个步骤到另一个步骤的移动路径。要实现问题在两个步骤间的来回移动,需要创建两个相应的变迁。 5. 变迁的配置选项:定义变迁时,用户可以...

    “数字+”就业生态系统演进变迁机理研探.docx

    ### “数字+”就业生态系统演进变迁机理研探 #### 一、研究背景与意义 随着5G、大数据、人工智能、云计算等新一代信息技术的迅猛发展,数字技术正在深刻地改变着全球经济格局与就业生态。自2019年底以来,新冠疫情...

    论文研究-雇佣关系的变迁:员工性别、价值观及工作经历的影响模式.pdf

    论文研究-雇佣关系的变迁:员工性别、价值观及工作经历的影响模式.pdf,

Global site tag (gtag.js) - Google Analytics