自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 收藏
  • 关注

转载 基础部分 阿里云 ADB AnalyticDB MySQL版 2.0 业务开发(取自官网)

1 数据类型数据类型类型名称取值范围字节数boolean布尔类型0或11 bittinyint微整数类型-128到1271字节smallint整数类型-32768到327672字节int整数类型-2147483648到21474836474字节bigint大整数类型-9223372036854775808到92233720368547758078字节float单精度浮点数-3.402823466E+38到-1.1754

2022-01-21 17:43:50 1781

转载 高级部分 阿里云 ADB AnalyticDB MySQL版 2.0 架构、原理、优化 (取自官网)

1 产品架构分析型数据库MySQL版是基于MPP架构并融合了分布式检索技术的分布式实时计算系统,构建在飞天操作系统之上。分析型数据库MySQL版的主体部分主要由底层依赖、计算集群、控制集群和外围模块组成,具体如下图所示。1.1 底层依赖飞天操作系统:用于资源虚拟化隔离、数据持久化存储、构建数据结构和索引。MetaStore:阿里云RDS关系数据库或阿里云表格存储,用于存储分析型数据库MySQL版的各类元数据(注意并不是实际参与计算用的数据)。开源Apache ZooKeeper模块:用于对各个组

2022-01-21 15:34:51 8404

原创 运销宝平台开发规约

运销宝平台开发规约1.必须条目登录TOKEN规则(需要“基础数据”代码改造)类型:字符串长度:无固定长度组成:base64(用户名+用户编号)代码样例(用户名n=JohnWinstonLennon,用户编码c=U928652136203)SessionUser sessionUser = new SessionUser();sessionUser.setN("JohnWinstonLennon");sessionUser.setC("U928652136203");String tok

2020-09-17 15:54:48 689

原创 两张图搞清explain执行计划的using index; using where; using index condition区别

using where; Using index : 表示用到了索引覆盖,且对索引做了where筛选,这里不需要回表;using where; Using index : 表示用到了索引覆盖,且对索引做了where筛选,这里不需要回表;Using where :表示用到了筛选条件,这里是回表筛选。using where; Using index : 表示用到了索引覆盖,且对索引做了where筛选,这里不需要回表;using index condition只是表示:用到了索引作为查询条件。.

2020-07-02 13:56:50 2340

原创 草稿 ES数据同步方案

架构图请点击:架构图链接

2020-06-24 14:54:03 1430

原创 MySQL ES 数据同步方案

架构图说明业务数据拟支持如下数据源: - RDS(关系型数据库);DRDS(分布式关系型数据库);MongoDB;KV存储(Redis、Memercache);MQ(消息队列里)OSS(对象存储)数据抽取拟采用如下几种方式:针对MySQL,用阿里Canal抓取binlog做实时增量;针对Mongodb,用阿里KafkaShake抓取opLog做实时增量;针对其他,采用自研工具做全量与增量支持定时增量与全量支持开放接口手动增量与全量自研组件,对db数据的读取应

2020-06-22 16:12:49 1007

转载 Canal简介

背景早期,阿里巴巴B2B公司因为存在杭州和美国双机房部署,存在跨机房同步的业务需求。不过早期的数据库同步业务,主要是基于trigger的方式获取增量变更,不过从2010年开始,阿里系公司开始逐步的尝试基于数据库的日志解析,获取增量变更进行同步,由此衍生出了增量订阅&消费的业务,从此开启了一段新纪元。ps. 目前内部使用的同步,已经支持mysql5.x和oracle部分版本的日志解析基于日志增量订阅&消费支持的业务:数据库镜像数据库实时备份多级索引 (卖家和买家各自分库索引)se

2020-06-22 10:42:09 357

转载 Kafka生产者流程客户端消息发送过程解析

本文Kafka源码版本:1.0.0.一、KafkaProducer介绍1、KafkaProducer介绍与使用KafkaProducer是Kafka的客户端、消息的生产者,用来将消息发往Kafka cluster。KafkaProducer是线程安全的,并且单线程使用KafkaProducer实例比多线程性能更高。使用示例:Properties props = new Properties();props.put("bootstrap.servers", "localhost:9092");

2020-06-17 16:24:29 308

转载 KafkaProducer消息发送源码解析

上一讲中,我们大概的分析了下KafkaProducer消息发送流程,本节将从源码的角度深入分析消息发送过程。消息发送之前的准备工作都已经在客户端KafkaProducer的构造器中完成,包括:配置项加载、序列器初始化、消息收集器初始化、消息发送线程初始化等等。而消息的发送入口在send()方法中:Future<RecordMetadata> send(ProducerRecord<K, V> record, Callback callback);public Future&l

2020-06-17 16:23:37 511 1

转载 Kafka 源码解析之 Consumer 如何加入一个 Group

在 Kafka 中,Consumer 的复杂度要比 producer 高出很多,对于 Producer 而言,没有 producer 组的概念的、也不需要 care offset 等问题,而 Consumer 就不一样了,它需要关注的内容很多,需要考虑分布式消费(Consumer Group),为了防止重复消费或者部分数据未消费需要考虑 offset,这些都对 Consumer 的设计以及 Server 对其处理提出了很高的要求。本来计划是先进行综述,然后再分别介绍各个模块,现在打算反过来,先介绍各个模块,

2020-06-17 16:23:15 619

