- 浏览: 1053464 次
- 性别:
- 来自: 广州
最新评论
-
wenson:
lzjzy520 写道 求 项目完整元代码已经够清楚了,看不懂 ...
使用Spring JavaMail发送邮件总结 -
lzjzy520:
求 项目完整元代码
使用Spring JavaMail发送邮件总结 -
xiejx618:
能提高多大的性能? 不能用数据来说话吧希望你能用jmeter做 ...
利用APR本地库提高Tomcat性能 -
mrwalter:
学习了,挺好用的,局域网内速度很快
ssh远程文件传输命令scp -
wcily123:
不错
ssh远程文件传输命令scp
文章列表
前言
在发生故障切换后,经常遇到的问题就是同步报错,数据库很小的时候,dump完再导入很简单就处理好了,但线上的数据库都150G-200G,
如果用单纯的这种方法,成本太高,故经过一段时间的摸索,总结了几种处理方法。
生产环境架构图
目前现网的架构,保存着两份数据,通过异步复制做的高可用集群,两台机器提供对外服务。在发生故障时,切换到slave上,并将其变成
master,坏掉的机器反向同步新的master,在处理故障时,遇到最多的就是主从报错。下面是我收录下来的报错信息。
常见错误
最常见的3种情况
这3种情况是在HA切换时,由于是异步复制,且sync_binlog ...
MySQL的Replication是一种多个MySQL的数据库做主从同步的方案,特点是异步,广泛用在各种对MySQL有更高性能,更高可靠性要求的场合。与之对应的另一个技术是同步的MySQL Cluster,但因为比较复杂,使用者较少。 下图是MySQL官方给出了使用Replication的场景:
Replication原理 Mysql 的 Replication 是一个异步的复制过程,从一个MySQL节点(称之为Master)复制到另一个MySQL节点(称之Slave)。在 Master 与 Slave 之间的实现整个复制过程主要由三
child_process是Node.js的一个十分重要的模块,通过它可以实现创建多进程,以利用多核计算资源。
Node.js 0.8的child_process模块提供了四个创建子进程的函数,分别是spawn,exec,execFile和fork。其中spawn是最原始的创建子进程的函数,其他三个都是对spawn不同程度的封装。spawn只能运行指定的程序,参数需要在列表中给出,相当于
本文由网上资料及自己实践整理。
什么是Docker?
docker的英文本意是码头工人,也就是搬运工,这种搬运工搬运的是集装箱(Container),集装箱里面装的可不是商品货物,而是任意类型的App,Docker把App(叫Payload)装在Container内,通过Linux Container技术的包装将App变成一种标准化的、可移植的、自管理的组件,这种组件可以在你的latop上开发、调试、运行,最终非常方便和一致地运行在production环境下。
Docker的核心底层技术是LXC(Linux Container),Docker在其上面加了薄薄的一层,添加了许多有用 ...
先说说目前现状:
开发语言为java,数据库为mysql,大部分主要的表使用的是innodb引擎,数据库总大小为13G,最大的表member表大小为2G(有接近1000万条记录),另外有几个表的数据也都达到了几百万记录,甚至有1600多万记录的,不过这些表大小都只有几百MB,最大不超过1G,数据库已经运行了五年多,目前每天的数据增量大小在20MB左右;
需求:
1、查询统计每天每个年龄段的不同性别注册人数(如16-20岁的男会员注册数每天多少,女会员数多少,一共定义了8个年龄段);查询统计每个地区的注册会员数;
2、查询统计每天每小时每个年龄段的注册人数(登录人数、登录次数);
查询 ...
关于MySQL 查询表数据大小的总结
- 博客分类:
- Database
一:关于mysql表数据大小
我们知道mysql存储数据文件一般使用表空间存储 当mysql使用innodb存储引擎的时候,mysql使用表存储数据分为共享表空间和独享表空间两种方式 ·共享表空间:Innodb的所有数据保存在一个单独的表空间里面,而这个表空间可以由很多个文件组成,一个表可以跨多个文件存在。 所以其大小限制不再是文件大小的限制,而是其自身的限制 -->innodb官方显示表空间的最大限制为64TB ·独享表空间:每个表的数据以一个单独的文件来存放,这个时候的单表限制,又变成文件系统的大小限制了 在默认情况下,MySQL创建的MyISAM表允许的最大尺寸为 ...
在macosx下编译java文件,如果里面有中文输出,在terminal里会出现中文乱码。
以下为解决方案:
打开terminal,执行一下命令
vi ~/.bash_profile
输入:export JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF-8
:wq保存退出
source ~/.bash_profile //立即生效
from:http://web.securityinnovation.com/appsec-weekly/blog/bid/72451/Define-a-Security-Policy
Applies to
Applications written using Servlets or JSP.
What to Do
Define a security policy for your application while applying the principle of least privilege. Restrict application execution to allow on ...
Groovy文件操作
- 博客分类:
- Groovy/Grails
To see the OS-dependent characters used for formatting filenames (here, when running on Windows):
assert File.separator == '\\' && File.separatorChar == '\\' as char
//used for formatting file names
assert File.pathSeparator == ';' && File.pathSeparatorChar == ';' as c ...
Ant真是太方便了,以前都没注意到它。功能很强大,能创建数据库,配置服务器,部署发布应用……只需要写好build.xml文件,剩下的就交给ant来“安装”你的WEB应用了。Appfuse的第一个ant命令是ant new,其任务是建立一个新命名的project,少不了会复制很多文件。build.xml中也有很多copy操作,为了搞清楚ant new到底干了些什么事,还是先把copy操作了解一下。看了会ant的DOCS,网上也找了些文章,发现copy这部分都是一带而过,讲得很浅,于是我就只有自己实验下,发现还有点收获。 ant版本为1.6.5。1. 拷贝单个文件到指定目录下。例:<copy ...
Javascript中call的使用
- 博客分类:
- Javascript
Javascript中call的使用自己感觉蛮纠结的,根据文档很好理解,其实很难确定你是否真正的理解。
call 方法应用于:Function 对象调用一个对象的一个方法,以另一个对象替换当前对象。call([thisObj[,arg1[, arg2[, [,.argN]]]]])参数:thisO ...
在Win7 64下安装node的jquery,依赖jsdom,jsdom又依赖于contextify,而contextify又需要gyp来重新编译,安装过程中老是报错,所以放弃这种安装方式,直接找了一个win64下的二进制包:
https://github.com/yuxiachai/nodeWinBinary
拷贝到node_modules下直接使用。
使用NodeJS的Path对象进行路径操作
- 博客分类:
- nodejs
NodeJS中的Path对象,用于处理目录的对象,提高开发效率。 用NodeJS的Path命令,与使用Linux下的shell脚本命令相似。 引入path对象
Js代码
var path = require('path');
比较实用的方法: 格式化路径 path.normalize(p) 特点:将不符合规范的路径格式化,简化开发人员中处理各种复杂的路径判断 示例:
node.js 文件操作
- 博客分类:
- nodejs
既然到了后台,只要你有权限就可以为所欲为了!
创建文件夹
//fs.js
var fs = require('fs');
fs.mkdirSync('a', 0755);
fs.mkdirSync('a/b', 0755);
fs.mkdirSync('a/b/c', 0755);
那么它会在fs.js所在目录中创建一个a目录,a目录下再创建b目录,b目录下创建c目录。mkdirSync是一个同步方法,拥有三个参数,第一个是路径,第二个是目录权限,第三个是回调
但这样做有点不妥,如果指定目录已存在,就报错。如果要建立多级目录,一层层判定此目录是否存在,立即会陷入“回调地 ...
nodejs删除文件或文件夹
- 博客分类:
- nodejs
删除文件——
fs.unlink(path[,callback])或者fs.unlinkSync(path)
删除文件夹——
方法1:使用递归
deleteFolderRecursive = function(path) {
var files = [];
if( fs.existsSync(path) ) {
files = fs.readdirSync(path);
files.forEach(function(file,index){
var curPath = path + " ...