自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

墨家巨子@俏如来

编程路上的一名小学生,旨在技术分享

  • 博客(245)
  • 资源 (2)
  • 收藏
  • 关注

原创 五.海量数据实时分析-FlinkCDC+DorisConnector实现数据的全量增量同步

前面四篇文字都在学习Doris的理论知识,也是比较枯燥,当然Doris的理论知识还很多,我们后面慢慢学,本篇文章我们尝试使用SpringBoot来整合Doris完成基本的CRUD。由于 Doris 高度兼容 Mysql 协议,两者在 SQL 语法方面有着比较强的一致性,另外 Mysql 客户端也是 Doris 官方选择的客户端。因此,如需对 Mysql 进行数据分析,使用 Doris 的迁移成本较低。

2024-09-28 12:00:36 794

原创 四.海量数据实时分析-Doris数据导入导出

Apache Doris 提供多种数据导入方案,可以针对不同的数据源进行选择不同的数据导入方式。数据源导入方式对象存储(s3),HDFS使用 Broker 导入数据本地文件MySQL LoadKafka订阅 Kafka 数据通过外部表同步数据通过 JDBC 导入使用 JDBC 同步数据导入 JSON 格式数据JSON 格式数据导入AutoMQ按导入方式划分通过 Broker 导入外部存储数据流式导入数据 (本地文件及内存数据)导入 Kafka 数据外部表通过 INSERT 方式导入数据S3 Load。

2024-09-08 17:51:24 1052

原创 三.海量数据实时分析-FlinkCDC实现Mysql数据同步到Doris

通过上面的 route 配置,会将 app_db.orders 表的结构和数据同步到 ods_db.ods_orders 中。这样,就可以将诸如 app_db.order01、app_db.order02、app_db.order03 的表汇总到 ods_db.ods_orders 中。参考:https://nightlies.apache.org/flink/flink-cdc-docs-release-3.0/zh/docs/get-started/quickstart/mysql-to-doris/

2024-09-07 08:25:54 1396

原创 二.海量数据实时分析-Doris数据表设计

Apache Doris 支持标准 SQL 语法,采用 MySQL 网络连接协议,高度兼容 MySQL 相关生态。因此,在数据类型支持方面,尽可能对齐 MySQL 相关数据类型。

2024-09-03 09:16:47 860

原创 一.海量数据实时分析-Doris入门和安装

停了一个月又开始写文章啦,因为公司数据量达到了几十亿,老板需要做实时数据分析,报表看板。Apache Doris 由百度大数据部研发(之前叫百度 Palo,2018 年贡献到 Apache 社区后,更名为 Doris ),在百度内部,有超过 200 个产品线在使用,部署机器超过 1000 台,单一业务最大可达到上百 TB。Apache Doris 是一个现代化的 MPP(Massively Parallel Processing,即大规模并行处理)分析型数据库产品。

2024-09-01 21:31:51 1804

原创 十九.升职加薪系列-JVM优化-解决JVM性能瓶颈的JIT即时编译器

在很多年以前,做C或者C++的程序员经常说Java语言的运行速度不如C或C++,Java运行速度慢主要是因为它是解释执行的,而C或C++是编译执行的,解释执行需要通过JVM虚拟机将字节码实时翻译成机器码(边翻译边执行),才能运行在操作系统上,这个过程会比编译执行慢。但现在再说这个结论就不太对了,随着JIT即时编译技术的发展,性能差距正在逐步缩小,甚至在某些情况下,执行速度是优于C或C++的。

2024-07-11 08:49:07 529

原创 十八.升职加薪系列-JVM垃圾回收器-开天辟地的ZGC

随着Java的发展,JVM的GC垃圾回收器也在跟着升级,从早起的单线程垃圾回收器Serial,到多线程的垃圾回收器Parallel Scavenge,再到并发垃圾回收器CMS,G1等。它们在某些对延迟要求比较高的系统来说都有些力不从心,比如:12346,股票,基金等业务。JVM垃圾器的STW机制(Stop The World)让程序的性能始终没法达到最优。

2024-07-11 08:48:48 891

原创 十七.吊打面试官系列-JVM优化-阿里Arthas解决线上问题

在生产环境通常是不允许远程连接的,一是因为性能问题,二是因为安全性问题。而如果使用JVM监控命令的话又不是很直观,因为没有可视化界面,阿里巴巴开源了一款JVM开源神器Arthas可以帮我们方便快捷的帮助我们定位JVM的问题从而进行调优。

2024-06-19 09:10:25 976 2

原创 十六.吊打面试官系列-JVM优化-JVM性能调优实战

在Java应用的开发和运维过程中,JVM的性能调优是一项至关重要的工作。随着业务的增长和复杂度的提升,线上问题排查、内存监控、参数优化以及压力测试成为每一位开发者和运维人员必须面对的挑战。本篇文章将带您走进JVM性能调优的世界,通过系统讲解线上问题的快速定位与解决、JVM内存的实时监控与分析、关键参数的精细调优策略以及如何进行有效的压力测试,让您掌握一套完整的JVM调优方法论。JVM调优一个很大的原则就是避免频繁的Full GC,导致Full GC的情况有下面这几种。

2024-06-19 09:10:07 1110

原创 十五.吊打面试官系列-JVM优化-JVM垃圾回收器详解

继上篇文章《JVM垃圾回算法详解》,我们本篇文章来讲解一下JVM垃圾回收器。垃圾标记算法是标记哪些对象是垃圾,垃圾回收算法是回收的理论算法,垃圾回收器才是真正回收垃圾的组件。不同的垃圾回收器使用了不同的垃圾回收算法。

2024-05-29 23:22:42 1241 2

原创 十四.吊打面试官系列-JVM优化-JVM垃圾回算法详解

说到JVM不可避免的会聊到垃圾回收器,(Garbage Collection,简称GC)。它负责跟踪哪些对象仍然在使用,哪些对象已经不再被引用,并释放那些不再被引用的对象所占用的内存空间。这一过程涉及到对象的标记、清除、压缩等多个阶段,每个阶段都有其特定的算法和策略。随着Java技术的不断发展,JVM的垃圾回收机制也在不断地优化和完善。

2024-05-29 23:22:07 928 1

原创 六.逼格拉满-Prometheus+Grafana微服务监控告警

微服务架构是一个分布式系统,由多个独立的服务组成,每个服务可能运行在不同的容器、虚拟机或物理机上,那么在生产环境中我们需要随时监控服务的状态,以应对各种突发情况,比如:内存爆满,CPU标高等等。Prometheus作为一种开源的监控和告警系统,天生就是为分布式系统设计的。它能够轻松地收集、存储和查询各个微服务的监控数据,为微服务架构提供全面的监控能力。Prometheus(普罗米修斯)是一个最初在SoundCloud上构建的监控系统。自2012年成为社区开源项目,拥有非常活跃的开发人员和用户社区。

2024-05-23 17:11:59 2780 6

原创 十三.吊打面试官系列-JVM优化-深入JVM对象创建流程

在Java中,对象的内存分配主要由Java虚拟机(JVM)的堆内存管理器负责。当使用new关键字创建对象时,JVM会在堆内存中为对象分配内存。

2024-05-23 17:10:38 1066

原创 十二.吊打面试官系列-JVM优化-深入JVM内存模型

需要注意的是,虽然永久代已经被去掉,但方法区(Method Area)的概念仍然存在。,运行时数据区由: 方法区,虚拟机栈,本地方法栈,程序计数器,堆 五部分组成,其中堆和方法区是线程共享的,其他区域是线程隔离的,也就是线程私有,比如:程序计数器在每个线程执行的时候都有一个私有的程序计数器。操作数栈(用于计算的临时数据存储区):操作数栈(Operand Stack)也常称为操作栈,它是一个后入先出栈(LIFO),当一个方法刚刚开始执行时,其操作数栈是空的,随着方法执行和字节码指令的执行,会。

2024-05-15 16:43:52 689

原创 十一.吊打面试官系列-JVM优化-深入JVM类加载机制

从本篇文章开始我们来探讨JVM相关的知识,内容附带JVM的启动,JVM内存模型,JVM垃圾回收机制,JVM参数调优等,跟着文章一步一步走相信你对JVM会有一个不一样的认识,如果觉得文章对你有所帮助请给个好评吧。

2024-05-15 16:43:24 1251

原创 十.吊打面试官系列-Tomcat优化-通过压测Tomcat调优实战

