浅谈.net和Java的异常类型设计 最近在自学Java,看到Java的检查型异常设计时,心中不免有些疑惑。疑惑使用检查型异常的必要性。注:本人现在从事的.net开发。C#在设计上借鉴了Java,但是,C# 并没有引入所谓的检查型异常。 在网上看到一些关于Java中是否该采用检查型异常的机制。真是众说纷纭,但是还是可以总结为,对这个设计的批评声更多。其实,我没有在真正项目中使用Java开发的经验,更没有过在方法签名中声明检查型
消息总线扩展之集成Thrift-RPC 本文主要探讨了消息总线支持Thrift RPC的实现过程。鉴于RabbitMQ官方的Java Client提供了基于RabbitMQ的JSON-RPC,消息总线也顺道提供了JSON-RPC的API。之后也尝试了为消息总线增加对Thrift-RPC的扩展支持,希望此举能让消息总线同时为SOA提供基础设施。
智力题:关于进入房间一次,判断哪个开关控制哪盏灯的问题 昨晚开始看《编程之美》,刚看到序中有一道面试题。据说,早期应聘PM职位的应聘者大多曾碰到这道题目:房间里有三盏灯,屋外有三个开关,分别控制这三盏灯,只有进入房间,才能看到哪一个电灯是亮的。请问:如何只进入房间一次,就能指明哪个开关控制哪个灯。自己有个想法,也没看网上的答案
Flink运行时之通信层API 上图中红框部分即为通信层API。通信层API通信层API介于任务执行与通信细节之间,主要用于对上层任务执行提供记录的读写服务同时屏蔽底层的通信细节。主要包括三个部件:将记录写入结果分区的写入器、将数据从输入网关中读出并反序列化为记录的读取器以及周旋在记录和二进制的Buffer数据之间对数据表示进行转换的序列化器。
关于23种设计模式的有趣见解(转载) 好东西不得不转在网上看见了这篇文章,作者以轻松的语言比喻了java的32种模式,有很好的启发作用。 创建型模式 1、FACTORY—追MM少不了请吃饭了,麦当劳的鸡翅和肯德基的鸡翅都是MM爱吃的东西,虽然口味有所不同,但不管你带MM去麦当劳或肯德基,只管向服务员说“来
Flink即将在1.7版本发布全新的Kafka连接器 最近我们向Flink社区贡献了一个全新的Kafka连接器(https://github.com/apache/flink/pull/6703),关联JIRA issue FLINK-9697。它包含了近6000行代码变更,经历了社区近100次的review讨论与评论。这一大特性即将会随Flink 1.7一起发布。这一特性也得到了一众Flink PMC的赞赏:现状与问题Apache Kafk...
Flink扩展 Table/SQL Scalar 函数的实现 overview本文档以TO_BASE64函数为例,介绍如何实现、扩展Flink Table&SQL Scalar function。使用方式自定义的Scalar函数有多种使用方式,我们以测试代码来了解一下,具体是如何使用的: @Test def testToBase64(): Unit = { testAllApis( 'f0.toBas...
Why EdgeX 弃 Java 转 Go 历史背景这里给不了解历史的同学先介绍一下背景。EdgeX的前身是Dell的Fuse项目(它是一个开源的物联网平台,包含超过12个微服务以及125000行净代码量),后由Dell将源码捐赠给Linux基金会并发起了EdgeXFoundry。说得更直白一点,Fuse(也即EdgeX早期)主要是基于Java语言(JVM平台)来实现的,微服务采用的是Spring Boot来构建。但到目前为止,已基...
Flink 1.5版本的“Task本地恢复”实现摘要 overview解读Flink 1.5版本的“task本地恢复”feature的实现。 随着时间的推移,Flink有些模块的代码复杂度已经很高了(比较典型的就是状态&容错这块)。因为考虑到兼容历史实现的问题,类在快速增长。实现关于本地恢复的配置,封装在名为LocalRecoveryConfig的类中,该类可提供本地恢复模式的查询(也即LocalRecoveryMo...
Flink 1.5版本网络栈重构技术分析 overview基于Flink近期的官方声明,明年的1.5版本将会发布三个较大feature,其中之一就是对于网络栈的重构。具体而言,就是将基于配置的、固定间隔的网络I/O改进为基于事件驱动的I/O。这种改进预期将会带来如下这些优势:提供应用程序级别的流控,以更好地处理反压(backpressure);降低Flink的网络延迟;更好地处理检查点的对齐(alignments);当bu...
Uber Athenax项目核心技术点剖析 本文剖析一下Uber Athenax项目的核心技术点。AthenaX是一个流式分析平台,它可以让用户运行SQL来进行大规模可扩展的流式分析。由Uber开源,具备扩展到上百台节点处理日均千亿级别的实时事件。
Flink关系型API简介 在接触关系型API之前,用户通常会采用DataStream、DataSet API来编写Flink程序,它们都提供了丰富的处理能力,以DataStream为例,它有如下这些优点: