- 博客(273)
- 收藏
- 关注
原创 钉钉机器人
仅做个人备忘录 ssh admin@***stabel.net touch weekreport.sh vi weekreport.sh curl 'https://oapi.dingtalk.com/robot/send?access_token=a8d1f4c0d6e6b59510cc67404ae694c2de4c6d548567f91cb02a877170...
2017-03-17 14:10:41
513
JVM监控方法 - JvmMonitor
在日常项目运作中,有时我们需要将JVM的信息以我们期望的方式输出到日志中,然后对日志对日志进行实时监控。1.JVM监控日志#jvm-monitor-digest.log#说明:记录了jvm中的一些堆内存和线程信息以及堆外内存,例2014-07-10 00:00:06,599 INFO JVM INFO - (1325.5,5390)(7.4,135,6...
2017-01-05 23:18:16
1558
XMPP协议、MQTT协议、HTTP协议、CoAP协议的基本比较
一、先看下相关国外的专业数据对四大协议的比较: ProtocolCoAPXMPPRESTful HTTPMQTTTransportUDPTCPTCPTCPMessagingRequest/ResponsePublish/Subscribe Request/ResponseRequest/ResponsePubli...
2016-05-19 20:51:56
489
MQTT协议 - 安全问题
一、概述: 物联网的核心是连接万物,通过交换并分析数据使得生活更舒适与便捷。不过,敏感数据泄露或者设备被非法控制可不是闹着玩的。比如前段时间国内某著名家电企业的智能洗衣机,使用了某著名电商基于XMPP协议的物联网平台,不费吹灰之力便被黑客攻破并远程遥控,给智能家居的发展带来了一些阴影。究其本质,并不是物联网技术本身有缺陷,而是在物联网系统的设计中最基本的安全设计被工程师轻视了...
2016-05-19 20:07:37
1811
TCP3次握手,4次挥手的过程
1、建立连接协议(三次握手) (1)客户端发送一个带SYN标志的TCP报文到服务器。这是三次握手过程中的报文1。 (2)服务器端回应客户端的,这是三次握手中的第2个报文,这个报文同时带ACK标志和SYN标志。因此它表示对刚才客户端SYN报文的回应;同时又标志SYN给客户端,询问客户端是否准备好进行数据通讯。 (3)客户必须再次回应服务段一个ACK报文,这是报文段3。 ...
2016-05-18 20:46:26
230
原创 深入浅出HTTPS基本原理
基础知识准备:在了解HTTPS的基本原理之前,需要先了解如下的基本知识。 一、什么是HTTPS,TLS,SSL HTTPS,也称作HTTP over TLS。TLS的前身是SSL,TLS 1.0通常被标示为SSL 3.1,TLS 1.1为SSL 3.2,TLS 1.2为SSL 3.3。下图描述了在TCP/IP协议栈中TLS(各子协议)和HTTP的关系。 ...
2016-05-18 20:35:26
1102
Eclipse xml文件中ctrl+左键不能打开对应的Java类 - 不能显示超链接
问题描述 : 在eclipse的xml文件中,我们定义一个bean后(指定class并给出class的路径后,只要按住ctrl+鼠标左键便能够打开该类),但今天eclipe中突然失效,同时按住ctrl+鼠标左键不再显示我们希望看到的超链接 解决方案: 可能原因:XML可能以 Spket XML Editor格式打开。 解决办法:在Associat...
2016-03-22 15:02:55
4753
原创 Interview Points
1、性能调优2、IO 导致性能问题3、集群:缓存集群,数据库,Nosql,大数据处理集群4、性能最高最安全的单例模式。6、架构经验,架构独到之处及对性能的提升7、ZK的缺点,怎么解决?8、小型网站或应用的缓存实现,画图,大型分布式网站的缓存实现,画图。基于大型分布式网站的缓存实现,怎么得出分布式session系统架构。9、一致性哈希算法的原理和实现10、集群管理...
2016-02-24 18:33:32
146
Maven运行可执行jar包 - 没有主清单属性
使用如下命令打了一个Maven可执行Jar包,被告知没有主清单属性: <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> &l...
2015-12-06 10:42:38
570
Maven -Unable to locate Spring NamespaceHandler for XML schema namespace
使用如下命令构建可执行Jar包时,如果使用的是新版本的Maven,在执行Jar包时会告知如下类似的错误:Unable to locate Spring NamespaceHandler for XML schema namespace [http://www.springframework.org/schema/context]Offending resourc...
2015-12-06 10:33:59
216
Solr5.x 集成 Tomcat8.x (并新增一个core)
如果想查看Solr4.x集成Tomcat7.x,查看怎样使用Solr中自带的Jetty来启动Solr的服务,可以查看我的其它博客。 一、下载Solr 5.3.1:http://www.apache.org/dyn/closer.lua/lucene/solr/5.3.1 二、下载Tomcat8.xhttp://archive.apache.org/dis...
2015-11-26 15:35:13
393
Maven创建项目: Failed to execute goal org.apache.maven.plugin( mvn archetype:create)
一、概述: 在使用mvn 命令mvn archetype:create -DgroupId=com.chuanliu.c11 -DartifactId=c11searcher在控制创建maven项目和pom项目时,没有创建成功,错误信息如下: [ERROR] Failed to execute goal org.apache.maven.plugins:maven...
2015-11-21 00:05:47
450
原创 Errors running builder 'Maven Project Builder' on project 'XXX'
今天在Eclipse的Juno和Mars版本中,去执行Maven -> Update Project的时候出现了一个错误: Errors occurred during the build. Errors running builder 'Maven Project Builder' on project 'xxx'.以及java.lang.NullP...
2015-11-07 19:50:37
2063
Maven主仓库中找不到包的解决办法(如org.restlet.jee not found)
有时候,通过maven总是找不到某些包,比如今天我就碰到 Could not find artifact org.restlet.jee:org.restlet:jar:2.3.0 , 这时候可以通过如下的方法去解决: 1、可以找到restlet的官方repo,将其加到工程的pom中:<repositories> <repository&...
2015-10-24 15:03:48
2367
Solr 5.x的搭建(Solr自带的Jetty Server)与mmseg4j中文分词
前言: 如果你对Solr怎么和Tomcat 集成以及如何使用mmseg4j和自定义的词库丰富完善中文分词,可以参照我的其它与Solr相关的博客。这篇将以简练的方式给出如何搭建Solr5.x的服务(以截止目前为止最新的Solr5.3为例),而且将使用Solr自带的Jetty Server,而不是集成tomcat。 一、准备条件Solr5.x必须建立在JDK1.7的版...
2015-10-17 19:05:01
242
Solr中的Field、CopyField、DynamicField
Field: Field就是一个字段,定义一个Field很简单: <field name="tile" type="string" indexed="true" stored="true"/> Field的属性也和FieldType类似,他的属性会覆盖掉FieldType的同名属性。 CopyField 你可能想让documen...
2015-10-06 16:14:03
267
深入浅出Solr Cache
前言 Solr在Lucene之上开发了很多Cache功能,目前提供的Cache类型有:(1) filterCache(2) documentCache(3) fieldvalueCache (4) queryresultCache 一、Cache的生命周期 Solr查询的核心类是SolrIndexSearcher,...
2015-10-06 00:50:08
291
LRU算法
LRU是Least Recently Used 近期最少使用算法。内存管理的一种页面置换算法,对于在内存中但又不用的数据块(内存块)叫做LRU,操作系统会根据哪些数据属于LRU而将其移出内存而腾出空间来加载另外的数据。什么是LRU算法? LRU是Least Recently Used的缩写,即最少使用页面置换算法,是为虚拟页式存储管理服务的。关于操作系统的内存管理,如何节省利用容量不...
2015-10-05 21:55:34
245
Slor5.x与mmseg4j的集成【使用solr自带的Jetty Server】
一、mmseg4j对Solr5.x的支持必须使用mmseg4j-2.0以上的版本,本例中我使用的是mmseg4j solr 2.3.0,使用的solr是截止目前为止的solr5.3.1,可下载附件,注意Solr-5.3.1是linux版本,如果需要windows版本,直接去官网上下载,so easy! 二、mmseg4j-2.0后的jar包只有两个了,一个是mmseg4j-core-1...
2015-10-04 11:29:01
165
中文分词中的正向最大匹配与逆向最大匹配
我们都知道,英文的分词由于单词间是以空格进行分隔的,所以分词要相对的容易些,而中文就不同了,中文中一个句子的分隔就是以字为单位的了,而所谓的正向最大匹配和逆向最大匹配便是一种分词匹配的方法,这里以词典匹配说明。 所谓词典正向最大匹配就是将一段字符串进行分隔,其中分隔 的长度有限制,然后将分隔的子字符串与字典中的词进行匹配,如果匹配成功则进行下一轮匹配,直到所有字符...
2015-09-14 23:52:37
669
原创 windows常用命令
一、怎样查看并停止某个进程 netstat -anotskill [pid]或者在任务管理器的进程中停止相关进程。如: 协议 本地地址 外部地址 状态 PID TCP 0.0.0.0:135 0.0.0.0:0 LISTENING 956可看到...
2015-09-02 13:11:16
98
org/eclipse/jetty/server/Connector : Unsupported major.minor version 52.0
一、概述今天在eclipse中使用Jetty9.3.0的Embedded方法来启动一个web application的时候,出现了如下的exception:Exception in thread "main" java.lang.UnsupportedClassVersionError: org/eclipse/jetty/server/Connector : Unsupported m...
2015-08-23 21:16:59
883
git rebase与git merge的区别即联系
一、简介 在Git中,有两种方法将两个不同的branch合并。一种是通过git merge,一种是通过git rebase。然而,大部分人都习惯于使用git merge,而忽略git rebase。本文将重点介绍git rebase的原理、使用方式及应用范围以及与git merge的区别。 二、git merge当我们在开发一些新功能的时候,往往需要建立新的...
2015-08-16 01:20:26
1484
java泛型(Class<T>,Class<?>)
一、概述 泛型是Java SE 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。 Java语言引入泛型的好处是安全简单。在Java SE 1.5之前,没有泛型的情况的下,通过对类型Object的引用来实现参数的“任意化”,“任意化”带来的缺点是要做显式的强制类型转...
2015-08-16 00:09:29
933
linux中压缩与解压缩大全 - linux中各种文件格式的解压缩
.tar 解包:tar xvf FileName.tar打包:tar cvf FileName.tar DirName(注:tar是打包,不是压缩!)———————————————.gz解压1:gunzip FileName.gz解压2:gzip -d FileName.gz压缩:gzip FileName.tar.gz 和 .tgz解压:tar zxvf...
2015-08-13 21:30:13
153
log4j1/log4j2中category的配置以及log的输出位置(windows和linux通用的log输出位置)...
一、场景和需求假设我现在有3个独立的用project(暂时用maven关联起来,当然也可以不用maven),一个是提供公共服务的infrastructure,一个是提供存储的persister,一个是提供搜索的searcher,其中提供基础服务的所有的类,例如DateUtils,HttpUtils等工具类都位于目录com.chuanliu.platform.activity下,而提供存储服务...
2015-08-12 21:37:39
1475
原创 Kafka的分布式架构设计与High Availability机制
一、Kafka的基本概述 1、Kafka是什么?kafka官网上对kafka的定义叫:A distributed publish-subscribe messaging system。publish-subscribe是发布和订阅的意思,所以准确的说kafka是一个消息订阅和发布的系统。最初,Kafka实际上是linkedin用于日志处理的分布式消息队列,linkedin的日志数据...
2015-08-12 00:28:57
203
稳定免费的Maven Mirror镜像
<mirrors> <mirror> <id>repo2</id> <mirrorOf>central</mirrorOf> <name>Human Readable Name for this Mirror.</name>
2015-08-12 00:28:15
154
SolrCloud之分布式索引及与Zookeeper的集成
一、概述Lucene是一个Java语言编写的利用倒排原理实现的文本检索类库,Solr是以Lucene为基础实现的文本检索应用服务,SolrCloud是Solr4.0版本开发出的具有开创意义的基于Solr和Zookeeper的分布式搜索方案,主要思想是使用Zookeeper作为集群的配置信息中心。也可以说,SolrCloud是Solr的一种部署方式,除SolrCloud之外,Solr还可以以...
2015-08-11 15:21:13
146
Class和ClassLoader的getResourceAsStream的区别
一、共同点:两个都可以用于从 classpath 里面进行资源读取。 二、不同点:资源的定义不同1、Class用于相对于一个Object取资源。2、ClassLoader相对于classpath取资源,用的是绝对路径。3、路径的不同: 3.1:在使用Class.getResourceAsStream 时, 资源路径有两种方式,一种以 / 开头,则这样的路...
2015-08-11 09:01:58
197
原创 JVM性能调优监控工具专题三:VisualVM基本篇之快照分析、监控GC、Eclipse集成
一、概述上一个专题专门举例说明了使用VisualVM进行远程监控以及对Tomcat的远程监控,如果有兴趣,可以查看:http://josh-persistence.iteye.com/blog/2233459该专题将讲解如何使用VisualVM生成快照、以及如何对JVM的GC进行监控,最后举例说明如何将VisualVM和eclipse进行集成。 二、快照功能我们可以使用...
2015-08-09 09:39:41
848
原创 JVM性能调优监控工具专题二:VisualVM基本篇之远程监控,监控Tomcat
一、概述上一个专题专门举例说明了使用VisualVM来对JVM的内存,CPU和线程进行监控,如果有兴趣,可以查看:http://josh-persistence.iteye.com/blog/2233445, 这一专题继续说明VirsualVM怎样进行远程监控,怎样监控Tomcat。从前面的博客中可以知道,VisualVM在启动后,可以看到窗口左侧的”应用程序“栏中有”本地“,...
2015-08-08 17:08:15
634
Linux/Unix中使用iconv进行编码转换
iconv命令是运行于linux/unix平台的文件编码装换工具。当我们在linux/unix系统shell查看文本文件时,常常会发现文件的中文是乱码的,这是由于文本文件的编码与当前操作系统设置的编码不同而引起的,这时可以使用iconv进行编码转换,从而解决乱码问题。解决文本文件乱码问题分3步:1.确定文件编码,2.确定iconv是否支持此编码的转换,3.确定Linux/Unix操作...
2015-08-08 13:27:38
825
编码简介ASCII、Unicode、 GB2312、GBK、GB18030、BIG5、UTF-8、Base64、MBCS
一、基本概述字符编码是把字符集中的编码,指定集合中某一对象,以便文本能在计算机中存储和通过通信网络的传递。常见的例子包括将拉丁字母表编码成摩斯电码和ASCII。其中,ASCII将字母、数字和其它符号编号,并用7比特的二进制来表示这个整数。通常会额外使用一个扩充的比特,以便于以1个字节的方式存储。在计算机技术发展的早期,如ASCII(1963年)和EBCDIC(1964年)这样的字符集逐渐成为...
2015-08-08 12:53:21
872
JVM性能调优监控工具专题二:VisualVM基本篇之监控JVM内存,CPU,线程
前言: 上一个专题中讲述了JVM中自带的各种性能测试的小工具:包括jps,jstatck,jmap,jhat,jsats,hprofhttp://josh-persistence.iteye.com/blog/2161848,根据项目应用中的具体情况,如果想要查看Java进程中线程堆栈的信息,可以选择jstack,如果要查看堆内存,可以使用jmap导出并使用jhat来进行...
2015-08-06 23:05:00
553
Java时区处理之夏令时,冬令时 - 美国的6个时区
在开始之前,如果要了解Java中的时区操作的基本概念和事例,可以参见另一篇博客:Java时区处理之Date,Calendar,TimeZone,SimpleDateFormat 一、夏令时概述:Daylight Saving Time:DST 夏令时,又称“日光节约时制”或“夏时制”,是一种为节约能源而人为规定地方时间的制度,在这一制度实行期间所采用的统一时间称...
2015-07-26 17:06:17
3139
原创 Java时区处理之Date,Calendar,TimeZone,SimpleDateFormat
一、概述 1、问题描述 使用Java处理时间时,我们可能会经常发现时间不对,比如相差8个小时等等,其真实原因便是TimeZone。只有正确合理的运用TimeZone,才能保证系统时间无论何时都是准确的。由于我在外企工作,服务器在美国,美国也有很多时区,经常会碰到向处于不同时区的服务器发请求时需要考虑时区转换的问题。譬如,服务器位于西八区(GMT-8:00),而身处东八区的...
2015-07-24 21:27:34
1026
1
深入浅出数据库连接池c3p0
一、概述: 数据库连接池C3P0框架是个非常优异的开源jar,高性能的管理着数据源,c3p0有两种数据源管理方式,一种是通过程序变本身来进行管理,还有一种是通过容器管理,本节讨论通过程序本身来进行管理,下一节讨论通过容器进行管理。 二、c3p0的三种实现方式 1、实现方式一:利用c3p0的API自己动手写代码,实现数据源例如:在类路径下配置一个属性文件,confi...
2015-07-24 14:35:58
370
原创 深入浅出数据库连接池c3p0
一、概述: 数据库连接池C3P0框架是个非常优异的开源jar,高性能的管理着数据源,c3p0有两种数据源管理方式,一种是通过程序变本身来进行管理,还有一种是通过容器管理,本节讨论通过程序本身来进行管理,下一节讨论通过容器进行管理。 二、c3p0的三种实现方式 1、实现方式一:利用c3p0的API自己动手写代码,实现数据源例如:在类路径下配置一个属性文件,conf...
2015-07-24 14:34:54
207
1
Linux执行Cron Job失败,在Shell sh下执行却能成功 - 环境变量?
一、我们常常碰到在shell下执行某个命令能够成功,比如执行一个java程序:java -jar /home/opscoder/topo-audit.jar,但是在crontab下执行会失败。cornjob为 0 10 * * * java -jar /home/opscoder/topo-audit.jar: 即每天10点去执行这个jar中的main方法二、查找失败的原因,即查看c...
2015-07-22 11:26:15
532
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人