关闭

ZipInputStream和RSA算法的纠葛

背景以前有一篇文章介绍过系统升级操作的实现流程:通过上传zip压缩包、并通过RMI方式调用另一个Java程序执行upgrade.sh脚本完成的。其中有一个系统版本信息校验的逻辑,版本信息是一段xml信息经过RSA算法加密,直接打包到zip文件中。系统升级操作,首先对zip文件中的版本描述信息进行解密。存在一个诡异的问题,只有我本机的360压缩工具生成的zip文件,直接密文并解密才不会出错,而winR...
阅读(3557) 评论(3)

文档和配置管理基础

背景项目开发过程中使用SVN作为协同开发工具,那么SVN的作用是什么呢?为什么要使用SVN呢?应用项目管理领域的知识来解释的话,SVN对应着变更控制,而且是基于配置库的变更控制。本文将整理信息系统文档和配置管理相关的知识,以及SVN版本控制的重要性。文档分类信息系统相关的文档是指具有某种数据媒体和其他记录的数据,它具有永久性,包括纸质文档和电子文档。软件文档分为三类:开发文档,产品文档,管理文档。...
阅读(231) 评论(0)

MySQL索引知识整理

背景TokuDB引擎表按小时生成,每小时的数据量为1亿条左右,在TokuDB高压缩比下,每张表的数据文件大小为10G左右,原始数据100多G,大数据量下查询该怎么办呢,所以进行了TokuDB索引测试。由于之前没有详细了解过各种索引创建语句的区别,只是用百度来的索引创建语句简单测试了一下,可以创建,于是就写入测试脚本中了。测试结果表明,不同的索引创建方式下,查询效率差距甚大,看来了解索引基础知识,还是...
阅读(188) 评论(0)

dbutils工具包分析及应用

背景项目开发过程中,需要更换数据库,DAO层抽象了一个顶层的父类,以此类着手重写一整套操作,可以将换库工作量降低到最少。那么工作量就落在了解决ORM映射问题上,原来使用的BSONObject工具包,直接完成Java对象到JSON对象的转换。现在需要利用原始的JDBC、重写一套ORM映射机制。百度到了dbutils这个工具包,在熟悉了基本的使用方法之后,确定它能满足基本的功能。又用杯具打开它的jar包...
阅读(393) 评论(0)

大流量场景下统计问题整理

前言这是一个沉重的话题,早上上班路上,在一个路口拐弯时,恰逢一辆殡葬车驶过。那肃穆的黑色,唤起了我那被忙碌生活掩盖、进而快忘却了的人生命题,生命终点的问题。因此,今天始终盘亘于我大脑的一句话是:人生苦短,汝当惜之。电视剧《恰同学少年》中,给我印象最深的就是杨昌济先生晨读之前大声朗读的两句话: “杨昌济,时光易逝,汝当惜之;先贤至理,汝当常忆。” 人生苦短,汝当惜之。向圣贤学习,时常警惕、自审,整...
阅读(177) 评论(2)

TokuDB配置目录参数——脚本实现

背景上一节已经完成了TokuDB数据库引擎的配置过程,回顾一下操作: 1 停掉mysql服务 2 目录创建 3 文件移动 4 修改/etc/my.cnf配置文件 5 重启mysql 系列的操作,还是挺多的,可以脚本化来完成,今天就完成了这样一个脚本,以简化MySQL的配置操作。脚本编写按照手动操作的流程,编写脚本,先备份my.cnf后向其中写入标准的配置。需要注意的...
阅读(181) 评论(0)

TokuDB配置目录参数

背景TokuDB数据库调优,网上搜到几个调优参数,官网推荐将TokuDB的数据目录和MySQL的数据目录分开。所以本文记录一下TokuDB数据库配置修改的过程,就是这个简答的参数修改操作,捣鼓了两个下午,终于找到了问题根源,记录如下。TokuDB相关文件TokuDB相关的文件,默认存放路径为mysql的data目录/var/lib/mysql下,查看ll得到结果如下:关注红框部分的几个文件,默认情况...
阅读(267) 评论(0)

别放过不合理的结果,因为真的有bug

