Processing math: 100%

08 2020 档案

摘要:背景 公司的物流业务系统目前实现了使用storm集群进行过门事件的实时计算处理,但是还有一个需求,我们需要存储每个标签上传的每条明细数据,然后进行定期的标签报表统计,这个是目前的实时计算框架无法满足的,需要考虑离线存储和计算引擎。 标签的数据量是巨大的,此时存储在mysql中是不合适的,所以我们考虑 阅读全文
posted @ 2020-08-26 15:50 Ging 阅读(268) 评论(0) 推荐(0)
摘要:背景 公司的物流业务系统目前实现了使用storm集群进行过门事件的实时计算处理,但是还有一个需求,我们需要存储每个标签上传的每条明细数据,然后进行定期的标签报表统计,这个是目前的实时计算框架无法满足的,需要考虑离线存储和计算引擎。 标签的数据量是巨大的,此时存储在mysql中是不合适的,所以我们考虑 阅读全文
posted @ 2020-08-21 17:01 Ging 阅读(166) 评论(0) 推荐(0)
摘要:背景 昨天公司业务部门报告业务崩溃,查看各个业务节点后,定位问题到storm集群。 打开storm ui查看下任务状态,发现可以加载页面元素,但是无法加载数据,分析是nimbus挂掉了,重启nimbus。本着先恢复业务的原则,我直接通过命令行停止任务后,又重新提交了任务,这个时候访问storm ui 阅读全文
posted @ 2020-08-18 16:49 Ging 阅读(829) 评论(0) 推荐(0)
摘要:背景 目前算法笔记的学习已经进展到第四章,下面会记录第四章贪心算法的两道题解。写这篇博客的目的也是鼓励自己继续学习下去。 简单贪心 PAT B1020 #include <stdio.h> #include <cstring> #include <cstdlib> #include <algorit 阅读全文
posted @ 2020-08-13 14:25 Ging 阅读(116) 评论(0) 推荐(0)
摘要:散列的引入 考虑下面的问题 给出N个正整数,再给出M个正整数,其中N,M<=105,问M中的每个数是否在N中出现过? 最直观的解法:首先需要把N个数据存储起来,然后遍历M个数据,拿到每个M后,再遍历N,判断是否存在一个数与当前待判断数相等,时间复杂度为O(NM)。 有一种空间换时间的解法:有一个大小 阅读全文
posted @ 2020-08-13 10:20 Ging 阅读(156) 评论(0) 推荐(0)
摘要:简单选择排序算法 算法核心 遍历找到每轮次的最小值,和待插入位置的数据进行交换,从而依次按照数组位置从小到大排好序。 算法实现 两层循环 外层正序,从0到数组length-2(因为从0到倒数第二个都有序了,最后一个不需要判断) 内层正序,从i到length-1(找到最小值) 记忆口诀 外层正序,内层 阅读全文
posted @ 2020-08-12 14:46 Ging 阅读(207) 评论(0) 推荐(0)
摘要:排序基础概念 排序的稳定性 定义:排序前,有排序关键字相同的两条记录,这两条记录有先后顺序,如果排序后,这个顺序依旧不变,为稳定排序;否则为不稳定排序。 内排序和外排序 定义:内排序是在排序过程中,待排序的记录都放在内存中的排序。外排序是待排序数据太大,无法都放入内存,排序过程中需要不断交换内存和外 阅读全文
posted @ 2020-08-12 11:06 Ging 阅读(148) 评论(0) 推荐(0)
摘要:背景 最近在恶补数据结构和算法相关的知识,查询到一本比较好的书籍算法笔记,然后就开始学习了,学完第二章C/C++语言基础后,做了第三章的题目,虽然书上已经有题解了,但是还是想发表这篇文章,原因是通过记录下来我的学习过程,以提醒和鼓励自己。 第三章题解 #include <stdio.h> #incl 阅读全文
posted @ 2020-08-12 09:56 Ging 阅读(152) 评论(0) 推荐(0)
摘要:背景 这部分内容是我学习 数据结构与算法分析 java语言描述的学习笔记,希望对大家有帮助。 数学知识复习 指数相关 XAXB=XA+B XAXB=XA-B (XA)B​ = XAB XN + XN= 2XN 2N + 2N = 2N+1 对数相关 logA B = \ 阅读全文
posted @ 2020-08-10 11:29 Ging 阅读(305) 评论(1) 推荐(1)
摘要:前言 Java多线程部分的题目,是我根据Java Guide的面试突击版本V3.0再整理出来的,其中,我选择了一些比较重要的问题,并重新做出相应回答,并添加了一些比较重要的问题,希望对大家起到一定的帮助。 系列文章: 面试题-Java基础 面试题-Java集合 面试题-Java多线程基础、实现工具和 阅读全文
posted @ 2020-08-10 09:46 Ging 阅读(241) 评论(0) 推荐(0)
摘要:前言 Java多线程部分的题目,是我根据Java Guide的面试突击版本V3.0再整理出来的,其中,我选择了一些比较重要的问题,并重新做出相应回答,并添加了一些比较重要的问题,希望对大家起到一定的帮助。 系列文章: 面试题-Java基础 面试题-Java集合 Java多线程 多线程基础 何为线程, 阅读全文
posted @ 2020-08-10 09:45 Ging 阅读(311) 评论(0) 推荐(0)
摘要:背景 最近公司需要在生产服务器上测试字库,需要非常频繁修改配置文件中的字体相关属性,然后实时调试,所以需要频繁的修改配置文件并手动发布出去。之前需要修改配置文件时,我们需要: 把jar包通过FTP传回本地电脑 把新配置文件,压缩进jar包替换老配置文件 再把jar包通过ftp传回服务器 今天偶然发现 阅读全文
posted @ 2020-08-10 09:44 Ging 阅读(805) 评论(0) 推荐(0)
摘要:背景 公司正常的业务流程是生产服务器上部署的一个程序去读取数据库,并获取所有ip信息,启动socket连接,发送相关业务指令。 目前有一个需求,需要单独测试一个ip,这个单独的ip需要使用另外的程序测试,其他的ip使用原始生产程序测试。并且测试完毕,需要恢复这个ip由生产程序接管。 没有自动化运维脚 阅读全文
posted @ 2020-08-10 09:42 Ging 阅读(1505) 评论(0) 推荐(0)
摘要:前言 Java集合部分的题目,是我根据Java Guide的面试突击版本V3.0再整理出来的,其中,我选择了一些比较重要的问题,并重新做出相应回答,希望对大家起到一定的帮助。 Java集合 Java集合 说说Arraylist 与 LinkedList 区别? ArrayList的底层数据结构是数组 阅读全文
posted @ 2020-08-10 09:41 Ging 阅读(167) 评论(0) 推荐(0)
摘要:全字段排序和rowId排序 建表语句如下: CREATE TABLE `t` ( `id` int(11) NOT NULL, `city` varchar(16) NOT NULL, `name` varchar(16) NOT NULL, `age` int(11) NOT NULL, `add 阅读全文
posted @ 2020-08-10 09:40 Ging 阅读(939) 评论(0) 推荐(0)
摘要:前言 Java基础部分的题目,是我根据Java Guide的面试突击版本V3.0再整理出来的,其中,我选择了一些比较重要的问题,并重新做出相应回答,希望对大家起到一定的帮助。 修改记录 日期 修改内容 20240822 优化7题答案 20240823 增加16题访问级别;增加17题类重名问题 Jav 阅读全文
posted @ 2020-08-10 09:39 Ging 阅读(405) 评论(0) 推荐(0)
摘要:delete删除数据原理 在InndoDB存储引擎中,delete删除操作是把需要删除的数据或者页标记为已删除,后面如果有需要,直接复用即可。这些被标记为已经删除的数据,看起来就像空洞一样。所以看起来虽然delete了,但是表文件大小并不会改变。 如果想删除这些空洞,达到收缩表空间的目的,可以使用a 阅读全文
posted @ 2020-08-10 09:37 Ging 阅读(1200) 评论(0) 推荐(0)
摘要:背景 操作系统切换为Deepin以后,因为没有windows,各家的云笔记产品,几乎对Linux都没有很好的支持。 印象笔记,没有linux版本,web版本不支持markdown 为知笔记,需要收费,60元/一年,linux客户端的markdown支持不算优秀 有道云笔记,deepin应用商店有网页 阅读全文
posted @ 2020-08-10 09:35 Ging 阅读(1140) 评论(0) 推荐(0)
摘要:MySQL内存结构-缓冲区 MySQL的缓冲区中有数据页,索引页,插入缓冲等等,这个角度是从页的功能来分类的。本小节从另一个视角关注这些页,如果从 是否被修改过(和磁盘不一致) 这个角度来区分这些页,那么页可以被分为干净的页和脏页。 干净页:内存中的数据和磁盘一致 脏页:内存中的数据和磁盘不一致 本 阅读全文
posted @ 2020-08-10 09:33 Ging 阅读(2470) 评论(0) 推荐(1)
摘要:前言 在上一讲网络编程-关闭连接(2)-Java的NIO在关闭socket时,究竟用了哪个系统调用函数?中,我们做了个实验,研究了java nio的close函数究竟调用了哪个系统调用,答案是close,但在真实的测试代码中,其实我犯了一个小错误,在close之后并没有return,所以在测试clo 阅读全文
posted @ 2020-08-10 09:31 Ging 阅读(2121) 评论(0) 推荐(0)
摘要:背景 许多小伙伴做网络编程时,会自然而然的去做应用层的心跳检测机制,如果问为什么要做心跳检测,大部分人会说保活,及时发现连接失效等等。这篇文章会结合TCP协议原理来分析,使用应用层做心跳检测的原因和必要性。 没有应用层心跳检测时 在没有应用层心跳检测时,我们如何发现对端应用程序崩溃/对端主机崩溃/主 阅读全文
posted @ 2020-08-10 09:30 Ging 阅读(1122) 评论(0) 推荐(0)
摘要:背景 在上一讲网络编程-关闭连接-C/C++相关系统调用中,提到过,目前项目使用Netty框架来实现的网络编程,查看netty源码可以得知,netty最终是调用了java Nio的close接口做的关闭操作,那么想研究清楚这个close操作究竟做了什么,可以从两个方向入手,这两个方向也是从下至上的。 阅读全文
posted @ 2020-08-10 09:28 Ging 阅读(510) 评论(0) 推荐(0)
摘要:优化器生成最优执行计划需要考虑的因素 MySQL有一个优化器,专门负责生成最优的查询计划,生成最优查询计划可能考虑的因素有: 扫描行数 是否排序 是否需要回表 是否需要临时表 等等 在不同的因素作用下,生成的查询计划可能和我们预想的不同。 具体实例 实验前 先准备好表 CREATE TABLE `t 阅读全文
posted @ 2020-08-10 09:27 Ging 阅读(154) 评论(0) 推荐(0)
摘要:背景 在linux网络编程中,经常需要编写关闭socket的代码,比如心跳检测失败需要关闭重连;网络报异常需要关闭重连。但究竟关闭操作做了什么,却不太清楚。目前项目使用Netty框架来实现的网络编程,查看netty源码可以得知,netty最终是调用了java Nio的close接口做的关闭操作,那么 阅读全文
posted @ 2020-08-10 09:25 Ging 阅读(649) 评论(0) 推荐(0)
摘要:Change Buffer的处理过程 对非唯一的普通索引的新增或更新操作,如果索引B+树的需要新增或更新的数据页不在内存中,则直接更新change buffer,等到后面需要使用这个数据页(真正读到内存中来)的时候,再根据change buffer在内存中做merge合并操作。 Change Buf 阅读全文
posted @ 2020-08-10 09:24 Ging 阅读(1595) 评论(0) 推荐(1)
摘要:前言 上一篇文章MySQL-InnoDB行锁中,提到过一致性锁定读和一致性非锁定读,这篇文章会详细分析一下在事务中时,具体是如何实现一致性的。 一致性读原理 start transaction和begin语句,并不是立即开启一个事务,事务是在第一条读语句执行时才建立的。如果需要立即开启事务,可以使用 阅读全文
posted @ 2020-08-10 09:22 Ging 阅读(667) 评论(0) 推荐(0)
摘要:InnoDB的锁类型 InnoDB存储引擎支持行锁,锁类型有两种: 共享锁(S锁) 排他锁(X锁) S和S不互斥,其他均互斥。 除了这两种锁以外,innodb还支持一种锁,叫做意向锁。 那么什么是意向锁?为什么需要意向锁呢? 考虑这种情况: SessionA:已经持有表t某一行的X锁,需要对行进行更 阅读全文
posted @ 2020-08-10 09:21 Ging 阅读(238) 评论(0) 推荐(0)
摘要:前言 在Linux性能分析-平均负载中,提到过一种导致平均负载升高的情况,就是有大量进程或线程等待cpu调度。 为什么大量进程或者线程等待CPU调度会导致负载升高呢? 当大量进程或者线程等待调度时,cpu需要更加频繁的切换任务,在切换任务的过程中,需要保存上一个任务的context到内核中,并且恢复 阅读全文
posted @ 2020-08-10 09:20 Ging 阅读(299) 评论(0) 推荐(0)
摘要:全局锁 全局锁是锁住整个数据库实例,只能读,任何关于更新操作的语句都会阻塞。 全局锁的适用场景 针对数据库做全库的逻辑备份操作时,需要使用全局锁。 全局锁的影响: 如果在主库上做全局锁操作,业务基本停摆 如果在从库上做全局锁操作,备份期间从库不能更新主库同步过来的binlog,可能导致主从不一致 如 阅读全文
posted @ 2020-08-10 09:19 Ging 阅读(1264) 评论(0) 推荐(0)
摘要:平均负载的理解 一般系统变慢时,我们会使用top或uptime命令来查看下系统的负载情况 [root@localhost shell]# uptime 13:51:08 up 5 days, 21:50, 3 users, load average: 0.00, 0.02, 0.05 load av 阅读全文
posted @ 2020-08-10 09:18 Ging 阅读(234) 评论(0) 推荐(0)
摘要:索引的作用 索引有点像目录,目录就是为了提高查找效率的。数据库中存储着成千上万条数据,如果没有索引,查找数据会变得很漫长,所以索引的作用就是为了提高数据的查找效率的。 索引的模型分类 一般来说,索引有三种数据结构模型: hash模型 有序数组 树模型 hash模型 可以联想java中的HashMap 阅读全文
posted @ 2020-08-10 09:17 Ging 阅读(133) 评论(0) 推荐(0)
摘要:事务ACID的理解 引入事务的主要目的: 保证数据库从一个一致性状态切换为另一种一致性状态 所有修改要么都保存,要么都不保存 A 原子性 原子性关注单个事务的整体性,需要保证事务中的全部操作是一个单元,要么都成功,要么都失败。 C 一致性 一致性关注,事务开始和结束后,数据库的完整性约束没有被破坏。 阅读全文
posted @ 2020-08-10 09:16 Ging 阅读(143) 评论(0) 推荐(0)
摘要:背景 公司某一项业务需要管理多种类硬件,有一些硬件的管理功能没有实现前台展示,检测和硬件之间的网络连接状况需要通过ping每个ip地址来单独实现。在需要大规模调试网络的时候,每个硬件单独ping就显得效率太低,所以萌生了写一个ping脚本的想法,来实现运行脚本自动ping ip地址列表,并生成成功和 阅读全文
posted @ 2020-08-10 09:15 Ging 阅读(1202) 评论(0) 推荐(0)
摘要:redo log部分 为什么需要redo log? 简单的说,如果每次更新数据库的操作,都去更新磁盘的话,开销是很大的。通过引入redo log日志,其中记录了每次更新的操作明细,在系统不繁忙的时候,再更新到磁盘中,可以节省开销。 最新修改: redo log 最主要的作用就是用于数据库异常宕机的恢 阅读全文
posted @ 2020-08-10 09:13 Ging 阅读(190) 评论(0) 推荐(0)
摘要:mysql基础架构图 架构详解 连接器部分 整体功能 建立连接 维持管理连接 校验用户名密码,查询权限 最佳实践 不要在命令行客户端中明文输入密码 -p 中不要使用明文密码 修改权限,需要重新建立连接后才会生效 mysql在建立连接时会读取一次权限,以后都使用这个权限 查看所有连接命令:show p 阅读全文
posted @ 2020-08-10 09:11 Ging 阅读(253) 评论(0) 推荐(0)
摘要:前言 计算机操作系统部分的题目,是我根据Java Guide的面试突击版本V3.0再整理出来的,其中,我选择了一些比较重要的问题,并重新做出相应回答,并添加了一些比较重要的问题,希望对大家起到一定的帮助。 系列文章: 面试题-Java基础 面试题-Java集合 面试题-Java多线程基础、实现工具和 阅读全文
posted @ 2020-08-07 16:36 Ging 阅读(197) 评论(0) 推荐(0)
摘要:前言 计算机网络2-HTTP部分的题目,是我根据Java Guide的面试突击版本V3.0再整理出来的,其中,我选择了一些比较重要的问题,并重新做出相应回答,并添加了一些比较重要的问题,希望对大家起到一定的帮助。 系列文章: 面试题-Java基础 面试题-Java集合 面试题-Java多线程基础、实 阅读全文
posted @ 2020-08-06 17:37 Ging 阅读(368) 评论(0) 推荐(0)
摘要:前言 计算机网络部分的题目,是我根据Java Guide的面试突击版本V3.0再整理出来的,其中,我选择了一些比较重要的问题,并重新做出相应回答,并添加了一些比较重要的问题,希望对大家起到一定的帮助。 系列文章: 面试题-Java基础 面试题-Java集合 面试题-Java多线程基础、实现工具和可见 阅读全文
posted @ 2020-08-05 14:54 Ging 阅读(282) 评论(0) 推荐(0)
摘要:背景 公司的一个业务系统中有区域表,整个区域是一个树结构,为了方便根据某一父节点查询所有叶子节点,提供了一个额外的字段path,按照分隔符存储了从根节点到当前节点的总路径。 表结构如下: create table t_area ( area_id varchar(32) not null comme 阅读全文
posted @ 2020-08-04 16:24 Ging 阅读(3956) 评论(0) 推荐(0)
摘要:前言 Java虚拟机部分的题目,是我根据Java Guide的面试突击版本V3.0再整理出来的,其中,我选择了一些比较重要的问题,并重新做出相应回答,并添加了一些比较重要的问题,希望对大家起到一定的帮助。 系列文章: 面试题-Java基础 面试题-Java集合 面试题-Java多线程基础、实现工具和 阅读全文
posted @ 2020-08-03 21:19 Ging 阅读(396) 评论(0) 推荐(0)

点击右上角即可分享
微信分享提示