flink kafka source的avro反序列化问题

对接了一个kafka,里面的topic使用avro编码,且每个topic的schema都不相同使用schema registry管理。
现在要反序列化keymessage,查看了现有的:

1
2
<groupId>org.apache.flink</groupId>
<artifactId>flink-avro-confluent-registry</artifactId>

内的ConfluentRegistryAvroDeserializationSchema.
发现无论是forSpecific返回一个特定的类,还是forGeneric返回GenericRecord都需要指定read schame,而registry仅作为write schema使用, 也就是虽然返回的是GenericRecord, 但实际上都是同一个Schema反序列化的, 每个record的格式是一致的.

Read More

spring boot应用 从mysql迁移h2

此前有个应用用了mysql做数据存储,但实际存储的数据很少就几张表加起来一共几千行,并且一直没有修改的需求,应用内也只是进行查询。
实际上是静态的数据。

因为使用的是云服务商的产品,想着之后就不续费了需要将数据迁移。

有几个选项:

  1. 改用文件存储,读取到内存后处理;
  2. 换成嵌入式数据库。

    Read More

[翻译]async: 什么是blocking

原文来自:https://ryhl.io/blog/async-what-is-blocking/
作者:Alice Ryhl
翻译 by abaabaqua

Rustasync/await特性是通过一种称为协作式调度(cooperative scheduling)的机制来实现的,这对于编写异步Rust代码的人来说有一些重要的影响。

这篇博文的目标读者是异步Rust的新用户。我将使用Tokio运行时作为示例,但这里提出的观点适用于任何异步运行时。

如果你只从这篇文章中记住一件事,那应该是:
异步代码不应该长时间不到达.await。(注:指的是运行中)

Read More

理一理Edge-triggered和Level-triggered

最近群里又在讨论java的NIO,提到了NIO使用的lt而netty使用JNI在linux和MacOS/BSD中封装了et.
之前对这两个概念笼统了解了下,并没有去查阅额外资料,仅限知道lt在缓冲区还有数据的情况下就会被poll出来,而et则需要有新的请求/事件发生.
这次查阅了点资料,汇总一些数据来简单(毕竟也没有那么深入..)谈谈这两个概念.

Read More

rust学习感想

最近刚把The book看完了,手有些生,断断续续写点小东西,这边写一下这个歌阶段的一些学习感想,感受.
文章很水,没有语言上的指导只有自己的一些见解,部分内容还可能是完全错误的,欢迎指正~~.

学习目的主要是想开阔一下视野.
之前就偶尔会听到别人说rust在设计上有一些特别的地方,并且又由于是一门可以进行系统编程的语言,学习的收获也会比学其他的来得多,就这样开始了.

Read More

2019年中总结~

很快2019年已经过去了一半,机械般重复的工作和生活让时间有了一种停滞感,每天就像往瓶子里滴一滴水,没什么感觉,但一回过神来已经满了半瓶.

Read More