猴子笔记

Monkey's Blog


  • 首页

  • 标签

  • 归档

  • 关于

  • 搜索

使用Debezium同步PostgreSQL数据至Kafka

发表于 2020-08-07 | 更新于: 2020-08-13 | 分类于 数据同步 | 阅读次数:
Debezium连接器与Kafka Connect框架一起使用,以捕获数据库中的更改并生成更改事件。然后,Kafka Connect工作程序将为连接器配置的转换应用于连接器生成的每个消息,使用工作程序的转换器将每个消息键和值序列化为二进制形式,最后将每个消息写入正确的Kafka主题。 Debezium的PostgreSQL连接器包含两个不同的部分,它们可以一起工作,以便能够读取和处理服务器更改,必须在PostgreSQL服务器中安装和配置的逻辑解码输出插件,其中之一: decoderbufs(由Debezium社区维护,基于ProtoBuf) wal2json(由wal2json社区维护,基 ...
阅读全文 »

Flume消费Kafka,启动后无法正常关闭Flume进程的问题

发表于 2020-07-31 | 更新于: 2020-07-31 | 分类于 数据采集 | 阅读次数:
在学习Flume时,有遇到Flume来消费Kafka数据的场景,所以自己学习着做了一些配置。Flume的配置文件如下: ## 组件a1.sources=r1 r2a1.channels=c1 c2a1.sinks=k1 k2## source1a1.sources.r1.type = org.apache.flume.source.kafka.KafkaSourcea1.sources.r1.batchSize = 5000a1.sources.r1.batchDurationMillis = 2000a1.sources.r1.kafka.bootstrap.servers = hadoop ...
阅读全文 »

常见排序算法

发表于 2020-04-23 | 更新于: 2020-04-23 | 分类于 算法 | 阅读次数:

冒泡排序

工作原理

  1. 比较相邻的元素。如果第一个比第二个大,就交换他们两个。
  2. 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。
  3. 针对所有的元素重复以上的步骤,除了最后一个。
  4. 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。

复杂度

  • 最坏时间复杂度 O(N^2)
  • 最优时间复杂度 O(N)
  • 平均时间复杂度 O(N^2)
  • 额外空间复杂度 O(1)
  • 稳定性 稳定

实现

# 冒泡排序
def bubble_sort(alist):
n = len(alist)
exchange = False
# 首先得到每个循环需要比较的次数,第一次从0位置开始需要比较 len(alist) - 1 次
for i in range(n-1, 0, -1):
# 相邻两个位置不断比较,如果左边的数大于右边就交换位置
for j in range(0, i):
if alist[j] > alist[j+1]:
alist[j], alist[j+1] = alist[j+1], alist[j]
exchange = True
# 如果发现整个排序过程中没有交换,提前结束
if not exchange:
break
return alist
阅读全文 »

浏览器输入URL后发生了什么?

发表于 2019-12-11 | 更新于: 2019-12-11 | 分类于 计算机网络 | 阅读次数:

注意:本文的步骤是建立在,请求的是一个简单的 HTTP 请求,没有 HTTPS、HTTP2、最简单的 DNS、没有代理、并且服务器没有任何问题的基础上,尽管这是不切实际的。

大致流程

  1. URL 解析
  2. DNS 查询
  3. TCP 连接
  4. 处理请求
  5. 接受响应
  6. 渲染页面
阅读全文 »

计算机网络模型详解

发表于 2019-12-11 | 更新于: 2019-12-11 | 分类于 计算机网络 | 阅读次数:

一、什么是七层模型?什么是四层模型

OSI模型(Open System Interconnection Reference Model,缩写为OSI),全名“开放式系统互联通信参考模型”,是一个试图使各种计算机在全世界范围内互联为网络的标准框架。1983年,国际标准组织(ISO)发布了著名的ISO/IEC 7498标准,它定义了网络互联的7层框架,也就是开放式系统互联参考模型。

OSI七层模型

阅读全文 »

TCP三次握手和四次挥手详解

发表于 2019-12-11 | 更新于: 2019-12-11 | 分类于 计算机网络 | 阅读次数:

1. 三次握手

三次握手(Three-way Handshake)其实就是指建立一个TCP连接时,需要客户端和服务器总共发送3个包。进行三次握手的主要作用就是为了确认双方的接收能力和发送能力是否正常、指定自己的初始化序列号为后面的可靠性传送做准备。实质上其实就是连接服务器指定端口,建立TCP连接,并同步连接双方的序列号和确认号,交换TCP窗口大小信息。

阅读全文 »

MySQL核心知识点——索引

发表于 2019-12-02 | 更新于: 2019-12-18 | 分类于 数据库 | 阅读次数:

什么是索引?为什么要建立索引?

认识索引是什么东西非常关键,一个非常恰当的比喻就是书的目录页与书的正文内容之间的关系,为了方便查找书中的内容,通过对内容建立索引形成目录。
索引主要用于快速找出在某个列中有特定值的行,倘若不使用索引,MySQL必须从第一条记录开始读完整个表,直到找出相关的行,表越大,查询数据所花费的时间就越多。如果表中查询的列有一个索引,MySQL能够快速到达一个位置去搜索数据,而不必查找所有数据,那么将会节省很大一部分时间。
同时,索引它也是一个文件,它是要占据物理空间的。

阅读全文 »

MySQL核心知识点——锁机制

发表于 2019-11-25 | 更新于: 2020-01-30 | 分类于 数据库 | 阅读次数:

一、锁的分类

1、按锁的粒度划分,可分为表级锁、行级锁、页级锁
2、按锁级别划分,可分为共享锁、排他锁
3、按使用方式划分,可分为乐观锁、悲观锁

阅读全文 »

MySQL核心知识点——事务

发表于 2019-11-25 | 更新于: 2019-11-25 | 分类于 数据库 | 阅读次数:

一、什么是事务?

事务是逻辑上的一组操作,要么都执行,要么都不执行。

事务最经典也经常被拿出来说例子就是转账了。假如小明要给小红转账1000元,这个转账会涉及到两个关键操作就是:将小明的余额减少1000元,将小红的余额增加1000元。万一在这两个操作之间突然出现错误比如银行系统崩溃,导致小明余额减少而小红的余额没有增加,这样就不对了。事务就是保证这两个关键操作要么都成功,要么都要失败。

阅读全文 »

MySQL学习笔记

发表于 2019-11-25 | 更新于: 2019-12-31 | 分类于 数据库 | 阅读次数:
/* 启动MySQL */
net start mysql

/* 连接与断开服务器 */
mysql -h 地址 -P 端口 -u 用户名 -p 密码

/* 跳过权限验证登录MySQL */
mysqld --skip-grant-tables
-- 修改root密码
密码加密函数password()
update mysql.user set password=password('root');

SHOW PROCESSLIST -- 显示哪些线程正在运行
SHOW VARIABLES --
阅读全文 »
123
猴子哥

猴子哥

接受变化,拥抱新世界

26 日志
14 分类
27 标签
GitHub 知乎
友情链接
  • IIssNan
  • 美团技术团队
  • 有赞技术团队
  • IT草根推荐博客
© 2018 — 2020 猴子哥
由 Hexo 强力驱动
|
主题 — NexT.Mist v5.1.4