自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Mysql数据库表结构迁移PostgreSQL

公司本来用的数据库都是mysql,为了国产化适配兼容pg和dm。dm提供了数据迁移工具,可以直接做数据迁移,生成脚本之后在其他环境执行。但是pg貌似没有工具能直接用。navicat由于版权问题公司也用不了。pgloader使用总是有问题,可以执行pgloader命令,但是没有任何报错,表结构也没有迁移过去。所以自己写了个工具类,用于生成mysql表结构,然后通过脚本执行的方式在psql中执行。

2024-09-03 13:58:14 2366 1

原创 DolphinScheduler 3.1.9 启动、任务执行过程 源码 解析

Apache DolphinScheduler 是一个分布式易扩展的可视化DAG工作流任务调度开源系统。适用于企业级场景,提供了一个可视化操作任务、工作流和全生命周期数据处理过程的解决方案。旨在解决复杂的大数据任务依赖关系,并为应用程序提供数据和各种 OPS 编排中的关系。解决数据研发ETL依赖错综复杂,无法监控任务健康状态的问题。

2024-07-02 16:05:23 1871 1

原创 Hazelcast 分布式缓存 在Seatunnel中的使用

本文只是介绍了hazelcast的最基本用法,如果按照案例中的使用,完全可以用redis或者本地缓存。但是如果有了更高级(实际中的使用),那么hazelcast的分布式计算特性还是很好用的。源码也只是分析了本地的调用。如果感兴趣其实可以debug跟进去看下远程调用的方式。其实想想本质还是一样,远程调用就需要1、发现节点;2、注册节点;3、网络调用其他节点。而seatunnel的调用就相对来说更高级一些,它进行了一系列的封装。最后也还是网络调用其他节点。

2024-06-17 14:48:07 1386

原创 neo4j入门并使用案例说明

Neo4j是一个高性能的NoSQL图形数据库,它将结构化数据存储在网络(在数学角度称为图)上,而不是传统的表中。Neo4j是一个嵌入式的、基于磁盘的、具备完全的事务特性的Java持久化引擎。它因其高性能、轻量级、易嵌入和完全支持事务等特性而受到关注。Neo4j使用Cypher查询语言,这是一种易于理解和使用的查询语言,支持ACID事务,保证了数据的一致性和可靠性。

2024-06-05 16:58:51 2408 1

原创 Canal 结合 SpringBoot 源码梳理

如果不太清楚这里是怎么把数据解析出来的,可以自己搭建起来服务执行一下看看canal返回的结构体,我下边也提出来我的返回,并且我也会将上边代码中和数据解析的地方标红。发现是继承了一个抽象的client,这个类是关键,内部有start和stop的具体实现。至此,在springboot中通过canal获取binlog的日志并且解析为自定义的entry对象的流程就已经分析、梳理完了。就可以看到哪里使用了。我使用的是1.1.5版本,太高的版本需要的jdk版本和mysql的驱动版本会更高,可以根据自己的环境选择。

2024-02-02 11:12:30 1130 1

原创 springboot 集成mybatis-plus报错Invalid bound statement (not found):

mybatis-plus的坑

2022-07-01 16:03:57 912

原创 mysql数据同步、mq消息积压问题 解决方法

mysql数据同步的问题,主要出现的原因就两点: 1、主库由于高并发,写入binlog太过频繁,导致从库来不及同步,从而使得数据不同步 解决办法:由于高并发导致的问题,所以只能通过限制并发数来解决问题,将并发数限制在一个可以实现同步的范围内,这样就可以保证主从同步。 具体做法:(1)、可以使用降流的方式来保证,但是我们的并发量比较稳定,所以不需要 (2)、可以使用mq的方式来实现消息削峰。让消费者去mq中消费消息。 ...

2021-04-01 17:40:47 795

原创 java 对于<T>与<?>的用法区分

