`
clearity
  • 浏览: 36915 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
文章列表
现如今网站中,涉及到一定规模的都会引入分布式的部署和实现。说到分布式系统,那就要提到它所使用的信息交换方式,不外乎两种,一种为通过共享内存共享数据,另外一种是通过传递消息来完成。   但是使用消息传递的 ...

Java NIO Channel

    博客分类:
  • NIO
Java中nio的通道和流有一些不同之处:  1.通道可以同时支持读与写,而流只能是其中之一;  2.通道支持异步读写;  3.通道的读写都通过Buffer缓冲空间进行。 通道的读写流程如下:   通道的几种实现: FileChannel(服务于文件) DatagramChannel(服务于UDP数据报) SocketChannel(服务于TCP 的数据读写) ServerSocketChannel(服务于TCP 服务端,监听请求的TCP连接,为每个连接创建一个SocketChannel ) 基本通道使用的例子   RandomAccessFile aFile ...
查找所有的隐藏文件: find . -regex '.*/\..*'   删除所有java文件: rm -rf `find . -name *.java`   删除所有后缀为.svn的目录: rm -rf `find . -type d -name .svn`   为web server递归设置权限: chmod -R a+r ~/www find ~/www -type d -exec chmod a+x {} \;   查找所有的可执行文件: find . -executable -type f  
怎样得知当前机器上某个端口上运行的具体服务呢?下面演示的是在linux上获取端口80上运行服务的命令: lsof -i -n -P | grep :80  

Mysql命令备忘

安装SQL Buddy   sudo apt-get install apache2 libapache2-mod-php5 php5-mysql sudo /etc/init.d/apache2 restart 下载SQL Buddy,解压,拷贝到目录 /var/www。   接受远程服务器的连接:   1.在/etc/mysql/my.cnf文件中绑定地址到你的IP上   2.运行命令 /sbin/i ...
登录副本集的主节点运行rs.status()命令看到如下信息: { "_id" : 4, "name" : "55.55.55.55:27017", "health" : 1, "state" : 3, "stateStr" : "RECOVERING", "uptime" : 502511, "optime" : { "t" : 1340841938000, ...
下面是一段以M为单位获取所有集合的代码: var collNames = db.getCollectionNames(); for (var i = 0; i < collNames.length; i++) { var coll = db.getCollection(collNames[i]); var stats = coll.stats(1024 * 1024); print(stats.ns, stats.storageSize); }  
Java中可以如下的打印出堆栈跟踪信息: new Exception().printStackTrace();  但是如果想更好的输出,可以使用下列相似的代码规范生成: System.out.println("Printing stack trace:"); StackTraceElement[] elements = Thread.currentThread().getStackTrace(); for (int i = 1; i < elements.length; i++) { StackTraceElement s = eleme ...
希望通过Eclipse远程调试命令行启动的程序,需要将程序设置为远程调试模式: java -Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=y -jar myProgram.jar   现在打开Eclipse Run > Debug Configurations... > Remote Java Application > New  保证端口和命令行启动的端口一致,默认是8000,现在点击“debug”就可以了。

嵌入式Tomcat

下面为嵌入使用Tomcat的示例代码: import java.net.URL; import org.apache.catalina.Context; import org.apache.catalina.core.AprLifecycleListener; import org.apache.catalina.core.StandardServer; import org.apache.catalina.deploy.FilterDef; import org.apache.catalina.deploy.FilterMap; import org.apache.cata ...

Nginx本机SSL配置

首先安装nginx sudo apt-get install nginx   必须安装SSL模块,nginx官方文档指明不包括在默认配置中,可以通过运行nginx -V来查看是否包含--with-http_ssl_module。 下一步是生成SSL证书,现在可以配置nginx了。 upstream backend { server 127.0.0.1:9000; } server { server_name www.yourdomain.com yourdomain.com; rewrite ^(.*) https://www.yourd ...
可以使用Percona Xtrabackup创建Mysql备份数据,运行下面命令: $ innobackupex --user=DBUSER --password=DBUSERPASS /path/to/BACKUP-DIR/   对应的恢复数据操作如下: $ xtrabackup --prepare --datadir=/var/lib/mysql --target-dir=/path/to/BACKUP-DIR/ $ sudo service mysql stop $ sudo mv /var/lib/mysql ~/dbbackup $ sudo mv /path/to/B ...
可以通过以下选项设置当虚拟机发生内存溢出异常的时候生成堆栈转储信息:   -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/tmp/mydump.hprof   分析转储信息的方式: 安装Eclipse内存分析器(eclipse memory analyzer) 使用大内存设置启动Eclipse:eclipse -vmargs -Xmx6G 打开Eclipse内存分析选项页: Window > Open Perspective > Other > Memory Analysis
Q:在Java中怎么可以产生内存泄露? A:Java中,造成内存泄露的原因有很多种。典型的例子是一个没有实现hasCode和 equals方法的Key类在HashMap中保存的情况。最后会生成很多重复的对象。所有的内存泄露 最后都会抛出OutOfMemoryError异常,下面通过一段简短的通过无限循环模拟内存泄露 的例子说明一下。     import java.util.HashMap; import java.util.Map; public class MemoryLeak { public static void main(String[] args ...
看以下的文档:   Collection : domain { "_id" : 1001, "domainName" : "google.com" "tag" : [ "search engine", "search", "find anything", "giant" ] }, { "_id" : 1002, "domainName" ...
Global site tag (gtag.js) - Google Analytics