背景有一个统计每小时总量趋势的功能,统计结果包括两部分,一部分是折线图,显示 24小时各个小时的总量信息,还有一部分是一整天的总量topN的信息,这两部分信息是由定时任务一起统计并存储在一个数据结构中的。问题测试部同事反馈页面显示的图表有问题,TopN总量有数据,但是24小时趋势图上却没有数据。错误页面截图如下:(折线图是平的,但是底部的TopN有数据)首先,统计结果存储的的数据结构是这样的:pu...
阅读(132) 评论(0)

TokuDB命令之tokuftdump

背景近日急需熟悉TokuDB这个引擎,搜到一篇关于TokuDB黑科技的文章(原文链接:https://yq.aliyun.com/articles/6376?spm=5176.100239.blogcont34818.8.VLac8i)于是验证该文章的内容,以期有所获。toduftdump命令 此工具用来dump一个Fractal-Tree结构的数据文件 这一行话很重要,说明我们首先要找到一个F...
阅读(179) 评论(0)

TokuDB引擎安装详解

背景项目目前使用的Sequoiadb数据库,撑不住每小时千万的数据量了,所以领导安排研究TokuDB,捣鼓一天的安装过程,记录一下。CentOS上安装Percona Mysql的流程,根据官网的安装步骤,整理得到本文,操作够多的,真佩服自己的耐心,内容有点多,官网操作不够不完整而且有部分不一致,着实费了一番功夫。Percona MySQL安装1 安装Percona MySQL的仓库 yum in...
阅读(454) 评论(0)

简单问题-Sequoiadb数据库脚本批量删除数据

背景开发中使用的是巨杉数据库,有一个日志集合是按天存储的,即表集合名称规则一致MyLogData_yyyyMMDD的格式,每天生成一张表。现在有一个问题就是服务器磁盘空间已经被撑满了,需要删掉一段时间的数据。由于涉及的类似结构的表有5张,手动一条条执行dropCL操作太麻烦。解决办法首先,sequoiadb数据库提供了执行js的工具脚本,可以将需要执行的一堆操作写入到一个脚本中,通过脚本来执行删除操...
阅读(488) 评论(0)

项目总结-Linux下批量删除无用文件

背景有一个功能,需要定期清理指定文件夹下指定日期的无用文件,文件的存储格式是目录/yyyyMMddHH/xx.txt,文件夹以小时命名的,现在要定期删除某些日期的文件。用java调用Shell命令的rm -rf 目录/日期*的方式总数不成功,初步判断正则表达式没有匹配成功,所以没有执行删除操作。解决办法编写一个Shell脚本文件来删除,参数传递需要删除的日期列表,然后循环拼接删除命令完成操作,如下S...
阅读(356) 评论(0)

架构启示录

背景2017年6月3日,本人参加了一个培训机构组织的架构分享大会,大会的主题是“一言以蔽之,十年架构之路汇成一句话”,八位一线专家现场畅谈对软件架构的理解和体会,剖析和分享架构实践过程中的难忘的问题。我这种井底之蛙,听完之后果犹如醐醍灌顶,眼界大开。 同行同事归程途中感慨以前工作都荒废了,需要学习补课了。我也是这样想的啊,说来也挺巧,最近也是开始反思个人能力水平,开始关注软件架构,正好单位...
阅读(401) 评论(0)

Linux下IP设置脚本实践

背景      一个java web项目有一个功能是IP修改,Linux的IP修改脚本如下: #!/bin/bash #useing parameter ip:netmask:gateway:dns1 #system version:centos6,7/redhat6,7 #read parameter ipaddr=`echo $1|cut -d ":" -f 1` netm...
阅读(191) 评论(0)

项目总结-html中毒导致Java mail发邮件失败

问题描述项目中有一个邮件发送的功能,时时监控服务器系统信息,并定时发邮件给系统管理员,邮件发送使用的是html邮件内容。但是最近一次部署后,所有发送邮件操作均没有后台异常,但是收件箱没有收到任何邮件。 排查过程最开始检查Linux服务器上的DNS设置,测试发现DNS配置没有问题,因为DNS配置错误,后台应该报异常,异常信息应该是无法解析smtp域名的主机。 写了一个小程序发送简单文本邮件,在Linu...
阅读(309) 评论(0)
43条 共3页1 2 3 下一页 尾页