- 浏览: 53260 次
- 性别:
- 来自: 上海
最新评论
文章列表
cassandra的java驱动有很多,这里使用datastax的驱动。在maven的pom.xml中加入依赖:
<dependency>
<groupId>com.datastax.cassandra</groupId>
<artifactId>cassandra-driver-core</artifactId>
<version>3.1.0</version>
</dependency>
1.连接cassandra集群(单机也是这样)
Cluster clu ...
最近两天,由于mongo驱动版本的问题,导致系统不兼容,填了几天坑,终于填完了,但是并没有熊根本上解决问题。后面决定要进行一次大重构,增加一个dao层,后台的mvc架构,以前觉得dao和service的很多工作重复,经过这个以后,才发现dao层确实很有必要,不过service和dao层的数据交换格式千万不要用mongo驱动自带的,mongo2.x以前用的是DBobject, 3.x以后又写了一个Document,当然3.x还是可以用Dbobject,并且也提供了转换为Document'的方法,但是这并不是官方的推荐形式,这只能怪mongo官方一开始没有确定好数据交换的类型,所以最好在 ...
在java里面,有时候我们可能需要对list集合中的对象的某个属性进行排序。这个问题就很简单了,Collections这个工具类提供了排序的方法,有两个重载方法,一个是只接受一个List集合,另一个是接受一个list和一个 Comparator接口。我这里以第二种为例讲解,后面在简单说明一下第一种,注意默认的顺序是升序排列。
在java api中可以看到 Comparator接口里面就一个方法,int compare(T o1, T o2),传入两个对象,关于返回值,有三种情况-1, 0, 1。-1表示o1小于o2,0表示o1等于o2,1表示o1大于o2。如果我们想要的就 ...
在国内cassandra感觉用的人不多,资料也比较少,一查全是hbase和mongodb等no sql的资料,比起国外,cassandra确实要活跃的多。说起来,cassandra集群部署非常简单,虽然比起elastic search和redis稍微麻烦一点点,但是比起hbase和mongodb 的集群部署,真是简单多了。
首先准备机器,我这里准备三台,192.168.1.100/101/102。用100作为seed机器。首先配置100上的cassandra。打开conf/cassandra.yaml。修改3个地方:
1.listen_address: 192.1 ...
最近在给公司做一个工具,实现rdf到知识图谱的导入。以前听过rdf,也稍微看过一点,不过看w3c那个文档实在是晦涩难懂,没有兴趣看下去,就没太在意,哪知道,最近老大要我开始接手这活了。
大概花了一周时间,看了以前数据结构的图,rdf、owl、语义网、知识图谱等概念,然后大概了解这些是做什么的。但是还是不是很清楚,上周开始写rdf解析,写的过程中发现看那些概念确实没什么用,可能是我个人的偏见吧。
个人感觉,rdf光看确实不知道是干嘛的,当具体去解析rdf文件的时候,理解的更深刻些。rdf试图使用三元组的形式描述互联网上的资源,用uri去指向这些资源,uri大家都知道 ...
cassandra是一个分布式的nosql,安装非常简单,这里以windows安装为例。
1.准备
jdk1.8+
apache-cassandra-3.5
2.安装jdk
需要配置一个环境变量JAVA_HOME指向jdk安装目录。比如:JAVA_HOME=F:\Java8\jdk1.8.0_101
3.安装cassandra
解压zip压缩包,然后什么都不用做,双击bin目录下cassandra.bat,就启动cassandra数据库服务了。
4.测试
使用cassandra ...
今天测试了一下AsynchronousServerSocketChannel进行网络编程,发现这个效率确实高。讲一下测试场景,AsynchronousServerSocketChannel监听连接,获取到连接以后,提交给线程池去执行任务。一开始有些地方比较迷惑,比如启动一个5个线程的连接池,当我有10个连接进来,按照每一个连接都会封装成任务的做法,岂不是有五个一开始会等待,直到之前的五个中有任务执行完了,剩余的五个任务才会陆续执行,这样的话,为什么人们都说它效率高呢?
反正我一开始是有这个想法,于是我写了个测试,验证我的想法,发现并不是我想的那样,先看看代码,然后再详细说明一 ...
前面写了nio 网络 server端,这里是client端,只写了简单的发送接收数据,最后关闭连接。大文本发送和接手参考server端写法就行了。
不过这里有个异常,客户端这边调用socketChannel的close方法以后,服务端继续使用这个channel的话,会抛出异常。所以在server端需要检查,socketChannel.read(rb)这个方法会返回一个整数,当返回的数大于-1的时候,表示这个socketChannel没有close,当socketChannel调用close方法以后,会返回-1,这时候,就不要操作这个socketChannel还有不要 ...
最近一段时间看了下java nio,对于它的实际用途还有待继续研究,也看了网上很多人的文章博客等,收益颇多,但是还是自己动手才能知道自己是否真的会写了,会写与是否理解nio工作机制还有一定距离。我又不是一个理论派,主要还是讲究实战的,好,废话不多说,直接准备动作写。
首先你需要了解几个nio网络编程中会用到的组件(类):
1.ByteBuffer
2.Selector
3.ServerSocketChannel
4.SocketChannel
5.SelectionKey
说一下nio server的整 ...
1.redis备份
有两种方式:rdb和aof
rdb:全量备份 时效性较差 数据丢失可能性大 恢复快 压缩率高(文件小)
aof:增量备份 时效性高 数据 丢失可能性小 恢复慢 未压缩(文件大,BGREWRITEAOF可能稍微 减小一点体积)
官方建议两种方式都开启。
默认rdb是开启的
aof默认关闭,需要打开的话,编辑redis.conf大概593行左右,把appendonly no改为appendonly yes
2.主从复制
三台服务器规划:
...
前面已经搭好了zookeeper集群,下面开始搭建storm集群。
1.机器准备 还是那三台
172.17.0.2/172.17.0.3/172.17.0.4
2.下载storm
wget http://mirror.bjtu.edu.cn/apache/storm/apache-storm-1.0.1/apache-storm-1.0.1.tar.gz
3.解压
tar xvf xx.xx.tar.gz
4.修改storm配置
vi conf/storm.yaml 有些 ...
不知道zookeeper是什么的,可以先查查资料,因为搭storm集群,需要zookeeper集群,所以就顺手搭一个。废话少说,直接上手配置集群。
1.准备环境
三台机器 系统是centos
172.17.0.2/172.17.0.3/172.17.0.4
安装好了jdk 配置好环境变量JAVA_HOME
2.下载zookeeper
用国内的镜像下载会快些,我用的是清华的镜像站点:
https://mirror.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.4.8/zookee ...
首先说效果,可以模拟人浏览网页的行为,比如点击一个dom元素,输入一段文本,提交一个表单等。通过webdriver可以实现这些功能,不必要人去操作,交给java去执行就行了。
需要下载的东西:
1.selenium htt ...
最近业务,需要在子线程中使用到mongo,本以为线程中run方法结束,MongoClient会自动销毁。在实际测试中,发现,子线程run方法语句执行结束后,如果没有关闭MongoClient,子线程就会一直存在,不会销毁。
一开始以为只在子线程中会这样,后面在main方法中直接初始化MongoClient,不关闭的话,主线程所有语句执行完毕,主线程不会停止,而是一直存在。以前没遇到过这个问题,也可能是最近3.x驱动才有的。
所以我们经常在使用单例MongoClient的时候,是没有什么问题,因为进程结束时所有资源都会被释放,当然MongoClient内部不知用何种方式 ...
1.使用maven安装驱动(也可以手动下载jar包导入项目):
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongo-java-driver</artifactId>
<version>3.2.0</version>
</dependency>
2.连接mongodb得到MongoClient
// To directly connect to a single Mo ...