240 发简信
IP属地:北京
  • Flutter状态管理终极方案GetX第三篇——依赖注入

    GetX第三篇-依赖注入 为什么要使用依赖注入 依赖注入是什么 本来接受各种参数来构造一个对象,现在只接受一个参数——已经实例化的对象。 依赖注入的目的 依赖注入是为了将依赖...

  • Flutter | 深入理解BuildContext

    前言 最近看到一些刚接触Flutter的同学在进行页面跳转的时候,出现了这个问题。 代码是这样的 一眼看上去好像没什么问题,解决方式也很简单,把home部分作为一个新的Wid...

  • 读<<高效能阅读>>有感

    本文作者:刘代明,现在奇虎360搜索技术部任web服务端技术专家职位。 祝大家阅读愉快。 前言 每当我拿起书本时,总有一个习惯:强迫自己从前往后,从头读到尾。 买了书后,迫不...

  • httprouter源码阅读

    本文作者:刘代明,现在奇虎360搜索技术部任web服务端技术专家职位。 祝大家阅读愉快。 前言 在go web开发中,很多时候会选用一款web框架,随着项目功能增加,接口也越...

  • 发现kafka丢消息后的排查

    背景: 最近在用kafka做消息中间件,producer从hive中读取消息发送到kafka,后端storm对消息分类发送到elasticsearch建立索引。 问题:...

  • 这种方法应该是有问题的.行不通,原因如下:
    1)在beginTransaction在恢复或者做快照之前调用,这里返回的是一个mysql的connection对象,在这里事务的载体就是这个connection对象
    2)precommit是第一次预提交,如果你看过两阶段的源码你就会发现,这个是在给你传入的那个事物的载体对象做快照,对应你这里的就是mysql的connection,,接下来flink会将这个connection存储到状态后端,connection可不是一个普通对象,是一个数据库的连接,能序列化成功?
    3)commit,这个是快照成功了.flink内部已经将你上次的事务的载体对象给保存完毕了,在notifyCheckpointComplete里回调用户的commit方法,通知用户checkpoint成功了

    connection根本就不能序列化,这是其一,
    其二:即便这种方式可行,也会非常不稳定,因为每一次commit的提交都是一个checkpoin的过程,checkpoint的时间有长有短,如果遇到数据量大,checkpoint的时间长,那就意味着你在beginTransaction创建的这个链接得一直是打开的状态,只到checkpoin完成才可以,那你得设置足够长的connectionTimeOut时间和socketTimeOut时间
    其三:.如果flink某次任务失败了,你是从checkpoint中恢复上一个mysql的连接?

  • 120
    boltdb源码阅读

    前言 最近抽时间看了boltdb的源码[https://github.com/boltdb/bolt],代码量不大(大概4000行左右),而且支持事务,结构也很清晰,由于比较...

  • Openresty协程调度对比Go协程调度

    在web编程领域,Openresty与Go均有十分优秀的处理能力,在面对高并发的web编程,两者一般都是首选的技术方案。这两者我也一直使用,而且两者均有协程,现总结下,留个备...

  • 120
    从一个模糊词查询需求的处理方案讨论到一种极速匹配方案的实现

    背景 某天,我们的产品经理突然找到我,说我们的广告业务上线后效果不错,但是需要做敏感词过滤处理,需要接入一个模糊词词典和一个精确词词典。然后我拿到了这两份词典,两份违禁词加起...

  • 从MongoID的生成讨论分布式唯一ID生成方案

    背景 MongoDB,想必大家都使用过,在数据落盘后,查询该条数据时,会发现其会自动生成一条"_id",如: db.test.insert({"name":"tom"}) 查...

个人介绍
只要有树叶飞舞的地方,火就会燃烧,火的影子会照耀着村子,树叶还会重新发芽。