上一篇文章我们讲解了一下Tomcat底层的结构和执行原理,我们需要重点去掌握的是Tomcat的高内聚低耦合的设计,以及责任链模式,以及Tomcat NIO编程模式,这些是Tomcat比较核心的点,本篇文章我们将对Tomcat的参数做一些了解,然后通过Jemeter压测来对Tomcat进行调优。

2024-05-10 15:55:28 1423

原创 九.吊打面试官系列-Tomcat优化-深入源码剖析Tomcat启动流程

Tomcat的启动流程入口是 Bootsrap#main方法,他会先执行 init 进行初始化类加载器和实例化Catalina对象。它通过自定义WebAppClassloader类加载器来实现不同APP应用的加载隔离,从而打破了传统JVM的双亲委派机制。

2024-05-10 15:54:35 1006

原创 八.吊打面试官系列-Tomcat优化-深入源码剖析Tomcat如何打破双亲委派

上篇文章《Tomcat优化-深入Tomcat底层原理》我们从宏观上分析了一下Tomcat的顶层架构以及核心组件的执行流程。本篇文章我们从源码角度来分析Tomcat的类加载机制,且看它是如何打破JVM的ClassLoader双亲委派的Tomcat 并没有完全打破 Java 的双亲委派模型,而是对其进行了扩展和补充,以适应 Web 应用程序的特殊需求。

2024-05-07 19:10:17 961

原创 七.吊打面试官系列-Tomcat优化-深入Tomcat核心架构

作为一个名Java程序员,对于Tomcat肯定是很熟悉的,平时可能我们只是在Tomcat容器中部署项目,并不会去了解Tomcat底层架构,或者是对Tomcat做性能优化。然而在大型在高并发的项目中对Tomcat的优化确实必不可少的。接下来我讲带你一步一步去了解Tomcat的底层的奥秘,掌握Tomcat性能优化技能让面试官或者同事对你刮目相看。

2024-04-29 00:57:20 1284

原创 六.吊打面试官系列-数据库优化-深入Mysql日志机制

在Mysql中有三个非常重要的日志文件:Undolog ,Redolog,Binlog。Undolog是用作原子性保证的日志文件,MVCC多版本快照也是存储在Undolog日志文件中。Redolog是Mysql持久化日志文件,如果Mysql宕机数据丢失可以通过Redolog还原数据,Binlog也可以用作数据还原以及实现主从复制。本篇文章我们一起来研究一个下三种日志文件底层的执行原理以及相关参数配置。

2024-04-21 17:06:55 1147 1

原创 五.吊打面试官系列-数据库优化-Mysql底层执行原理

InnoDB存储引擎主要就是包含了一些buffer pool、redo log buffer等内存里的缓存数据,同时还包含了一些undo日志文件,redo日志文件等东西,同时mysql server自己还有binlog日志文件。在你执行更新的时候,每条SQL语句,都会对应修改buffer pool里的缓存数据、写undo日志、写redo log buffer几个步骤;但是当你提交事务的时候,一定会把redo log刷入磁盘,binlog刷入磁盘,完成redo log中的事务commit标记;

2024-04-16 19:56:14 182

原创 四.吊打面试官系列-数据库优化-Mysql锁和事务原理

本篇文章主要讲解两块内容:Mysql中的锁和ACID原理,这2个部分是面试的时候被问的蛮多的看完本篇文章之后相信你对Mysql事务会有更深层次的理解,如果文章对你有所帮助请记得好评事务: 指作为单个逻辑工作单元(Service方法)执行的一系列操作(数据库操作。),要么完全地执行,要么完全地不执行.事务可以看做是一组任务,通常对应了一个业务方法,这些任务要么全部成功,要么全部失败。在实际的业务开发中我们通常在Service层通过@Transcational注解来指定事务。

2024-04-16 19:52:12 1834 8

原创 三.吊打面试官系列-数据库优化-索引优化实战

mysql主要分为Server层和存储引擎层,Server层:主要包括连接器、查询缓存、分析器、优化器、执行器等,所有跨存储引擎的功能都在这一层实现,比如存储过程、触发器、视图,函数等,还有一个通用的日志模块 binglog日志模块。

2024-04-16 19:51:28 210

原创 二.吊打面试官系列-数据库优化-Explain索引分析