用具体的例子来说明public class CglibProxyFactoryT<T> { /** * 得到目标对象 */ private Object target; public CglibProxyFactory() { } /** * 使用构造方法传递目标对象 * @param target */ public CglibProxyFactory(Obj...

2020-12-08 08:54:04 1409 1

原创 springmvc或springboot使用RestTemplate访问远程接口

最近在使用springcloud的时候,远程uereka的同一个服务,会被多个机器注册。为了指定访问服务。发现可以使用RestTemplate访问。具体步骤如下:@Configurationpublic class BeanConfiguration { @Bean public RestTemplate getRestTemplate(){ return new RestTemplate(); }}package com.bngrp.datap

2020-10-27 13:54:41 470

原创 java 操作gis geometry类型数据

现在做的gis方面的业务,所以需要操作postgis中的geometry对象,找了很多的库,比如geotools,但是莫名下载不下来。还有就是jts,但是不好用,操作起来很复杂。找到了一个其他的类库--geolatte-geom 和geolatte-geojson。主要用于将String转geometry对象、wkt和wkb方便好用。pom.xml文件如下:<!-- https://mvnrepository.com/artifact/org.geolatte/geolatte-geom

2020-10-16 10:45:40 2882

原创 常用的git命令

git status #查看本地仓库状态git branch -a #查看所有(本地+远程)分支git checkout -b branchname #创建并切换分支git fetch #刷新(合并)所有有修改的代码git update-index --assume-unchanged filename #忽略不想要提交的代码git update-index --no-assume-unchanged filename #撤销对代码的忽略git add.

2020-09-25 15:56:00 164

原创 根据一个二叉树的前序和中序,重构二叉树

要重构二叉树,首先要知道什么是二叉树,以及如何自己创建一个二叉树。了解了二叉树是如何创建出来的,才能重构二叉树。什么是二叉树树(Tree)是n(n>=0)个结点的有限集。n=0时称为空树。在任意一颗非空树中:1)有且仅有一个特定的称为根(Root)的结点;2)当n>1时,其余结点可分为m(m>0)个互不相交的有限集T1、T2、......、Tn,其中每一个集合本身又是一棵树,并且称为根的子树。此外,树的定义还需要强调以下两点:1)n>0时根结点是唯一的,不可能存在多个

2020-09-08 11:31:24 300

原创 java 实现数组-快排序

快排在我理解就是双指针法。一个数组,左右两个指针,然后左指针向右移动,右指针向左移动。1 4 6 8 9 2 3 44 55 11左指针 ↑ ----------》 《---------↑右指针这里一定要注意,一定是右指针先移动,并且是两个指针每次都移动一次。算法原理:1、先确定一个基准点。我选择...

2020-08-24 16:36:53 274

原创 java 实现计算最长有效字符串

