自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

舒适边缘的博客

从入门到放弃

  • 博客(37)
  • 收藏
  • 关注

原创 Prometheus监控Flink CDC任务

【代码】Prometheus监控Flink CDC任务。

2024-09-03 14:29:31 1425

原创 Spring整合Sharding实现查询走指定数据库

Spring整合Sharding实现指定某些查询走列数据库,某些走主库,其他查询实现MySQL从库负载均衡。

2024-07-03 17:55:08 709 3

原创 Flink同步MySQL到StarRocks遇到的问题

解决方案:修改FLINK_HOME/bin/目录的config.sh文件,将DEFAULT_ENV_PID_DIR="/tmp"改为:DEFAULT_ENV_PID_DIR的位置修改到一个合适的位置。kill之前的集群重新启动。原因:flink启动是会把启动的进程的ID存到一个文件中,由于配置不修改的话文件默认是保存到系统的/tmp目录下,由于是临时目录,会被系统清理,所以存放的ID就找不到了,也就没法关闭集群了。

2024-07-03 17:07:39 701 4

原创 局域网内MySQL连接慢的解决办法

禁止mysql做域名解析。

2023-12-19 11:28:00 671

原创 prometheus监控SpringBoot

prometheus配置。Grafana配置仪表盘。

2023-12-18 16:18:04 412

原创 Gitee搭建自己的Maven仓库

pom.xml引入插件。

2023-12-13 09:48:40 1006

原创 Flink DataStream API CDC同步MySQL数据到StarRocks

一、版本信息Flink:1.16.1二代码实现pom文件如下<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM

2023-12-12 17:17:39 1498

原创 synchronized

【代码】synchronized。

2023-12-07 14:51:44 872

原创 AQS

如果tail节点为空,则同步队列尾空,创建一个空的节点作为head和tail节点。否则CAS 将node节点添加到同步队列尾部。挂起当前线程,并返回线程中断状态。

2023-12-07 14:49:15 795

原创 线程池

降低消耗,线程可以重复使用,降低创建和销毁的销毁提高响应速度,不需要等到线程创建了再执行,多线程可以并发执行线程池可以加强线程的监控和管理,进行统一分配。

2023-12-07 14:47:47 836

原创 死锁

两个或多个持有锁资源的线程,互相等待对方的锁资源,而造成无限等待的情况。

2023-12-07 14:41:29 353

原创 CAS

CAS底层实现会加Lock指令前缀,单核的情况下不会使用Lock指令前缀。Lock指令前缀的作用。

2023-12-07 14:40:42 361

原创 intel手册对lock前缀的说明如下

很显然,这会带来昂贵的开销。从Pentium 4,Intel Xeon及P6处理器开始,intel在原有总线锁的基础上做了一个很有意义的优化:如果要访问的内存区域(area of memory)在lock前缀指令执行期间已经在处理器内部的缓存中被锁定(即包含该内存区域的缓存行当前处于独占或以修改状态),并且该内存区域被完全包含在单个缓存行(cache line)中,那么处理器将直接执行该指令。由于在指令执行期间该缓存行会一直被锁定,其它处理器无法读/写该指令要访问的内存区域,因此能保证指令执行的原子性。

2023-12-07 14:38:37 493

原创 Volatile

同时Lock指令会进行缓存锁定,使得其他CPU无法访问,同时Lock前缀使得store buffers刷入缓存行(其他CPU读取该变量时,发现缓存行的状态为I,同时存在其他缓存行状态为M-即刚才store buffers刷入缓存行,这时会先让该缓存行-M的数据刷入内存,然后CPU从内存读取,其实就是缓存一致性协议MESI),同时使得其他cpu或者内核无效化,通过MESI保证可见性。早期保证一致性,通过锁住总线,但是锁住后其他CPU无法访问内存,导致效率低下,引入MESI等缓存一致性协议.

2023-12-07 14:38:05 379

原创 ThreadLocal

每个线程都有独立的副本,线程之间互不影响。

2023-12-07 14:36:56 361

原创 逃逸分析

如果变量只能被一个线程访问,不会被其他线程访问,那么变量的读写是线程安全的,可以进行锁消除对象作用域只在方法或线程中,可以将对象在栈中分配,使用完后就销毁,减小了GC的压力标量替换:不能在被拆分的量叫做标量,对象是个聚合量,当对象不被外部访问,同时这个对象可以被拆散的话,那么不创建对象,用方法中需要使用的标量来替换

2023-12-07 14:33:20 402

原创 JVM 垃圾回收器

G1将内存分为很多大小相同独立的区域。虽然是独立,但是region中可能引用其他region的对象。这样进行可达性分析时,扫描就比较麻烦,所以每个region定义了一个Remembered set记录与其他区域的引用关系,GC扫描时只要扫描Remembered set防止全部扫描。

2023-12-07 14:31:19 387

原创 类加载机制

热更新、热部署加载不同版本的jar,解决冲突对类进行加解密。

2023-12-07 14:30:08 337

原创 JVM 垃圾回收

垃圾回收算法一、垃圾回收算法标记清除标记GC Root不可达对象,然后清除。存在内存碎片问题标记整理标记GC Root不可达对象,然后清除,将存活的对象移动到一端。避免了内存碎片的问题复制算法将内存分为相同的两部分,每次使用一块内存,垃圾回收时将存活的移到到另外一块。存在问题就是浪费内存分代回收算法分为新生代和老年代。新生代分为eden和两个survivor区,新生代采用复制算法,每次回收都有98%的对象死亡,将存活的对象存入一个survivor区,当下次回收

2023-12-07 14:28:57 381

原创 Redis 主从复制、哨兵模式、集群模式

哨兵是Redis集群高可用的解决方案,由一个或者多个Sentinel实例组成的系统,会监控Redis主节点,以及主节点下的从节点。当主节点发生故障时,哨兵会在从节点选举一个作为新的主节点,进行故障转移,由新的主节点继续处理命令。哨兵模式很好的解决了主从复制无法故障转移的缺点。但但redis数据量大时无法进行横向扩容。实际开发中通过连接Sentinel来进行redis的操作以及读写分离。

2023-12-07 11:17:38 801

原创 Flink CDC同步数据

Flink SQL实现。

2023-12-07 10:36:34 713

原创 Flink 下载安装

【代码】Flink 下载安装。

2023-12-07 09:20:23 1118

原创 MySQL基础架构

一、基础架构MySQL逻辑上可以分为Server层和存储引擎层Server层分为:连接器:通过TCP和服务器建立连接,进行身份认证和权限查询,后续的操作都根据权限进行查询缓存:将查询语句缓存,key为语句,value为值,当查询语句命中时直接返回值,但是数据进行更新时,缓存会被清空,MySQL8.0以后取消查询缓存解析器:没有命中缓存则进行词法分析和语法分析,词法分析会提前sql语句的关键词,如select,表名等。语法分析会判断sql语句是否符合规范,不符合返回错误优化器:在词法分

2023-12-05 10:42:09 366

原创 MySQL之InnoDB

一、InnoDB体系架构后台线程:后台线程负责刷新缓存中的数据,保证缓存的数据是最新的,将缓存的数据刷入磁盘,同时保证数据库发生异常时恢复正常工作。后台线程分为:Master Thread:将缓存的数据刷入磁盘,像脏页的刷入,插入缓存的合并,undo页的回收IO Thread:InnDB存在大量的IO操作,这类线程主要用于IO的请求回调Purge Thread:当事物执行完毕,有些undo页不需要使用,可通过Purge Thread线程回收,降低Master Thread线程的压力Pag

2023-12-05 10:41:39 367

原创 MySQL主从复制

主从复制默认是异步操作,有主库通知从库,如果采用从库轮询那么效率会很低,主库二进制日志有事件产生唤醒dump 线程就能马上通知从库,效率高的多。写压力大,导致从库的SQL线程来不及消化那么多的写数据。

2023-12-05 10:40:28 336

原创 MySQL事物以及MVCC

MVCC是多版本并发控制,一般解决读写冲突,我们采用加锁的形式,MVCC不需要加锁解决读写冲突。行id(主键存在时,不会创建),事物id回滚指针当我们的隔离级别为RR(可重复读),每开启一个事物,系统会分配一个事物id,当事物第一次调用select语句时会生成ReadView快照。事物id列表:记录当前未提交的事物id,顺序列表高水位:分配给下一个事物的id低水位:对应事物id列表中最小的事物的id创建该列表的事物id当访问的事物id小于低水位时,说明该事物已经提交可以访问。