通过explain命令我们可以知道以下信息:表的读取顺序,数据读取操作的类型,哪些索引可以使用,哪些索引实际使用了,表之间的引用,每张表有多少行被优化器查询等信息。id列的编号是 select 的序列号,有几个 select 就有几个id,并且id的顺序是按 select 出现的顺序增长的。name列没有索引,那么在去重的时候会使用一个临时表来存储name列的值然后去重。这里我们需要一个常识,索引就是以空间换时间的打法,索引本身会占用磁盘空间,且索引会降低DML操作(增删改)的性能,当我们。

2024-04-16 19:49:51 202

原创 一.吊打面试官系列-数据库优化-认识MySql索引

索引(Index)是帮助DBMS(数据库)高效获取数据的数据结构,索引是为了加速对表中数据行的检索而创建的一种分散的存储结构。如果数据库没有索引就会走表进行全表扫描,一旦数据量上来,简直就是灾难。

2024-04-16 19:47:09 459

原创 拜托别再问我Mybatis-66个类手撸一个Mybatis

之前出了一套《吃透Mybatis源码》,本篇文章是整体性的概括一下Mybatis的底层实现流程,以《66个类手撸Mybatis》为基础进行讲解,代码已经上传到Gitee,希望对你有所帮助相比Spring来说Mybatis的源码是相对简单的,你可以通过上面的源码去深入理解Mybatis核心机制,当然这里的源码只是实现了简单的单个对象查询,时间关系其中很多细节是没有去实现的,但是毫不影响你对Mybatis的理解或者用于面试吊打面试官了。建议你对着图多看几遍。

2024-03-24 15:40:41 1179 3

原创 RabbitMQ入门到实战一篇文章就够了

MQ全称为Message Queue,即消息队列. 它也是一个队列,遵循FIFO原则 。RabbitMQ是由erlang语言开发,基于AMQP(Advanced Message Queue Protocol高级消息队列协议)协议实现的消息队列,它是一种应用程序之间的通信方法,消息队列在分布式系统开 发中应用非常广泛。官方地址:http://www.rabbitmq.com/

2024-03-08 11:35:05 10337 2

原创 阿里开源的Java诊断利器Arthas

通常,本地开发环境无法访问生产环境。如果在生产环境中遇到问题,则无法使用 IDE 远程调试。更糟糕的是,在生产环境中调试是不可接受的,因为它会暂停所有线程,导致服务暂停。开发人员可以尝试在测试环境或者预发环境中复现生产环境中的问题。但是,某些问题无法在不同的环境中轻松复现,甚至在重新启动后就消失了。如果您正在考虑在代码中添加一些日志以帮助解决问题,您将必须经历以下阶段:测试、预发,然后生产。这种方法效率低下,更糟糕的是,该问题可能无法解决,因为一旦 JVM 重新启动,它可能无法复现,如上文所述。

2024-02-26 14:45:15 1961 3

原创 kafka高吞吐、低延时、高性能的实现原理

Kafka是大数据领域无处不在的消息中间件,目前广泛使用在企业内部的实时数据管道,并帮助企业构建自己的流计算应用程序。Kafka虽然是基于磁盘做的数据存储,但却具有高性能、高吞吐、低延时的特点,其吞吐量动辄几万、几十上百万,这其中的原由值得我们一探究竟,让我们一起掌握Kafka各种精巧的设计。

2023-12-08 17:01:06 2369 3

原创 五.docker+jenkins自动部署项目

问题:软件的迭代过程包括,设计,编码,编译,构建,测试,发布,运维等等流程,早期的软件开发模式为瀑布式开发,这种开发模式迭代更新太慢,每个环境都需要耗费大量人力和时间成本。往往很长时间才迭代一次。如今企业追求的都是敏捷开发:快速开发快速迭代,尽可能的缩短软件的开发生命周期。DevOps 强调的是高效组织团队之间如何通过自动化的工具协作和沟通来完成软件的生命周期管理,从而更快、更频繁地交付更稳定的软件。DevOps是一种方法或理念,它涵盖开发、测试、运维的整个过程。

2023-10-07 13:14:13 2782 2

原创 四.Docker容器技术

