Java
文章平均质量分 95
Java编程相关内容
蒋含竹
非淡泊无以明志,非宁静无以致远。
展开
-
CDC变化数据捕获——Debezium-Embedded
文章目录CDC变化数据捕获——Debezium-Embedded0. 前言1. 配置MySQL主从同步2. Debezium-Embedded 代码开发2.1 Maven导包2.2 代码-简单示例2.3 代码-使用Connect.class创建引擎2.4 代码-批量处理CDC事件2.5 启动代码运行即可CDC变化数据捕获——Debezium-Embedded0. 前言CDC(Change Data Capture)是变化数据捕获的意思,可以捕获数据库数据的增加、更新、删除等记录,RedHat的 De原创 2021-05-07 21:39:39 · 4904 阅读 · 22 评论 -
Flink示例——Flink-CDC
Flink示例——Flink-CDC版本信息Mavan依赖主从同步配置、数据准备使用Flink-CDC简单的测试Flink示例——Flink-CDC版本信息产品 版本Flink 1.11.1flink-cdc-connectors 1.1.0Java 1.8.0_231MySQL 5.7.16注意:官方说目前支持MySQL-5.7和8,但笔者还简单测试过mariadb-10.0.38(对应MySQL-5.6)。包括增加、删除、更新、聚合,目前皆可用,但不排除未知问题。Mavan原创 2020-09-18 23:28:39 · 12351 阅读 · 17 评论 -
Flink示例——Table、SQL
文章目录Flink示例——Table、SQL版本信息Mavan依赖自定义SourceFunctionTableAPI、SQL 简单示例TableAPI、SQL 窗口聚合示例Flink示例——Table、SQL版本信息产品版本Flink1.7.2Java1.8.0_231Scala2.11.12Mavan依赖pom.xml 依赖部分<dep...原创 2020-02-12 18:07:20 · 1064 阅读 · 0 评论 -
Flink示例——State、Checkpoint、Savepoint
文章目录Flink示例——State、Checkpoint、Savepoint版本信息状态后端 State Backend (管理State、Checkpoint)State 示例CheckpointSavepointFlink示例——State、Checkpoint、Savepoint版本信息产品版本Flink1.7.2Java1.8.0_231Scal...原创 2020-02-11 22:48:17 · 1070 阅读 · 0 评论 -
Flink示例——Window、EventTime、WaterMark
文章目录Flink示例——Window、EventTime、WaterMark版本信息自定义SourceFunctionWindow 示例EventTime、WaterMarkFlink示例——Window、EventTime、WaterMark版本信息产品版本Flink1.7.2Java1.8.0_231Scala2.11.12自定义Source...原创 2020-02-10 21:51:50 · 755 阅读 · 0 评论 -
Flink示例——Connect、CoMapFunction、Split、Select
文章目录Flink示例——Connect、CoMapFunction、Split、Select版本信息自定义SourceFunctionConnect、CoMapFunction 示例Split、Select 示例Flink示例——Connect、CoMapFunction、Split、Select版本信息产品版本Flink1.7.2Java1.8.0_231...原创 2020-02-10 14:50:03 · 1765 阅读 · 0 评论 -
Flink示例——Sink
文章目录Flink示例——Sink版本信息自定义SourceFunctionPrint Sink 示例Kafka Sink 示例ElasticSearch Sink 示例Redis Sink 示例自定义 Sink 示例 (JDBC)Flink示例——Sink版本信息产品版本Flink1.7.2Java1.8.0_231Scala2.11.12自定义...原创 2020-02-10 14:29:01 · 1061 阅读 · 0 评论 -
Flink示例——Source
文章目录Flink示例——Source版本信息Collection/Elements Source 示例Text Source 示例Socket Source 示例Kafka Source 示例自定义 Source 示例Flink示例——Source版本信息产品版本Flink1.7.2Java1.8.0_231Scala2.11.12Collect...原创 2020-02-10 14:11:40 · 1251 阅读 · 0 评论 -
分布式一致性算法(Paxos、Raft、ZAB)
分布式一致性算法(Paxos、Raft、ZAB)仅用作自己记录CAP理论一般来说,对于一个分布式系统,不能同时满足以下三点:Consistency (一致性)Availability (可用性)Partition Tolerance (分区容错性)典型例子一致性可用性分区容错性DataBase高高低RDBMS(MySQL、PostgreSQ...原创 2020-01-22 23:01:13 · 2137 阅读 · 0 评论 -
实现一个具有Stream的链式、惰性特点的容器
文章目录如何实现一个类似JavaStream惰性运行的容器?1. Stream 示例2. ChainCollection 链式-非惰性2.1 定义function接口2.2 容器抽象接口2.3 实现容器2.4 Test3. LazyChainCollection 链式-非惰性3.1 惰性节点3.2 实现容器3.3 Test如何实现一个类似JavaStream惰性运行的容器?1. Stream ...原创 2020-01-11 23:41:54 · 1163 阅读 · 2 评论 -
volatile在JVM内存交互中的操作
volatile在JVM内存交互中的操作JMMJVM内存屏障(JVM规范)JVM内存交互操作(Hotspot)volatile在硬件层的操作(Hotspot+Windows)示例-非volatile修饰的变量赋值操作示例-volatile修饰的变量赋值操作(lock/unlock)原创 2020-01-11 02:49:41 · 1504 阅读 · 0 评论 -
消息队列——RocketMQ示例
定位:分布式消息中间件、消息队列语言:Java性能:10万级吞吐量,ms级时效性可靠性:分布式架构,可靠性非常高其他:由阿里在2016年贡献至Apache基金会,已成为顶级项目。历经双十一考验,能够处理万亿级别的消息。原创 2020-01-06 20:50:02 · 1978 阅读 · 1 评论 -
字符编码与解码(附:Java字符流与字节流源码剖析)
文章目录字符编码与解码(附:Java字符流与字节流源码剖析)1. 从二进制码到字符2. 举例:UTF-8中的编码/解码2.1 UTF-8 编码2.2 UTF-8 解码2.3 错误的编码与解码字符编码的记录Java中字符流与字节流的关系(源码剖析)字符编码与解码(附:Java字符流与字节流源码剖析)1. 从二进制码到字符我们先声明两点,在计算机中:任何一个字节都是由二进制码组成的任何一...原创 2020-01-01 02:02:05 · 2133 阅读 · 0 评论 -
JVM对synchronized的优化——锁膨胀
文章目录Java对synchronized的优化——锁膨胀前言锁标志位锁膨胀的流程Java对synchronized的优化——锁膨胀前言通常我们在synchronized(…)中传一个对象,即可实现加锁,非常简单。而使用锁,常见的问题就是效率慢。在较早期的Java中synchronized会直接调用系统的重量级互斥锁(monitor)来实现加锁,效率较慢。锁膨胀则是针对该问题的优化方案:由...原创 2019-12-27 21:37:55 · 2216 阅读 · 1 评论 -
网络通信框架——KyroNet示例
文章目录网络通信框架——KyroNet示例简介使用方式网络通信框架——KyroNet示例简介KyroNet是一款TCP和UDP的Java封装库,连接方式采用了NIO,传输数据的序列化方式采用了Kyro。主要用于client/server模式的应用,非常高效,特别适合游戏相似的框架: Apache MINA、PyroNet 、Java Game Networking GitHub仓库...原创 2019-12-27 01:35:31 · 1192 阅读 · 0 评论 -
网络通信框架——Netty示例
文章目录网络通信框架——Netty示例概述Server/Client 聊天示例网络通信框架——Netty示例概述Netty 是基于NIO封装的网络通信库,相较于Java原生IO库来说具有以下优点API封装性好简单、易用功能强大,提供了各种常用库的接口Server/Client 聊天示例Maven依赖 pom.xml<dependency> <...原创 2019-12-27 01:24:50 · 2514 阅读 · 0 评论 -
关于在网络中使用BIO、NIO、AIO的示例
文章目录关于BIO、NIO、AIO的示例BIO 概述与示例NIO 概述与示例AIO 概述与示例关于BIO、NIO、AIO的示例BIO 概述与示例传统的Socket单通道直连I/O,简单,但是阻塞成本高,主要阻塞点在:new Socket()out.write()in.read()BIO 服务端示例 (ServerDemo.java)import com.skey.demo.u...原创 2019-12-27 01:05:08 · 971 阅读 · 0 评论 -
从Java代码到Java堆——理解并优化你的应用的内存使用量
文章目录从Java代码到Java堆——理解并优化你的应用的内存使用量背景:Java进程对于内存的使用 Java对象剖析Java数组对象剖析从Java代码到Java堆——理解并优化你的应用的内存使用量尽管优化应用代码在内存的使用量的主题已不再新颖,但它也不是一个能够很好被理解的部分。这篇文章简要的介绍了Java进程对于内存的使量,然后深入的挖掘了你所写的Java代码对于内存的使用量。最后,展...翻译 2019-12-24 14:09:59 · 2332 阅读 · 0 评论 -
JVM对象头的简单记录
JVM对象头信息的简单记录对象头信息Mark Word锁状态(无锁、偏向锁、轻量级锁CAS、重量级锁、GC标记)GC年代记录(分代年龄)hashcode (调用 System.identityHashCode(对象) 获得,HotSpot使用xor-shift算法)Klass Word,即class指针(指向内存中对象的class类,例如通过getClass拿到类信息)数组长...原创 2019-12-24 01:34:10 · 2896 阅读 · 2 评论 -
RPC框架——gRPC简单示例
文章目录RPC框架——gRPC简单示例1. 简介2. 将*.proto 协议文件转换为语言源文件3. 使用 gRPC 编写服务端/客户端RPC框架——gRPC简单示例1. 简介Google gRPC 是一款RPC框架官方网址: gRPC主要支持: C/C++, C#, Dart, GO, Java, Objective-C, Python, PHP, Ruby, Node.jsgRP...原创 2019-12-18 22:53:27 · 2034 阅读 · 0 评论 -
RPC框架——Thrift简单示例
文章目录RPC框架——Thrift简单示例1. 简介2. 将*.thrift 协议文件转换为语言源文件3. 使用 ThriftRPC框架——Thrift简单示例1. 简介Apache Thrift 是一款RPC框架官方网址: Apache Thrift主要支持: C++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa...原创 2019-12-18 20:01:10 · 1802 阅读 · 0 评论 -
布隆过滤器(BloomFilter)——应用(三)
文章目录布隆过滤器(BloomFilter)——应用(三)1. 分布式爬虫2. 大型NoSQL数据库3. 电子邮件过滤布隆过滤器(BloomFilter)——应用(三)1. 分布式爬虫简介大型爬虫项目一般会采用分布式架构,以多个节点协作的方式进行,以达到快速、高效地爬取海量网页数据的目的。要进行协作,那就需要一个分布式中间件,用于相互通知。分布式爬虫项目一般将已经爬取的网址存储与中间件...原创 2019-09-11 12:36:34 · 3594 阅读 · 0 评论 -
数据序列化框架——Kryo
文章目录数据序列化框架——Kryo1. 概览2. Java中使用Kryo示例2. Scala中使用Kryo示例数据序列化框架——Kryo1. 概览简介 Kryo是一款专用于Java的快速、高效的数据序列化的框架,同时也支持Scala、Clojure、Objective-C等特点快速、高效、占用空间小使用简单(不用像protobuf一样...原创 2019-08-22 11:49:33 · 4406 阅读 · 0 评论 -
数据序列化框架——protobuf
文章目录数据序列化框架——protobuf1. 概览2. 探寻protobuf设计的原因3. 使用 protobuf 示例数据序列化框架——protobuf1. 概览简介 protobuf全称Protocol Buffers,是Google的数据交换格式(协议),用于将数据序列化,在不同服务器之间进行高效的传输。如果你不是很理解,做个类比,我...原创 2019-08-21 18:19:12 · 3831 阅读 · 0 评论 -
布隆过滤器(BloomFilter)——原理(二)
文章目录布隆过滤器(BloomFilter)——原理(二)1. HashSet、HashMap数据结构简介2. BloomFilter的结构3. 关于BloomFliter一些疑惑的解释布隆过滤器(BloomFilter)——原理(二)1. HashSet、HashMap数据结构简介为了方便对比,所以我们先来看一下实现同类功能、常用的集合框架。因为HashSet一般由value为同一个Ob...原创 2019-08-19 23:39:18 · 3736 阅读 · 0 评论 -
布隆过滤器(BloomFilter)——简介(一)
文章目录布隆过滤器(BloomFilter)——简介(一)1. 基本概念2. BloomFilter和HashSet的性能比较3. BloomFilter使用示例布隆过滤器(BloomFilter)——简介(一)1970年布隆提出了BloomFilter,它被用作对数据进行初级的过滤,降低过滤数据的成本。BloomFilter就像粗糙的大筛子一样,使用它过滤细沙,先将所有的沙石倒进大筛子,能...原创 2019-08-17 02:20:37 · 3861 阅读 · 0 评论 -
设计模式——备忘录模式(Memento)
文章目录备忘录设计模式(看视频做记录示例)0. UML结构图1. 看视频做记录示例 Code1.1 视频1.2 视频备份1.3 视频备份维护的负责人2. 看视频做记录示例 Test代码:GitHub备忘录设计模式(看视频做记录示例)0. UML结构图1. 看视频做记录示例 Code1.1 视频public class Video { private Strin...原创 2019-02-18 00:50:59 · 212 阅读 · 0 评论 -
设计模式——状态模式(State)
文章目录状态设计模式(酒店入住示例)0. UML结构图1. 酒店入住示例 Code1.1 房间状态接口1.2 房间空闲状态1.3 房间已预定状态1.4 房间已入住状态1.5 房间上下文 - 状态处理2. 酒店入住示例 Test代码:GitHub状态设计模式(酒店入住示例)0. UML结构图1. 酒店入住示例 Code1.1 房间状态接口public interface ...原创 2019-02-18 00:08:12 · 460 阅读 · 2 评论 -
设计模式——观察者模式(Observer)
文章目录观察者设计模式(事件触发驱动示例)0. UML结构图1. 事件触发驱动示例 Code1.1 观察者接口1.2 命令接口2. 事件触发驱动示例 Test代码:GitHub原创 2019-02-17 23:37:36 · 189 阅读 · 0 评论 -
设计模式——模板方法模式(TemplateMethod)
文章目录模板方法设计模式(取餐馆吃饭示例)0. UML结构图1. 取餐馆吃饭示例 Code1.1 模板 - 餐馆抽象类1.2 面食餐馆1.3 海鲜餐馆1.4 火锅餐馆2. 取餐馆吃饭示例 Test代码:GitHub模板方法设计模式(取餐馆吃饭示例)0. UML结构图1. 取餐馆吃饭示例 Code1.1 模板 - 餐馆抽象类public abstract class Re...原创 2019-02-17 23:13:18 · 230 阅读 · 0 评论 -
设计模式——策略模式(Strategy)
文章目录策略设计模式(风景区购票示例)0. UML结构图1. 风景区购票示例 Code1.1 价格策略接口1.2 针对婴儿的价格策略1.3 针对小孩的价格策略1.4 针对成年人的价格策略1.5 上下文 调用具体的策略2. 风景区购票示例 Test代码:GitHub策略设计模式(风景区购票示例)0. UML结构图1. 风景区购票示例 Code1.1 价格策略接口publi...原创 2019-02-17 22:34:52 · 175 阅读 · 0 评论 -
设计模式——命令模式(Command)
文章目录命令设计模式(发送命令示例)0. UML结构图1. 发送命令示例 Code1.1 命令执行者1.2 命令接口1.3 命令实现类1.4 命令调用者2. 发送命令示例 Test代码:GitHub命令设计模式(发送命令示例)0. UML结构图1. 发送命令示例 Code1.1 命令执行者public class Receiver { private int ...原创 2019-02-17 18:15:55 · 218 阅读 · 0 评论 -
设计模式——中介者模式(Mediator)
文章目录中介者设计模式(公司部门打交道示例)0. UML结构图1. 公司部门 Code1.1 部门接口1.2 部门基类1.3 研发部1.4 市场部1.5 财务部2. 公司总经理(中介)Code2.1 中介接口2.2 总经理3. 公司部门打交道示例 Test代码:GitHub中介者设计模式(公司部门打交道示例)0. UML结构图1. 公司部门 Code1.1 部门接口pu...原创 2019-02-17 17:38:58 · 202 阅读 · 0 评论 -
设计模式——迭代器模式(Iterator)
文章目录迭代器设计模式(商品迭代示例)0. UML结构图1. 商品迭代示例Code1.1 迭代器接口1.2 商品聚合类与内部类商品迭代器2. 商品迭代示例Test代码:GitHub迭代器设计模式(商品迭代示例)0. UML结构图1. 商品迭代示例Code1.1 迭代器接口public interface MyIterator { /** * 将游标指...原创 2019-02-17 16:31:08 · 375 阅读 · 0 评论 -
设计模式——责任链模式(Chian Of Responsiblity)
文章目录责任链设计模式(公司请假示例)0. UML结构图1. 休假请求Code2. 责任对象Code2.1 领导的抽象类2.2 责任链第一个对象 - 主任2.3 责任链第二个对象 - 经理2.4 责任链第三个对象 - 总经理3. 公司请假示例Test代码:GitHub责任链设计模式(公司请假示例)0. UML结构图1. 休假请求Codepublic class Leave...原创 2019-02-17 15:38:27 · 268 阅读 · 0 评论 -
设计模式——享元模式(FlyWeight)
文章目录享元设计模式(卡牌示例)0. UML结构图1. 卡牌享元示例Code1.1 卡牌接口1.2 卡牌实现类 - 内部状态1.3 卡牌画面 - 外部状态1.4 卡牌工厂 - 享元工厂2. 卡牌享元示例Test代码:GitHub享元设计模式(卡牌示例)0. UML结构图1. 卡牌享元示例Code1.1 卡牌接口public interface FlyWeight {...原创 2019-02-16 01:07:51 · 214 阅读 · 0 评论 -
设计模式——外观设计模式(Facade)(门面模式)
文章目录外观设计模式(购房示例)0. UML结构图1. 购房示例Code1.1 卖家1.2 银行1.3 税务局1.4 房地产经纪人2. 购房示例Test代码:GitHub外观设计模式(购房示例)0. UML结构图1. 购房示例Code1.1 卖家人 - 接口public interface Person { void consult();}卖家...原创 2019-02-15 23:39:40 · 252 阅读 · 0 评论 -
设计模式——装饰模式(Decorator)
文章目录0. UML结构图1. 装饰人走路的示例代码1.1 走的接口1.2 人1.3 装饰器 - 特殊的人1.4 具体的装饰对象 - 运动员1.5 具体的装饰对象 - 超人2. 装饰器Test代码:GitHub0. UML结构图1. 装饰人走路的示例代码1.1 走的接口public interface Go { void go();}1.2 人publ...原创 2019-02-14 23:45:45 · 164 阅读 · 0 评论 -
设计模式——组合模式(Composite)
文章目录1. 基础接口1.1 抽象组件1.2 容器节点1.3 叶子节点2. 组合模式实现文件删除2.1 文本文件2.2 图像文件2.3 视频文件2.4 目录3. 文件删除Test代码:GitHub1. 基础接口1.1 抽象组件public interface Component { void delete();}1.2 容器节点public interfa...原创 2019-02-14 01:32:42 · 239 阅读 · 0 评论 -
设计模式——桥接设计模式(Bridge)
文章目录1.品牌1.1 品牌接口1.2 格力1.3 美的2. 设备2.1 设备基类(用于桥接品牌)2.2 空调2.3 冰箱2.4 电风扇3. 桥接模式调用Test代码:GitHub1.品牌1.1 品牌接口public interface Brand { String name();}1.2 格力public class Gree implements Br...原创 2019-02-13 23:58:38 · 246 阅读 · 0 评论