2023-12-05 10:39:18 868

原创 Redis缓存穿透、缓存雪崩、缓存击穿

当访问的数据,缓存和数据库都不存在,每次请求都直达数据库,一般为恶意攻击某一时间大量的key过期,导致请求全部直达数据库缓存击穿和缓存雪崩类似,某一时刻,热点key失效,有大量的请求访问该热点数据。

2023-12-05 10:37:59 321

原创 Redis 和数据库的一致性

一、缓存是失效还是更新多个线程同时更新缓存,可能会造成数据不一致情况,如线程A先更新数据库,后切换线程B更新数据库,然后线程B更新缓存,最后切换线程A更新缓存,数据库存储B的数据,缓存为A的造成数据不一致有些只更新部分信息,可能需要遍历判断。操作繁琐开销大。如果更新很频繁,是否考虑这些数据不适合使用缓存二、缓存更新策略先删除缓存,后更新数据库时,如果还未更新数据库,此时有新的请求会读取数据库旧的数据,同时保存到缓存里,数据库更新后,缓存和数据库数据不一致,同时需下次操作时才能刷新缓存,不确定性

2023-12-05 10:36:23 470

原创 一致性Hash算法

一、一致性Hash算法的作用如redis数据分片,hash(key)%N,落到某个节点上,当增加或减少节点个数导致数据缓存的位置都是错误的,使得请求大量直到数据库,造成缓存雪崩。一致性Hash算法就是为了解决这个问题二、一致性Hash算法从0开始顺时针递增,2^32 -1为结尾形成一个hash环,机器通过hash然后对2^32 取模,落在环上,数据的hash也对2^32次取模落在hash环上,顺时针遇到的第一个机器,那么数据就存储在该机器上,这样增加或减少机器时,只会影响部分数据。三、一致性

2023-12-05 10:35:46 396

原创 Redis 持久化

一、RDBRDB时会fork一个子进程,fork时会阻塞,子进程和父进程共享内存空间。RDB期间操作数据,采用写时复制技术,主进程会复制出页进行操作RDB的优点RDB是二进制文件暂用的空间很小,RDB文件恢复比AOF快RDB可以用于数据备份以及数据恢复RDB有fork的子进程完成保存工作,主进程不需进行任何磁盘操作RDB的缺点RDB默认5分钟备份一次,宕机后数据恢复会损失5分钟的数据Redis数据很大时,fork会存在明显的阻塞RDB采用写时复制,时如果写入很频繁,那

2023-12-05 10:35:05 411

原创 Redis基础

)

2023-12-05 10:33:51 888

转载 Flink CDC同步MySQL到StarRocks

下载 flink-connector-starrocks,并且其版本需要对应 Flink 的版本。下载并解压 SMT,并将其放在 flink-1.14.5 目录下。下载并解压 Flink。本示例使用 Flink 1.14.5。下载 Flink CDC connector。下载、安装并启动 Flink 集群。

2023-12-05 10:23:59 619

原创 Prometheus Alertmanager集成钉钉告警

登录: http://localhost:9093/Prometheus配置alertmanager。

2023-12-05 10:18:39 584

原创 Ubuntu上安装Grafana

登录 http://localhost:3000,初始用户名和密码:admin。选择合适的version和Edition。

2023-12-05 10:15:57 634

原创 Prometheus的exporter安装

监控模板id:12633。监控模板id:7362。监控模板id:763。

2023-12-05 10:14:30 663

原创 Prometheus下载安装

禁用开机启动:systemctl disable prometheus.service。重启服务:systemctl restart prometheus.service。热加载配置:systemctl reload prometheus.service。停止服务:systemctl stop prometheus.service。

2023-12-05 10:12:14 526

原创 Flink SQL的一些使用记录

Flink SQL自定义job名称 Flin SQL从savepoint启动

2023-11-30 10:01:42 701

空空如也

空空如也

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

TA关注的人

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