- 博客(204)
- 资源 (30)
- 收藏
- 关注
原创 java程序员的NodeJS初识篇
摘要作为一个一直用java来写后端的程序员用NodeJS来写后台,实在不是很爽。这里记下这两个月的NodeJS学习所遇之坑,与java转NodeJS的同仁共勉。学习时间不长,若有理解错误,望指正。一.JS基本exports,module.exportsexports 就是module.exports的引用在module 被计算之前,会将module.exports的值赋给exports当mod
2017-02-28 21:47:33 3636
原创 Cassandra与Mongo的事务实现之分布式协议
摘要NoSql不同于关系型数据库,是分布式存储,因此想要实现关系型数据库中的事务就不是那么简单了。本文结合Cassandra中的paxos和Mongo的two phase commit来谈谈Nosql如何利用分布式协议来实现事务的。CassandraCassandra的paxos机制在这篇译文中已有详细解释了。 下面时序图方便理解。 注意acceptor节点数量由replicate factor
2017-02-22 21:59:29 2585
翻译 Cassandra如何利用线性一致性来实现轻量级的事务
分布式数据库会面临着一个独特的挑战,就是数据必须要严格的按照读,写顺序执行。如创建用户,转账,两个潜在的写操作竞态条件必须要确保一个写操作必须在另外一个之前发生。在Cassandra中,使用Paxos协议来实现轻量级的事务来处理并发操作。Paxos协议是用来实现线性一致性,这是实时约束的顺序一致性。线性一致性保证事务的隔离性类似于RDBMS提供的串行level的隔离性。这种类型的事务就是众所周知的c
2017-02-21 22:04:44 2778
翻译 Cassandra事务与关系型数据库事务有何区别
Cassandra不会使用回滚和锁机制来实现关系型数据的ACID事务,相比较于提供原子性,隔离性和持久化,Cassandra提供最终(可调节的)一致性,让用户决定为每个事务提供强一致性或者最终一致性。作为非关系型数据库,Cassandra不支持join或者外键,因此Cassandra不提供ACID层面的一致性。例如,当从账户A转账给账户B,整个账户总额不应该改变。Cassandra支持row-lev
2017-02-20 22:06:42 4670
原创 cassandra vs mongo (1)存储引擎
摘要在MongoDB 初识篇中谈到过Mongo 与 Cassandra的区别,这边再谈谈Mongo与Cassandra的存储引擎差别概括存储引擎: 类型 功能 应用 hash 增删改、随机读、顺序扫描 Key-Value存储系统 B-Tree 增删改、随机读、顺序扫描 关系型数据库 LSM 增删改、随机读、顺序扫描 分布式存储系统,如cassandra、
2017-02-14 21:22:11 5294
翻译 cassandra 3.x官方文档(7)---内部原理之如何读写数据
写在前面cassandra3.x官方文档的非官方翻译。翻译内容水平全依赖本人英文水平和对cassandra的理解。所以强烈建议阅读英文版cassandra 3.x 官方文档。此文档一半是翻译,一半是个人对cassandra的认知。尽量将我的理解通过引用的方式标注,以示区别。另外文档翻译是项长期并有挑战的工作,如果你愿意加入cassandra git book,可以发信给我。当然你也可以加入我们的QQ
2017-02-12 21:24:01 11461 3
翻译 cassandra 3.x官方文档(6)---内部原理之存储引擎
写在前面cassandra3.x官方文档的非官方翻译。翻译内容水平全依赖本人英文水平和对cassandra的理解。所以强烈建议阅读英文版cassandra 3.x 官方文档。此文档一半是翻译,一半是个人对cassandra的认知。尽量将我的理解通过引用的方式标注,以示区别。另外文档翻译是项长期并有挑战的工作,如果你愿意加入cassandra git book,可以发信给我。当然你也可以加入我们的QQ
2017-01-15 10:40:35 1702
原创 cassandra 3.x官方文档(5)---探测器
写在前面cassandra3.x官方文档的非官方翻译。翻译内容水平全依赖本人英文水平和对cassandra的理解。所以强烈建议阅读英文版cassandra 3.x 官方文档。此文档一半是翻译,一半是个人对cassandra的认知。尽量将我的理解通过引用的方式标注,以示区别。另外文档翻译是项长期并有挑战的工作,如果你愿意加入cassandra git book,可以发信给我。当然你也可以加入我们的QQ
2017-01-10 22:17:57 1835
原创 2016年的不正式总结
摘要上一次写个人年终总结还是2014年1月1日,写的2013年的总结。距今天已三年了,那时候的总结还是写在QQ空间里。之后的三年里面再也没有去总结了,早上醒来,玩完手机,不知为何想简单写点,因为今天是2016的最后一天,就权且起个题目叫做2016的总结吧。闲聊技术从2013年实习开始用到的python,c++到毕业后第一个项目的c#,再到java,一直在语言学习中摸爬滚打。期间虽有很多痛苦,却也蛮多
2016-12-31 14:13:25 2743 10
原创 Mongo Index
摘要mongo 的索引非常强大,和关系型数据库索引没什么区别。这里主要介绍mongo索引基本知识和mongo本人在索引上的犯的错。索引种类单字段索引复合索引 复合索引各个字段的顺序应该是精确匹配字段(=xxx),排序字段(避免在内存中排序,使用index排序),范围查询字段如db.book.find({company: ‘xxx’, age:{$lt:30}).sort(...
2016-12-12 22:19:27 2609
翻译 cassandra 3.x官方文档(4)---分区器
写在前面 cassandra3.x官方文档的非官方翻译。翻译内容水平全依赖本人英文水平和对cassandra的理解。所以强烈建议阅读英文版cassandra 3.x 官方文档。此文档一半是翻译,一半是个人对cassandra的认知。尽量将我的理解通过引用的方式标注,以示区别。另外文档翻译是项长期并有挑战的工作,如果你愿意加入cassandra git book,可以发信给我。当然你也可以加入我们的
2016-12-11 16:46:05 2201
翻译 cassandra 3.x官方文档(3)---gossip通信协议及故障检测与恢复
写在前面 cassandra3.x官方文档的非官方翻译。翻译内容水平全依赖本人英文水平和对cassandra的理解。所以强烈建议阅读英文版cassandra 3.x 官方文档。此文档一半是翻译,一半是个人对cassandra的认知。尽量将我的理解通过引用的方式标注,以示区别。另外文档翻译是项长期并有挑战的工作,如果你愿意加入cassandra git book,可以发信给我。当然你也可以加入我们的
2016-12-04 19:28:28 2354
原创 mongo 读分析
分布式读读冲突 分布式中数据库有多份数据,各份数据可能存在不一致性。 mongo 只会写到primary节点上,理论上来说不会有文档冲突,也就是说数据库中的数据都以primary节点为标准。但是有种情况,一个主节点的数据还没有全部replicate 到secondary 节点,它down 了,这部分数据就有不一致性了,当它重新上线后变成了一个secondary 节点,就会有冲突了。需要将之前的这
2016-12-03 17:31:12 1887
原创 mongo 写分析
写操作复制集mongo所有的节点都是写入到primary节点,同时写入oplog,secondary 节点会持续的从primary节点上复制oplog的信息,然后根据oplog写数据。secondary 节点的复制oplog,写数据是一个异步的过程.oplog 是一个capped collection(固定大小的集合,超过最大值后自动覆盖老的值),记录对数据库的更改操作。oplog大小默认是disk
2016-11-27 17:05:47 1631
翻译 cassandra 3.x官方文档(2)---架构解析
写在前面 cassandra3.x官方文档的非官方翻译。翻译内容水平全依赖本人英文水平和对cassandra的理解。所以强烈建议阅读英文版cassandra 3.x 官方文档。此文档一半是翻译,一半是个人对cassandra的认知。尽量将我的理解通过引用的方式标注,以示区别。另外文档翻译是项长期并有挑战的工作,如果你愿意加入cassandra git book,可以发信给我。当然你也可以加入我们的
2016-11-25 13:03:38 2403 1
翻译 Cassandra 3.x官方文档(1)---关于Cassandra
写在前面 cassandra3.x官方文档的非官方翻译。翻译内容水平全依赖本人英文水平和对cassandra的理解。所以强烈建议阅读英文版cassandra 3.x 官方文档。此文档一半是翻译,一半是个人对cassandra的认知。尽量将我的理解通过引用的方式标注,以示区别。另外文档翻译是项长期并有挑战的工作,如果你愿意加入cassandra git book,可以发信给我。当然你也可以加入我们的
2016-11-19 13:10:06 3582
原创 mongo 存储过程
摘要本文主要介绍mongo存储过程,mongo 存储过程其实就是JS方法,然后通过eval 方法来执行,但是这个方法在3.0 depreate了,也就是在未来的版本,这个功能可能不提供了。从目前的jira的issue来看,mongo官方还没有打算提供了eval的替代。介绍mongo 存储过程其实就是在database 端存储js 方法db.system.js.save({ _id:"add"
2016-11-16 21:52:06 2409
原创 Mongo 整体架构介绍(1)-------分片集群
摘要在mongo初识文中介绍了mongo与cassandra的主要区别,以及mongo物理部署架构图。本文接着上一篇的mongo 架构图,来继续讲分片集群。分片介绍shard keymongo 默认配置是不分片的,需要自行enable.mongo 根据shard key来对数据进行分片。有三种分片方式range 根据范围来分片,比如1-10到shardA,11-20 shardB,以此类推h
2016-11-05 21:08:01 2169 2
原创 Mongo DB 初识
前言2016年伊始,开始研究NoSql.看了couchdb,cloudant,cassandra,redis.却一直没有看过排行榜第一的mongo,实属不该。近期会花时间研究下mongo。本文是初识mongo的体验。有错误之处,还望指正。Mongo VS cassandra目前NoSql 排行版前三是Mongo,Cassandra,Redis.Redis 特点明确,key-value 形式,数据不持
2016-10-23 15:53:08 2799
原创 Cassandra Secondary Index 介绍
摘要本文主要介绍cassandra中的索引,物化视图,有些知识点需要对cassandra有基本的认识才能理解。比如数据在cassandra节点中如何分布。如果有不明白的地方可以看本专栏之前文章。或者发送邮件和我探讨 cnstonefang@gmail.com。为什么叫secondary indexCREATE TABLE user( id bigint, name
2016-10-04 13:00:24 5917
原创 Spring Boot 中应用Spring data mongdb
摘要本文主要简单介绍下如何在Spring Boot 项目中使用Spring data mongdb.没有深入探究,仅供入门参考。 文末有代码链接准备安装mongodb 需要连接mongodb,所以需要提前安装mongodb.在本地安装安装文档见官网 install mongodb安装完mongodb后配置环境变量。创建目录“C:\data\db”作为mongo 数据存储的默认文件 注意本篇文章
2016-09-10 12:48:45 1325
原创 JDK 源码学习——ByteBuffer
ByteBuffer 在NIO的作用Java SE4 开始引入Java NIO,相比较于老的IO,更加依赖底层实现。引入通道(Channels),选择器(selector),缓冲(Buffers).都更加接近操作系统执行I/O的方式.所以速度更快。NIO 是非阻塞IO,非阻塞IO的实现是基于事件的,选择器定义了一个IO通道,程序继续运行。选择器上发生事件时,会唤醒选择器并执行相应动作。IO...
2016-08-07 13:33:50 2166
原创 Cassandra User 问题汇总(1)------------repair
Cassandra Repair 问题问1:文档建议每周或者每月跑一次full repair.那么如果我是使用partition rangerepair,是否还有必要在cluster的每个节点上定期跑full repair ?答1:为什么要定期跑full repair一般在gc_grace_seconds 间隔时间内跑repair - 确保集群的数据保持一致。通常节点的write consiste
2016-07-23 18:30:40 5423
原创 gradle 入门介绍
gradle ????Groovy??????????,?maven????????????xml?????script????gradle ???????build.gradle ????,build.gradle ????maven?pom.xmlbuildscript { repositories { mavenCentral() maven {
2016-07-22 17:40:26 1832
原创 从Stage角度看cassandra write
声明文章发布于CSDNcassandra concurrent 具体实现cassandra并发技术文中介绍了java的concurrent实现,这里介绍cassandra如何基于java实现cassandra并发包。Figure1——cassandra并发实现 cassandra各个Stage是通过StageManger来进行管理的,StageManager 有个内部类ExecuteOnlyExec
2016-07-10 14:48:58 4997
原创 cassandra 并发技术介绍
摘要本文主要介绍cassandra线程技术,cassandra的实现是基于java的,所以线程技术使用的也是jdk包提供的线程类。cassandra是分布式数据库,整个并发架构是基于阶段事件驱动架构(staged envent-driven architecture)它能够利用queue将复杂的事件驱动分解为各个阶段。一.java并发Executor 框架 http://docs...
2016-07-02 09:48:06 12734
原创 cassandra 概述
摘要本篇文章主要是介绍cassandra与其他NoSQL的区别以及自身的特点与应用场景。在关系数据库我们没必要选择数据库,通常需要适配oracle/mysql/sql server/db2 等多种数据库。但是今天的NoSQL 还不够成熟,以及每一款的NoSQL 数据库应用领域不是很宽泛,设计理念也有很大差异,所以通常我们需要为我们的应用评估究竟哪款NoSQL数据库比较合适。个人认为各个NoSQL数据
2016-06-25 15:58:21 4662
原创 cassandra 常见问题
摘要本文主要介绍在部署cassandra集群以及使用cassandra过程中遇到的一些问题。文章只发布在CSDN 和个人站点更多nosql文章可以访问stone fang 个人主页 正文Q1:cassandra 如何将一个节点设置为seed node,seed node与其他node有什么区别A1:设置seed node很简单,在cassandra.yaml 中 -s
2016-06-18 14:08:59 10160 1
原创 docker 部署cassandra
摘要本文主要介绍在redhat7 平台,利用docker 部署cassandra 集群,除了介绍基本的部署步骤,另外主要 讨论类似于cassandra 这种分布式集群系统部署 docker如何进行网络配置的问题文章只发布在CSDN与个人站点,其余站点均属盗版侵权 更多cassandra知识请访问 web 个人开发者安装docker最简单的方法,利用已有的脚本curl -fsSL https://
2016-06-15 19:25:39 7874
原创 cassandra 监控方案评估
摘要最开始做cassandra monitor 方案的选型时,主要是从cassandra 本身入手,后来发现cassandra运行在JVM上,所有的metrics都是通过JMX 暴露出来。所以又可以使用一些通用的Java Application 的监控方案,作者 在调查了很多的实现方案后,最终将范围缩小在graphite,newrelic,opscenter三种解决方案。本文只给出各自的优劣势,具
2016-05-31 21:25:04 4006
原创 cassandra eclipse 环境构建
摘要本文主要介绍如何在eclipse中搭建cassandra环境更多cassandra,nosql 相关知识请访问http://www.webpersonaldeveloper.cn 正文1.fork cassandra 代码 然后clone 到本地(cassandra-trunk 是head 分支)git clone https://github.com/FS1360472174/cassan
2016-05-25 19:28:24 2543
原创 redhat7 上安装dummynet
更多请访问 http://www.webpersonaldeveloper.cn摘要:在redhat 上部署dummynet 需要将ipfw 编译为内核模块,而ipfw需要调用linux kernel的一些函数。 linux kernel版本在不断提升,相关的数据结构也在变化。所以可能需要根据你要部署的系统内核版本,来调整参数提醒如果你要部署在Redhat6,CentOS6等内核版本比较低的平台,
2016-05-07 22:03:58 5386
原创 cassandra 如何写数据以及放置副本
application发送数据到server application 发送请求到server根据设置的load balance 规则从cluster中挑选一个coordinator,一般使用轮询即可。cluster 中的cassandra node 不仅作为数据库的储存节点,同样作为request 请求处理的server。所以保证每个节点处理的request 一样的balance算法即可然后根据
2016-04-17 18:33:42 3806
原创 Eclipse中设置VM参数
eclipse.ini-Xms256m //设置堆最小值-Xmx1024m //设置堆最大值Eclipse做JVM 的分析时,需要动态设置JVM的参数来进行各种测试,可以在下图地方进行设置JVM Parameter Settinghttp://www.oracle.com/technetwork/java/javase/tech/vm
2016-04-13 22:00:18 18522
原创 VNC 登录上去灰屏,没有shell脚本,鼠标变成X
CenterOS 1.安装vncserveryum instll tigervnc-server -y2.vncpasswd设置pwd3./etc/sysconfig/vncserversVNCSERVER ="1:root"VNCSERVERARGS[1]:"-geometry 800x600"4./root/.vnc/xstartup 采用默认的配置。
2016-03-03 19:45:07 7746
原创 Anakia 转换xml文档为其他格式
一.简介 Anakia 使用JDOM 和Velocity将XML文档转换为特定格式的文档二.解析xml文档方法1.DOMjava jdk,xml-api.jar 需要加载整个xml文档来构建层次结构2.SAX(Simple API for XML)基于事件模型,不需要读取整个xml文档3.JDOM(Java-based Document Object Model)本身不包含解析器,通常使用SAX
2016-01-05 18:23:28 1212
原创 introduction of velocity
introduction of velocity一.velocity 简介基于java 的模板引擎,apache 旗下的开源软件项目。 目的在于隔离 表示层和业务逻辑层,当然现在做的不仅仅是这些。二.应用场景web 应用程序:创建html页面,页面的动态信息有velocity框架来处理 意味着可以不使用JSP等动态语言源代码生成:基于模板生成java,sql源代码email 生成:将邮件模
2016-01-04 13:55:04 794
原创 struts1.x mvc简单例程
因为项目需要,需要使用struts1.x 。因此学习下struts框架。 例程从struts 实现MVC框架入手,完成一次request请求。 一.前台 两个jsp文件 index.jsp: 只有一个button按钮,发送request请求<%@ page language="java" contentType="text/html; charset=UTF-8" pageEnco
2015-10-20 19:00:48 772
原创 window.open 打开子窗口,关闭所有的子窗口
需求:通过window.open方法打开了子窗口,当关闭主窗口时,子窗口应当也关闭。 实现思路: 1.打开子窗口函数window.open(url,winName)的第二个参数winName可以唯一标识打开的窗口。因此关闭子窗口只需要使用winName.close()函数即可。 2.一个页面可能有多个子窗口。因此需要一个数组存储所有子窗口对象。关闭时,遍历数组即可。 3.子窗口还可以再打开子
2015-08-02 15:21:02 4231
原创 JqGrid 显示表格
JqGrid 是前台的表格显示库,使用起来相当方便。 这里分享下本人使用过程中遇到的问题及解决方案 **一.rowNum属性** 1.如果不设置,默认显示数是20,也就是说超过20以后的数据。不再显示出来。初次使用JqGrid的经常忽视此属性,导致后期显示出现问题2.-1 rowNum=-1时忽略显示行最大值的检查。一劳永逸。怎么样数据都可以显示出来。但是本人在使用过程中发现设置rowNum
2015-06-10 09:02:18 3204
红外智能交通劝导系统
2013-03-31
基于msp430的点光源跟踪系统源码
2012-07-23
基于S3C6410 linux下无线模块之wifi驱动程序源码
2012-06-23
基于s3c6410的linux无线模块之wifi的驱动程序源码
2012-06-23
基于linux下串口通信例程(按键驱动)
2012-06-19
linux下串口通信例程(按键控制)
2012-06-19
web开发基础课件和实例
2011-11-14
C语言经典习题及上机指导
2011-09-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人