- 博客(96)
- 资源 (1)
- 收藏
- 关注
原创 项目集成多个数据源
项目目前情况是mysql查询,需要添加clickhouse查询。下面的问题就是如何切换数据源做查询了。这里可以使用切面 加注解的方式实现。
2023-05-16 16:13:50
283
原创 Quartz、xxl-job、Elastic-Job和Saturn简单对比
Quartz是满足复杂调度需求的好选择,而xxl-job和Elastic-Job则更适合分布式调度和动态扩展。优点: Saturn是一个建立在Elastic-Job之上的作业调度框架,旨在简化分布式作业的调度和管理。优势: Elastic-Job是一个强大而灵活的作业调度框架,支持分布式调度、动态扩展和作业依赖性管理。优点:xxl-job是一个轻量级和易于使用的作业调度框架,支持分布式调度和动态扩展。它支持复杂的作业调度要求,并提供许多内置的功能,如集群、持久性和作业链。
2023-03-29 22:22:32
2116
原创 需求:公司需要做数据迁移同步,以下是几种常见的ETL工具选型对比
总体来说,Datax是一款高效、灵活、易用的ETL工具,适用于处理大规模数据的场景。虽然缺乏可视化用户界面和商业支持,但可以通过配置文件和社区支持进行扩展和配置。支持多种数据源和数据目标,包括MySQL、Oracle、SQL Server、Hadoop、Elasticsearch、Kafka等。总体来说,每个ETL工具都有自己的优缺点,需要根据具体需求和情况选择最合适的工具。具有可视化的监控和管理功能,可以实时监控和管理数据流的状态和性能。支持多种数据源和数据目标,以及数据流的自动监测和管理。
2023-03-29 13:31:58
626
原创 canal同步mysql数据到kafka, kafka消费存入clickhouse
环境winmysql5.7如果不想看步骤可以直接下载我打包好的文件,修改相关数据库配置就行。
2023-02-13 12:57:53
1084
原创 mongo的date类型查询
时间上和存入的时间差了8小时 时间格式iso。mongoTemplate 注意。时间查询转ISODate。根据条件和时间查询如下。数据类型格式一定要匹配。
2023-02-08 17:27:46
1071
原创 数据库cpu很高解决方案
通过排查发现mysql的cpu和内存高是由于大量的性能差的垃圾sql导致的,由于签到查询量多。由于子线程无法获取父线程的request对象中的参数。添加了address索引 和精简了查询列。所以把参数读出来在传到线程池。首先修改sql提高查询性能。代码层面通过异步方式执行。
2023-02-02 17:36:11
1126
原创 KafkaProducer线程安全吗?
获取Deque,通过synchronized 进行发送,好了我们知道KafkaProducer是线程安全的,但是KafkaTemplate是线程安全的吗?从ConcurrentMap batches;这是我今天面试被问的一个问题,这会回来就来看看源码。先看KafkaProducer的构造函数。如果我们使用KafkaProducer。单例模式,也是线程安全的,官网的话。我们就看send方法是不是安全。双重检测 +volatile。
2023-01-30 18:07:53
664
原创 redis红锁算法
3客户端计算获取锁所需的时间通过从当前时间减去步骤1中获得的时间戳,当且仅当客户端能够在大多数实例(至少3个)中获取锁时,获取锁所花费的总时间小于锁有效时间,则认为已获取锁。2在5个实例上依次获取锁,在所有实例中使用相同的key名字和随机值,在步骤2期间,当设置锁再每个实例时,客户端使用与总锁自动释放时间相比小的超时来获取它。首先,我们假设客户端能够在大多数实例中获取锁所有实例都将包含一个具有相同生存时间的密钥,然而,这个key是在不用时间设置的,所以过期也会在不同的时间过期,加锁时客户端执行以下操作。
2022-12-15 14:38:49
554
原创 如何使用kafka实现可靠传输
可靠的数据传递是系统的属性之一,不能作为事后考虑。与性能一样,它必须从第一个白板图中被设计成一个系统。事后你就不能保证可靠性了。更重要的是,可靠性是一个系统的属性——而不是单个组件——所以即使当我们谈论Apache Kafka的可靠性保证时,您也需要记住整个系统及其用例。说到可靠性,与卡夫卡集成的系统和卡夫卡本身一样重要。因为可靠性是一个系统概念,它不可能是一个人的责任。每个人——Kafka管理员、Linux管理员、网络和存储管理员以及应用程序开发人员——都必须共同努力,以构建一个可靠的系统。Apache
2022-12-08 16:47:04
1667
原创 安装kafka和相关配置解析
1选择操作系统kafka是一个java应用程序,可以运行在很多系统上Windows, MacOS, Linux, 等一般都是Linux2安装java环境3安装zkzk存储的是metadata架构图如下Kafka已经用稳定的zk的3.4.6版本进行了广泛的测试,它可以从apache.org的http://bit.ly/2sDWSgJ上下载。单独的服务。
2022-11-16 15:20:51
1293
原创 浅谈web架构
位于服务层的服务器情况和应用层的服务器类似,也是通过集群方式实现高可用,只是这些服务器被应用层通过分布式服务调用框架访问,分布式服务调用框架会在应用层客户端程序中实现软件负载均衡,并通过服务注册中心对提供服务的服务器进行心跳检测,发现有服务不可用,立即通知客户端程序修改服务访问列表,剔除不可用的服务器。关系数据库虽然支持数据复制,主从热备等机制,但是很难做到大规模集群的可伸缩性,因此关系数据库的集群伸缩性方案必须在数据库之外实现,通过路由分区等手段将部署有多个数据库的服务器组成一个集群。
2022-11-15 09:25:19
207
原创 Nginx HA高可用实现记录
nginx高可用性能部署HA高可用先制作镜像再创建两个容器根据第三条来创建两个容器,你会发现有大量的重复操作,我们可以先制作一个镜像,再根据该镜像创建两个容器,从而避免了大量重复操作。1、配置模板容器(1)、下载centos:7.6.1810镜像(2)、启动并进入容器(3)、安装基础工具(4)、安装nginx的依赖库和安装nginx先安装nginx依赖再安装nginx(5)、修改index.html的标题title改为Master。
2022-11-15 08:44:33
381
原创 PageHelper1对多查询结果的分页问题
之前因为关联查询返回多列,mybatis返回时又做了折叠处理,所以有问题,就是把带有分页参数的sql和collection 的查询分开就可以了。collection 中的column中的id 是返回集合中的id,也是第二个查询中的参数。首先自定义一对多的关系,多余的字段我省略了,这里主要为了展示。就可以返回正确结果了。
2022-10-19 10:59:42
1027
原创 70. 爬楼梯 递归到记忆化最后动态规划
以上都是自顶向下的编程模式,climbStairs( n-1)+ climbStairs(n-2);这个就是所谓的递推方程,也可以使用自底向上的方式进行计算,就是所谓的动态规划。这道题比较经典,首先想到的就是递归写法。递归进行优化就变成了记忆化搜索。
2022-09-21 22:12:20
142
原创 spring之AOP切面不生效!!!!!原因在这
需要在扫描controller的那个xml中配置有时候配置到applicationContext.xml中是不生效的,切入的类和被切入的类必须是被spring管理的(springIOC),如果是自己new出来的,切入无效。只有Spring生成的对象才有AOP功能,因为Spring生成的代理对象才有AOP功能。而且所对应的切入方法不能是static修饰的。项目配置如下就可以生效了。...
2022-07-26 11:04:23
6360
1
原创 1143. 最长公共子序列
这个表的坐标中的数字含义是当前行的字串在当前列字串中的最大公共字串。如果最后一个字母相同就比较n-1这样子问题就出来了。这里有一个思维方式的改变,这里需要一定的经验。字符串的变化问题就需要变成一个二维数组。此题可以看做是s1=”****a”BABAZ有一个是1。BABA有一个是1。BAB有一个是1。...
2022-07-18 19:34:24
61
原创 lvs看这篇就够了
1lvs 的由来1公司的钱大部分都花在了获客,营销上,营销效果好就会带来新的流量,如果自身应用承接不住大的流量将会造成很大的经济损失。所以lvs负载均衡技术就此诞生了。当然不差钱也可以使用F5 等硬件lvs 学名Linux虚拟服务器LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统。本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一。想要说明白lvs 需要一定的网络知识,我就先从一个案例说起吧比如你要访问百度,访
2022-07-13 12:43:03
13534
原创 华为机试题素数伴侣
二分图最大匹配(匈牙利算法):素数伴侣顶题目描述若两个正整数的和为素数,则这两个正整数称之为“素数伴侣”,如2和5、6和13,它们能应用于通信加密。现在密码学会请你设计一个程序,从已有的N(N为偶数)个正整数中挑选出若干对组成“素数伴侣”,挑选方案多种多样,例如有4个正整数:2,5,6,13,如果将5和6分为一组中只能得到一组“素数伴侣”,而将2和5、6和13编组将得到两组“素数伴侣”,能组成“素数伴侣”最多的方案称为“最佳方案”,当然密码学会希望你寻找出“最佳方案”。输入有一个正偶数N(N≤100
2022-06-29 23:54:15
172
原创 深入理解hotspot源码与Linux 内核理解nio与epoll
1首先我们先看一个图理解一下biobio是一种阻塞io,一个服务端只能响应一个线程, 而且是第一个客户端响应完了才能响应第二个谓阻塞方式的意思是指,当试图对该文件描述符进行读写时,如果当时没有东西可读,或者暂时不可写,程序就进入等待状态,直到有东西可读或者可写为止。优点:编程简单缺点:阻塞效率低代码如下public class SocketServer { public static void main(String[] args) throws IOException {
2022-05-25 19:24:31
176
原创 记一次生产sql优化
总结优化思路1分析当前业务2定位慢查询arthas3分析查询参数,优化查询参数 ,优化返回结果4explan 分析慢查询 根据sql 分解sql,看哪一个子查询慢,优化索引,优化查询顺序结构等5以上都不行 前期就应该建立分库分表 或者使用ck nosql 进行查询arthas 分析结果如下[arthas@25356]$ trace com.rfca.dao.mapper.ParkingMapper QueryLatePhotoPress Q or Ctrl+C to abort.Aff
2022-05-20 10:26:59
536
原创 软考常考题型之哈夫曼(Huffman)树问题
以2021年11月的软考上午题为例,如下:已知一个文件中出现的各字符及其对应的频率如下表所示。采用Huffman编码,则该文件中字符a和c的码长分别为(1)。若采用Huffman编码,则字序列 “110001001101” 的编码应为(2)。(1)A、1和3B、1和4C、3和3D、3和4(2)A、faceB、baceC、acdeD、fade首先根据频率 构造Huffman树...
2022-05-11 15:25:43
817
2
原创 前端展示状态属性,从数据库中数字代号转换为中文解释
直接上代码public interface CodeEnum { Integer getCode();}public enum AlarmDataStatus implements CodeEnum { warn(1, "提醒"), commonly(2, "一般"), warning(3, "警告"), serious(4, "严重"); private Integer code; private String message; A
2022-05-11 11:27:51
524
原创 uml类图几大关系
在UML类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency)1. 泛化(Generalization) 对应java关键字extends 【泛化关系】:是一种继承关系,表示一般与特殊的关系,它指定了子类如何特化父类的所有特征和行为。例如:老虎是动物的一种,即有老虎的特性也有动物的共性。 【箭头指向】:带三角箭头的
2022-05-10 14:04:38
144
原创 数据库表的设计什么时候可以存在冗余?
数据库表的设计什么时候可以存在冗余?这个是今天的一个面试题,一般我们在设计表的时候至少需要满足第二范式,全满足第三范式可能会有很多表,在一个大型系统中,表的设计肯定是需要做冗余的但是什么时候做冗余呢我来举个例子比如 一个订单表 需要和用户关联 一般情况是订单表加上一个userid 但是你为了不链表查询 在订单表加了一个username,这时候就不需要链表查了。这时候就产生了冗余,而且如果用户改了登录名 这个查询结果就会有问题,所以次数的冗余是不合理的其实把username放到user表 是消除了
2022-04-28 17:19:28
2377
原创 例题: 与地址220.112.179.92匹配的路由表的表项是()
例题: 与地址220.112.179.92匹配的路由表的表项是()。A 220.112.145.32/22B 220.112.145.64/22C 220.112.147.64/22D 220.112.177.64/22地址220.112.179.92转换成二进制是:1101 1100 0111 0000 1011 0011 0101 1100根据选项,要求是22位网络号,也就是说1101 1100 0111 0000 1011 0011 0101 1100加粗部分的22位网络号是固定不变的,剩
2022-04-26 14:34:27
2841
原创 项目添加svn版本号
yml配置app-config: isDev: 1 version: ${prefix.revision}maven 配置 <!--svn版本号--> <plugin> <groupId>com.google.code.maven-svn-revision-number-plugin</groupId> <artifactId>maven-s
2022-04-02 16:55:37
718
原创 获取子线程结果
Future getget方法的行为取决于Callable任务的状态,只有以下这5种情况∶1.任务正常完成:get方法会立刻返回结果2.任务尚未完成(任务还没开始或进行中) : get将阻塞并直到任务完成3.任务执行过程中抛出Exception : get方法会抛出ExecutionException:这里的抛出异常,是call()执行时产生的那个异常,看到这个异常类型是java.util.concurrent.ExecutionException。不论call()执行时抛出的异常类型是什么,
2022-02-22 10:12:24
200
原创 java中的关键字
在本章中呢,我们将会学习以不变应万变。这个是不是很厉害啊?那么实际上呢他所讲的主要内容啊就是我们的final关键字,以及呢Java中的不变性。不过由于 final 关键字一共有三种用法,它可以用来修饰变量、方法或者类,而且在修饰不同的地方时,效果、含义和侧重点也会有所不同,所以我们需要把这三种情况分开介绍。我们先来看一下 final 修饰变量的情况。final 修饰变量关键字 final 修饰变量的作用是很明确的,那就是意味着这个变量一旦被赋值就不能被修改了,也就是说只能被赋值一次,
2022-02-17 23:54:57
180
疫情校园访客系统 功能1访客访问 2学生访问 3疫情信息登记 4信息发布 5信息评论 springboot+redis+mysq
2023-05-23
MATLAB语言常用算法程序集
2023-01-05
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人