这个算法给人的第一感觉是挺简单的,而且类似的还有一个算法是--有效括号。查看括号是不是一一对应的。但是在写的时候还是遇到了挺多的坑的。记录一下。首先这类问题肯定先想到队列、栈等等。比较之下要使用栈(stack)大概就是这样的,直接上代码:public class bracket{ public static int bracketLength(String s){ if (s == null || s.length() == 0){ retur

2020-08-24 16:20:33 415

原创 java 实现数组的堆排序(大顶堆)

话不多说先上代码如果不想看原理,直接就抄代码就行了:/** * 堆排序 * 具体的流程是 数组---》大顶堆(或者是小顶堆)---》第一个个元素和最后一个元素调换位置---》重复元素下沉,以完成排序 */public class HeapSort { // 将一个数组 转化成 大顶堆 (根节点一定是比 左右子节点都大的) // 规则是 arr[i].left = arr[2*i+1] // arr[i].right = arr[2*i+2] .

2020-08-24 16:01:18 1100

原创 centos7 安装mysql5.7 rpm方式

现在安装东西都是使用docker安装了,方便好用,但是不知道怎么了,自己的虚拟机使用docker安装tomcat、mysql等等之后,端口就是访问不到,但是阿里云ecs是正常的。在网上找了很多的办法都没办法解决,又急的用,所以用原来的办法安装,记录一下。1、下载rpm文件:wget https://dev.mysql.com/get/mysql57-community-release-el...

2020-04-22 10:06:41 261

原创 centos7 下实现mysql主从复制(同步)

这段时间觉得一个数据库会导致不高可用,所以想到做mysql的主从复制,用于提高mysql的高可用。记录一下方便复习。1、需要两台centos7 内核的服务器。并且安装mysql服务。2、两台服务器ip分别为192.168.1.187(主)、192.168.1.189(从)。修改两台mysql的配置 /etc/my.cnf文件添加如下配置: master(主):#mysql ...

2020-04-22 09:45:39 764

原创 maven 分模块项目 主子pom之间的引入依赖关系

在项目时用到maven管理项目,在一个就项目的基础上开发新的项目;关于子项目和父项目,子项目与子项目之间的调用问题,发现自己存在不足,以下是自己查询的问题,解决了自己的疑惑。原文链接:https://www.cnblogs.com/kuoAT/p/6845876.html问题下面是一个简略的项目结构图Parent`------ childA(BusinessLayer) ...

2020-03-24 21:43:06 5508

原创 centos7 下常用命令

记录一些centos7 用到的命令,方便查阅1、netstat -lntp # 查询端口占用情况,以及进程PID2、cd /proc/PID #进入PID进程的运行目录,查看具体所在文件夹3、ps -ef|grep java #查询正在运行程序的进程号4、mkdir -p /home/data/... #创建文件夹,如果上级目录没有就直接创建5、free -m...

2020-03-12 09:48:23 381

原创 搭建nginx

在使用nginx过程中,自己遇到的一些问题,记录下来,方便查阅1、nginx开启缓存:1、proxy_cache_path /var/cache/nginx/proxy_cache levels=1:2 keys_zone=imagecache:200m inactive=1d max_size=30g; #表示 开启一块区域,用于存放缓存的数据,并将这块区域命名为imagecache...

2020-03-12 09:38:55 324

原创 docker 使用docker compose

1、docker-compose允许用户通过一个单独的docker-compose.yml模板文件来定义一组相互关联的应用容器为一个项目。2、Compose中有两个重要概念: 服务:一个应用容器,实际上可以包括若干运行相同镜像的容器实例。 项目:由一组关联的应用容器组成的完整业务单元,在docker-compose.yml文件中定义。 3、安装docker-compos...

2020-03-12 09:29:24 282

原创 构建dockerfile 文件

docker image prune // 删除所有的虚悬镜像1、写docker脚本FROM tomcat // 继承某个镜像,tomcat是镜像名。所有的dockerfile文件的第一个 都必须是FROMWORKDIR /usr/local/tomcat/webapps/ROOT //切换当前工作目录为/usr/local/tomcat/webapps/ROOTRUN rm -rf ...

2020-03-12 09:28:16 391

原创 centos7 集成docker 搭建nginx 实现tomcat反向代理

之前搭建好了tomcat,原以为使用docker 搭建nginx和tar安装nginx差不了太多,但是当实际操作的时候,发现还是遇到了很多坑。运行tomcat容器 下载nginx镜像,并运行nginx容器docker search nginx #查询nginx镜像docker pull nginx(nginx:版本号) #下载nginx镜像,可以携带版本号#可以按照之前搭...

2020-01-14 14:06:57 577

原创 centos7 集成docker 搭建服务器环境

最近频繁搭建线上环境,总是被各种配置搞得很烦,所以尝试使用docker搭建环境,遇到一些难点,记录一下,方便以后查询。安装docker 网上有很多的教程,基本都可以安装成功。docker的一些基本命令docker search 要查询的软件名称(tomcat)#查询要安装的软件。docker pull tomcat或者docker pull tomcat:8.5.02 #...

2020-01-09 11:49:56 294

原创 springboot 集成solr

对于solr的安装和基础入门,今天就不多说了,可以去看之前写的文章。今天主要研究了一下solr如何集成到springboot项目中,实现基本的CRUD。1、首先向solr中导入mysql中的数据,用于开发测试。在solrhome文件夹中,找到conf文件夹,修改data-config.xml<dataConfig> <!-- 这是mysql的配置,学会jdbc的...

2019-08-20 17:01:36 1335

原创 windows10 安装RabbitMq 的一些坑

按照网上的安装教程一步步的安装下来,erlang的环境变量配置是ok的,但是就是rabbitmq-server安装之后,启动一直失败。具体提示是c盘路径下面的config文件有问题,然后又是在网上一顿搜。有说是注册表的问题,有的说是重新安装几次,有的是端口问题。总之问题说的是五花八门。没有一个最终能解决问题。后来想到是不是用户是中文的原因,但是想要将用户名修改成英文名还要修改环境变量,实在是太...

2019-08-20 12:41:17 1028 1

原创 lucene&solr 基础使用

lucene和solr:官网下载地址http://lucene.apache.org/一般网站用solr比较多,但是想要了解solr的用法,我们需要首先了解一下lucene的使用方法。因为solr底层使用lucene开发的。lucene全文检索: 将非结构化数据中的一部分信息提取出来,重新组织,使其变得有一定结构,然后对此有一定结构的数据进行搜索,从而达到搜索相对快的目的。这部...

2019-08-02 14:15:47 374

原创 请求通过mybatis是如何使得mysql完成增删改查的

mybatis 连接mysql 当有一个查询的请求访问网站时,代码的运行流程是怎么样的1、当项目第一次启动的时候,加载org.mybatis.spring.SqlSessionFactoryBean,进入SqlSessionFactoryBean执行buildSqlSessionFactory方法,将所有的mapper文件预加载,并且返回SqlSessionFactory。注意这个过程只...

2019-07-23 16:16:14 176

原创 springmvc 接收到一个请求之后,底层源码是如何执行的

springmvc 一个请求访问之后的过程源码分析protected void doDispatch(HttpServletRequest request, HttpServletResponse response) throws Exception { HttpServletRequest processedRequest = request; Handle...

2019-07-22 15:56:03 301

原创 java 连接数据库实现增删改查的底层原理(源码)

java能够连接不同数据的原理是因为有不同的数据库驱动。 应用程序--》数据库驱动--》mysql或者oraclejdbc代码: public class Mysql { /** * 入口函数 * @param arg */ public static void main(String arg[]) { try...

2019-07-22 10:05:17 1436

原创 java 多线程编程常用类和接口

Java并发编程:多个线程同时访问共同的一块资源。synchronized关键字: synchronized 用法, Object o = new Object();public void m(){synchronized(o){return 123;}这里的o表示的是想要执行m方法,需要去获取到锁,而这个锁就是objectg对象,需要注意的是,要获取这个锁,不是争夺...

2019-07-17 13:42:52 622

原创 jvm 内存模型以及垃圾回收机制

java虚拟机内存主要分为堆内存、栈(线程)内存、本地方法栈内存、元空间(静态方法区)以及程序计数器。1、堆内存:主要存放new出来的对象和全局变量。2、栈内存(线程):每个内存都有一个单独的线程。主要存放局部变量、对象的引用、动态链接以及方法出口。在栈内存中,每个线程都会重新分配一块内存,每一个内存就是一个栈帧。在每个栈帧中,又会分为多个内存,这些个内存分别存放着局部变...

2019-07-02 15:30:56 221

转载 重量级锁、自旋锁、轻量级锁、偏向锁、悲观、乐观锁

重量级锁?自旋锁?自适应自旋锁?轻量级锁?偏向锁?悲观锁?乐观锁?执行一个方法咋这么辛苦,到处都是锁。今天这篇文章,给大家普及下这些锁究竟是啥,他们的由来,他们之间有啥关系,有啥区别。重量级锁如果你学过多线程,那么你肯定知道锁这个东西,至于为什么需要锁,我就不给你普及了,就当做你是已经懂的了。我们知道,我们要进入一个同步、线程安全的方法时,是需要先获得这个方法的锁的,退出这个方法时...

2019-05-08 09:24:52 251

转载 同步/异步/阻塞/非阻塞/BIO/NIO/AIO

常规的误区假设有一个展示用户详情的需求,分两步,先调用一个HTTP接口拿到详情数据,然后使用适合的视图展示详情数据。如果网速很慢,代码发起一个HTTP请求后,就卡住不动了,直到十几秒后才拿到HTTP响应,然后继续往下执行。这个时候你问别人,刚刚代码发起的这个请求是不是一个同步请求,对方一定回答是。这是对的,它确实是。但你要问它为什么是呢?对方一定是这样回答的,“因为发起请求后,代码就卡住不...

2019-05-08 09:23:42 144

原创 springmvc+logback 控制台打印mybatis执行的sql

今天mybatis中有个sql一直不知道有没有写对,所以需要打印mybatis中的sql来查看sql语句是否正确。在网上找了好多的资料,试过之后都是不能正常使用。试了好久终于能显示了,记录一下,以后方便回顾。1、在mybatis-conf.xml中的<configuration>、<settings>增加配置:<setting name="logImpl"...

2019-04-26 12:45:30 3127

原创 mysql 索引底层数据结构与算法

索引:是帮助MySQL高效获取数据的排好序的数据结构。mysql 索引的底层数据结构:二叉树:如果是规律性数据,比如1,2,3.....等数据,存储容易成线性结构,数据规模太大之后,查询太慢。 红黑树(hashap的底层数据结构):存在自平衡性问题,虽然不会出现单边增长,但是在数据量太大的时候,数据树的高度是不可控的,向下检索很慢。 hash:通过hashcode通过位置指针多次定位,...

2019-03-14 11:01:10 669

原创 Mybatis 连接mysql数据库底层运行原理

工作中一直在用spring+springmvc+mybatis,只是知道它是用于持久层框架,但是一直不知道原理是什么,通过网上视频解释,自己做一个笔记,方便以后查阅。什么是mybatis:MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或...

2019-03-11 16:55:20 3944

原创 HashMap 原理分析

hashmap的底层结构如上图所示,主要是数组和链表组成。当我们创建一个hashmap对象之后,调用put方法的时候,首先通过key获取到一个hash值也就是hashcode,然后还会获取到一个所在数组的下标index,算法是:hashcode = key.hashcode();index = hashcode%数组长度-1;然后将得到的hashcode、index、key...

2019-03-08 13:18:06 270

原创 reids java客户端jedis 原理

redis 官网:https://redis.io/jedis的用法,可以在redis的官网最上边一栏的客户端里面就可以找到。jedis客户端连接redis服务端的大概流程是这样的。传输层:用于建立与redis的网络通信,传输信息。起到连接的作用 消息协议层:与redis确认RESP协议是否正确,并携带所要传递的数据信息。 api操作层:封装客户端api,方便其他人调用。/...

2019-03-07 11:32:42 381

原创 java 动态代理

我觉得首先要知道代理的意思。一个简单的例子,上学的时候老师收作业,这些作业不能是学生一个个的拿给老师,老师在一个个面授吧。一般情况下都是由班干部统一收上去,然后抱到老师办公室的吧。我们每个人就相当于被代理的,而班干部就是我们的代理。也就是说,作业是班干部帮(代理)我们交到老师哪里的。这个过程就是代理的过程。好的,知道了代理,那么肯定就有静态代理和动态代理。静态代理:用上面的例子来说,就是班...

2019-03-06 11:11:14 195

空空如也

空空如也

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

TA关注的人

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