问题:软件的迭代过程包括,设计,编码,编译,构建,测试,发布,运维等等流程,早期的软件开发模式为瀑布式开发,这种开发模式迭代更新太慢,每个环境都需要耗费大量人力和时间成本。往往很长时间才迭代一次。如今企业追求的都是敏捷开发:快速开发快速迭代,尽可能的缩短软件的开发生命周期。DevOps 强调的是高效组织团队之间如何通过自动化的工具协作和沟通来完成软件的生命周期管理,从而更快、更频繁地交付更稳定的软件。DevOps是一种方法或理念,它涵盖开发、测试、运维的整个过程。

2023-10-07 12:55:32 812

原创 阿里云VOD视频点播

视频点播,视频直播是企业用的很多的业务了,下面介绍如何接入阿里云的视频点播

2023-08-07 13:22:27 2989 1

原创 探秘MySQL底层架构:设计与实现流 程一览

InnoDB存储引擎主要就是包含了一些buffer pool、redo log buffer等内存里的缓存数据,同时还包含了一些undo日志文件,redo日志文件等东西,同时mysql server自己还有binlog日志文件。在你执行更新的时候,每条SQL语句,都会对应修改buffer pool里的缓存数据、写undo日志、写redo log buffer几个步骤;但是当你提交事务的时候,一定会把redo log刷入磁盘,binlog刷入磁盘,完成redo log中的事务commit标记;

2023-07-25 09:49:11 3168 12

原创 微信小程序接入微信支付

小程序,代码案例参考:https://github.com/wechatpay-apiv3/wechatpay-java/blob/main/service/src/example/java/com/wechat/pay/java/service/payments/jsapi/JsapiServiceExtensionExample.java。小程序开发指引:https://pay.weixin.qq.com/wiki/doc/apiv3/open/pay/chapter2_8_2.shtml,

2023-07-23 08:30:06 1797 2

原创 腾讯云COS对象存储

千呼万唤始出来,太忙了太忙了,本次带来腾讯云COS对象存储。也是因为搞项目正好用到COS,所以就记录下来,希望对大家有所帮助。

2023-07-23 08:09:36 1441 1

原创 谁说的前端已死后端已亡?你给我站出来

今年莫名其妙的网上就冒出来一句话:前端已死后端已亡,然后就会有很多人说工作不好找,要求高等等,本人也是在编程领域混迹了很多年,今天我们就来客观的分析一下,现在互联网到底是一个什么情况。

2023-05-17 18:31:30 3282 6

原创 一.手把手教你部署项目-VMware安装Centos

市场内卷,只会写代码的程序员可没那么吃香了,在企业中很多时候会要求后端程序写前端,甚至做运维,因为小公司为了解决成本是不会请专门的运维人员的。所以对于后端程序原来说,会一些运维只是必不可少的,我们就是应该向着全栈进发才更有竞争力。《手把手教你部署项目》专栏将会从Centos安装,Linux常用命令,传统项目部署,Docker容器化部署,K8S服务编排几个方面,让你一步一步掌握企业项目部署方式。

2023-05-17 10:19:05 1225

原创 终于等到你

终于等到你,还好我没放弃!3年坚持200+原创文章,50W浏览量,辛勤的付出终是有回报的。

2023-05-16 15:24:45 599 3

原创 四.从零开始JVM实战高手-JVM监控及线上问题定位

Java程序员面试JVM几乎比问,对于JVM监控,线上OOM,CPU负载100%等问题也是经常被问到,尽管在企业中不一定轮得到我们去处理线上问题,但是不管是为了面试还是为了应对开发那么对于JVM线上问题处理都是必须要去了解的。相对而言,解决故障问题也好,处理性能瓶颈也罢,通常思路大致都是相同的,即:分析数据(日志) , 分析排查,问题定位,解决问题 ,如果我们连程序执行的数据或日志都拿不到,那么我们是没办法去定位问题的。

2023-05-13 17:03:02 1644

原创 程序员如何把ChatGPT用到开发中

问:ChatGPT是程序员的好帮手?还是要干掉程序员?

2023-04-21 10:25:20 22742

client-adapter.es6x-1.1.5-jar-with-dependencies.jar

canal同步ES,解决druid类型转换失败问题,重新打包 client-adapter.es6x-1.1.5-jar-with-dependencies.jar , 放到canaladapter的plugin目录覆盖即可

2022-03-11

springcloudalibaba-seata-nacos-sentinel.zip

springcloudalibaba-seata-nacos-sentinel.zip

2021-01-29

空空如也

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

TA关注的人

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