原创 Kafka最全面教程系统化讲解-高级

在阅读本文时,请先读前面的文章Kafka最全面教程系统化讲解(一)集群的成员关系Kafka使用 zookeeper来维护集群成员的信息。每个 broker都有个唯一标识符, 这个标识符可以在配置文件里指定, 也可以自动生成。 在 broker启动的时候, 它通过创建临时节点把自己的 ID注册到 zoo-keeper。 Kafka组件订阅 Zookeeper的/brokers/ids路径(broker在 zookeeper上的注册路径) , 当有 broker加入集群或退出集群时, 这些组件就可以获得通

2020-06-16 21:08:46 487

原创 Kafka最全面教程系统化讲解-基础

什么是Kafkakafka最初是LinkedIn的一个内部基础设施系统。最初开发的起因是,LinkedIn虽然有了数据库和其他系统可以用来存储数据,但是缺乏一个可以帮助处理持续数据流的组件。所以在设计理念上,开发者不想只是开发一个能够存储数据的系统,如关系数据库、Nosql数据库、搜索引擎等等,更希望把数据看成一个持续变化和不断增长的流,并基于这样的想法构建出一个数据系统,一个数据架构。Kafka可以看成一个流平台,这个平台上可以发布和订阅数据流,并把他们保存起来,进行处理。Kafka有点像消息系统,允

2020-06-16 15:00:12 652

原创 Netty AUTO_READ

1.read()方法追溯上文说到在HeadContext的channelActive方法中会调用readIfIsAutoRead();该方法同样会在HeadContext的channelReadComplete(xxx)中调用。 readIfIsAutoRead();源码如下:private void readIfIsAutoRead() { if (channel.config().isAutoRead()) { channel.read(); }}channel.

2020-06-03 16:35:50 587

转载 Java NIO 前置基础

简介Java NIO 是由 Java 1.4 引进的异步 IO.Java NIO 由以下几个核心部分组成:ChannelBufferSelectorNIO 和 IO 的对比IO 和 NIO 的区别主要体现在三个方面:IO 基于流(Stream oriented), 而 NIO 基于 Buffer (Buffer oriented)IO 操作是阻塞的, 而 NIO 操作是非阻塞的IO 没有 selector 概念, 而 NIO 有 selector 概念.基于 Stream 与基

2020-06-03 16:29:37 115

原创 HikariDataSource连接池断开重连源码(待整理)

2020-06-03 16:26:59 2503 1

转载 IO多路复用之select、poll、epoll详解

IO多路复用是指内核一旦发现进程指定的一个或者多个IO条件准备读取,它就通知该进程。IO多路复用适用如下场合:当客户处理多个描述符时(一般是交互式输入和网络套接口),必须使用I/O复用。当一个客户同时处理多个套接口时,而这种情况是可能的,但很少出现。如果一个TCP服务器既要处理监听套接口,又要处理已连接套接口,一般也要用到I/O复用。如果一个服务器即要处理TCP,又要处理UDP,一般要使用I/O复用。如果一个服务器要处理多个服务或多个协议,一般要使用I/O复用。与多进程和多线程技术相比,

2020-06-03 16:25:39 122

转载 TCP滑动窗口、拥塞窗口

作者:wuxinliulei链接:https://www.zhihu.com/question/32255109/answer/68558623来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。首先明确:1)TCP滑动窗口分为接受窗口,发送窗口。滑动窗口协议是传输层进行流控的一种措施,接收方通过通告发送方自己的窗口大小,从而控制发送方的发送速度,从而达到防止发送方发送速度过快而导致自己被淹没的目的。对ACK的再认识,ack通常被理解为收到数据后给出的一个确认ACK,

2020-06-03 16:24:53 1172

转载 SynchronousQueue原理

SynchronousQueue类实现了BlockingQueue接口。阅读BlockingQueue文本以获取有关的更多信息。SynchronousQueue是一个内部只能包含一个元素的队列。插入元素到队列的线程被阻塞,直到另一个线程从队列中获取了队列中存储的元素。同样,如果线程尝试获取元素并且当前不存在任何元素,则该线程将被阻塞,直到线程将元素插入队列。将这个类称为队列有点夸大其词。这更像是一个点。源码SynchronousQueue的内部实现了两个类,一个是TransferStack类,使用L

2020-05-13 20:37:57 382

原创 GC导致线上CPU超100%

运维同学告知报警,一个java进程占用CPU 100%以上。下面进行排查步骤。1.top -c ,效果如下图(这个截图是另一个节点的效果,实际进程号为17817,后续的截图将都会以进程号17817为准)。2.top -pH 17817,获取17817进程中,CPU消耗大的两个线程。3.printf “%x\n” 17819 ,获取16进制的线程号,因为在jstack的报告中,线程号都是以...

2020-05-04 11:20:54 2143

转载 rocketmq 设计

设计(design)1 消息存储消息存储是RocketMQ中最为复杂和最为重要的一部分,本节将分别从RocketMQ的消息存储整体架构、PageCache与Mmap内存映射以及RocketMQ中两种不同的刷盘方式三方面来分别展开叙述。1.1 消息存储整体架构消息存储架构图中主要有下面三个跟消息存储相关的文件构成。(1) CommitLog:消息主体以及元数据的存储主体,存储Produ...

2020-04-16 13:41:41 130

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除