自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(95)
  • 资源 (15)
  • 收藏
  • 关注

原创 http client客户端和Spring boot服务端长连接梳理

最近业务运行,出现了长连接的问题,整理了一下,记录下来。环境:<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test&l...

2018-12-23 22:03:39 13158

原创 elasticsearch源码分析——基本概念

还会要先写一写elasticsearch的基本概念的理解吧。基本概念  参照一些博客,想到那,写到哪。Node  集群就是一个个Node组成的,上一篇介绍的有data node和master node的区分。一个节点就是一个elasticsearch实例。关注一下elasticsearch.yml的配置。   比如简答的transport.tcp.port配置,全局搜...

2018-06-13 22:39:27 859

原创 elasticsearch源码分析——集群状态

现在的工程就是在源码的层面进行改动,之前因为一个问题出现了集群假死的状态。所以才深入的去分析了,源码的集群同步的状态。简述  首先需要明白,类似于solr使用的是zookeeper来进行集群状态的同步。等于是使用了三方件实现集群状态的维护。但是要明白elasticsearch没有用到zookeeper,etcd来管理节点的主备逻辑。   所以,集群状态同步是怎么完成的呢。   ...

2018-06-12 23:11:47 1470

原创 kuryr简单的了解

到现在openstack的neutron网络已经发展的比较成熟了,但是对于docker来说,网络方面就比较薄弱,所以就出现了kuryr这个项目来建立docker与neutron的连接,它本质上就是docker的一个插件。kuryrd的结构kuryr是基于flask的一个web框架实现的,所以基本的逻辑阅读一下相关的REST api就差不多知道了。基本就如下图所示: Create Conta

2018-06-11 22:53:41 443

原创 elasticsearch源码分析——客户端

直观一点,现在源码已经可以进行调试,那就先熟悉一下,elasticsearch的操作逻辑。最基础的就是url,elasticsearch本身也做了request和response的封装,有一定了解的话,用起来还是比较方便的。URL1、创建index[当然了,你要是直接导入数据,elasticsearch也是会自动为你创建对应的mappings结构]indexName:test...

2018-06-11 22:24:12 2058

原创 elasticsearch源码分析——源码编译

分析源码,首先要从搭建编译运行环境开始 项目 版本 运行环境 windows IDE intellij 2018.1.4 JDK 1.8.0_171 elasticsearch 5.5.1 gradle 4.3 maven 3.5.0 总是用得上的 备注:之前一直都用的是1.8.0_25...

2018-06-11 21:45:15 2846

原创 solr源码分析--recovery

恢复机制比较复杂,慢慢写写。概述  恢复的流程主要就是三个,一个replay,一个peersync还有一个replicate。下面结合场景,从源码角度分析三个数据恢复场景的流程。replay  这个还是先从solr启动说起,分析一下整体的代码流程。SolrDispatcher.init() @Override public void init(FilterConfig config) thr

2017-12-30 23:50:57 682

原创 solr源码分析--数据类型

如果业务上有需求,需要进行自定义数据类型。这个就需要对solr的数据类型的实现有一定的了解。shema  solr的很多配置向都是在一个confset,配置集里面去定义的。比如说前面有提到,要想添加自定义的processor就需要在solrconfig.xml配置文件中进行定义,当然后端还是要写自己的实现。数据类型也是一样。先看一下solr本身是如何定义数据类型的。      简单类比于数据

2017-12-30 22:56:40 1408

原创 solr源码分析--API

solr API请求处理逻辑,reload,create等等使用的都是类似的流程,这个过程中牵扯到了zk的分布式队列以及solr中的overseer的概念。明白这个之后就可以添加自定义API。概要  solr的API基本上可以分为两类。collection级别的API,比如创建collection时候的CREATE的请求。第二类就是core级别的API,collection创建的时候,最终请求是要

2017-12-30 22:11:18 850

原创 solr源码分析--query

solr查询的逻辑比较复杂,下面按场景简单做一个梳理。概述  只考虑一般的查询流程。单节点和分布式搜索流程上还是有很大的差别。简单的先看一下solrServer是如何接受到查询请求的,以及response的构造。整体流程  大体的流程在这篇博客中已经写明。solr6.2源码分析   请求入口  首先,solr是部署在tomcat上的一个web项目,看一下过滤器的逻辑。    web.xml

2017-12-30 17:54:38 1402

原创 solr源码分析--addDocument

马上2017就要结束了,今年研究了不少solr相关的问题,年末的时候还是做一个总结吧。明年说不定就开始搞ES了。一、数据流传递过程数据添加的API是以post的形式发送,此处以solrj数据导入为例,接收数据就用到了JavabinLoader。前面的SolrDispatcher流程暂时跳过,直接看handleRequestBody的处理过程。 ContentStreamHandlerBase.

2017-12-30 13:27:49 930

原创 循环解析xml dom

最近有用到,简单写一下。不感知内容,递归调用。package com.ferraborghini.parser;import java.io.File;import java.io.IOException;import java.util.HashMap;import java.util.Map;import javax.xml.parsers.DocumentBuilder;import

2017-08-28 23:45:01 397

原创 solr6.2源码分析

最近一直有研究solr源码,所以也做一个分享吧,网上的话对SolrCloud的分享比较少,后续会对SolrCloud的分布式特性做一个介绍,如果有时间的话。由于没有牵扯到代码,所以只是流程上的分析。后续如果有时间的话,再对代码做一个详细的解释。请多多指出批评意见。1. 首先是solrcloud的结构  这个在网上差不多都能找到相应的分析,基本就是这个概念,没有更多新的东西。 图1 Solrc

2017-07-09 22:37:06 692

原创 solr segment合并的一些心得

简单写一下最近看到的一个问题。问题:solr段合并的时候,DocID的逻辑上有些许变化,有些不再是段中的DocId加上偏移量。定位:首先,solr的底层也都是调用的lucenne的代码,所以这一块就跟lucene没有什么区别。逻辑上数据是先写入缓存的,当达到阈值的时候开始持久化到磁盘中,写入新的段。由于段合并的逻辑,会判断相邻的10个段(举例)是否达到合并的要求,如果达到合并的要求,就会进行合并生

2017-05-25 23:06:12 2296

原创 thrift的编译过程

、 终于到终点了,之前的都是做前期准备一、thrift的编译。windows opnessl安装libevent windows vs2010Windows boost库安装 VS2010\thrift-0.9.3\lib\cpp下有VS工程文件thrift.sln,用VS2010打开之后,会看到两个工程。 1)libthrift工程配置: libthrift>属性->C/C++-

2017-05-21 20:27:35 1587

原创 windows opnessl安装

继续安装,搭建thrift环境。操作系统:win10 编译器:VS2010 openssl版本:openssl-1.0.1e 国内还是GitHub快一些 perl:ActivePerl 百度的软件下载安装步骤: 如何在Windows下编译OpenSSL (VS2010使用VC10的cl编译器) 1、使用VS2010下的Visual Studio 2010 Command Prompt进入

2017-05-21 19:45:23 2043

原创 libevent windows vs2010

借鉴前人的经验,注意一点版本尽可能不要搞错,少走弯路。编译器:VS2010 libevent版本:2.0.22 下载地址:libevent-2.0.22 github比较容易下载。 OS:windows 10操作步骤: 1、下载后加压缩就不说了。 2、使用VS2010的命令行工具,会有环境变量的写入,默认使用nmake之类的进行编译。 3、修改以下三个文件,添加宏定义: 在以下3个文

2017-05-21 16:11:25 435

原创 Windows boost库安装 VS2010

记录以下安装的时候出现的坑吧。由于项目需要,目的是为了配置thrift框架,使用RPC服务。但是吧,在Windows上需要配置各种依赖库,重新编译。1.版本问题。最初没有意识到VS版本跟boost版本的问题,出了很多问题,但是最终问题好像也都不是版本的问题。不过最好还是要版本一致吧。 安装boost使用的版本:boost_1_53_0 国内比较好下载的链接地址:boost1.53.0问题:ms

2017-05-21 15:40:27 1305

原创 solr源码导入eclipse进行编译之出现的问题

网上能够找到一大把如何编译导入的文章,这里不再赘述,只记录出现的问题。新手刚用这些工具,所以没有什么经验一点点踩坑。编译参考文章1、最好找一个vpn吧,用的家里的网络一直看在 retrieve上不动了。纠结,后来使用ant -v eclipse进行编译,至少能看到编译时出现的错误。2、使用vpn,maven的源就不用配置了,省了一点事。可能是之前因为下载一直没有成功,所以就ctrl+c进行终止了,

2017-05-21 15:11:22 444

原创 华为OJ 字符串运用-密码截取

要毕业了还是要敲一下代码练练手的,很简单的小程序 项目 内容 题目 Catcher是MCA国的情报员,他工作时发现敌国会用一些对称的密码进行通信,比如像这些ABBA,ABA,A,123321,但是他们有时会在开始或结束时加入一些无关的字符以防止别国破解。比如进行下列变化 ABBA->12ABBA,ABA->ABAKK,123321->51233214 。因为截获的串太长了,而且存在多种可

2017-03-04 14:08:40 333

原创 CentOS忘记密码之后的修改

蛮尴尬的,在公司装系统的时候,装机不好用,装完之后,麻蛋发现root密码根本进不去。以前时间不紧急,一般都是再装一遍,今天就看一下怎么去修改,学习一下。1、首先开机进入系统选择界面之后,点击‘e’进入编辑模式。 2、找到 ro 改为 rw init=sysroot/bin/sh 3、根据提示ctrl+x 进入系统 4、passwd 5、修改密码 6、在根目录下创建文件,下次开机的时候系统

2016-10-11 21:40:52 679

原创 CentOS7禁用ipv6

禁用很简单,现在centos基本都是用的grub2。找到grub的配置文件,修改一下。vim /etc/default/grub# 在其中添加ipv6.disable=1 加在GRUB_CMDLINE_LINUX项最后# 然后更新配置grub2-mkconfig /boot/grub2/grub.cfgreboot OK 重启之后就可以看到IPv6已经被禁用了

2016-10-11 21:32:34 707

原创 go语言笔记

了解docker就不得不学习一下go语言了。尤其是接口一类的,感觉不是很方便。一点点更新自己的理解吧。1.go语言中的package。 在java中直接是类的感念,import也是直接对类生效的。但是在go语言中目录和包都会有相应的使用。 目录: import的就是导入的目录。 packege:一个目录下可以有多个go文件,但是只能有一个目录。 另外,系统默认的p

2016-09-19 22:13:05 895

原创 gRPC使用的分析

看了docker的源码就不得不了解一下gRPC这个鬼东西。下面借鉴一下别人的实例,让我这个初次接触的人做一个,最直接的分析。首先编译安装protobuf 工具。go get google.golang.org/grpcgo get -u github.com/golang/protobuf/{proto,protoc-gen-go} //下载proto转换为go语言的工具export PATH=

2016-09-18 22:44:04 4638

原创 docker1.11的新特性

最近一直在研究这一块东西,做个记录吧。持续更新,有错误的地方也一点点改进。从docker1.11开始,docker的整体框架改动很大。从之前的docker一个二进制文件变成了4个二进制文件。docker, docker-containerd, docker-containerd-shim和docker-runc。docker的模块分离的一个好处就是底层的容器的实现,可以跟上层的daemon进行分离,

2016-09-18 22:17:15 615

原创 练练手,写一个远程桌面连接的东东

一直都有这个想法去写点东西,然后就找各种借口,其实时间还是蛮多的,那就坐下来一点点做,其实想写一下远程桌面控制的,不过慢慢来吧,有时间就一点点改进。先定一个简单的目标,比如说,先把远程桌面的截图获取出来。使用java来实现java的socket编程数据的传输使用序列化实现使用java swing做一个简单的界面实现多线程的解析数据代码: ScreenShot问题:BufferedImag

2016-09-10 14:47:20 637

原创 python爬虫

再不写点东西就真不会写代码了 最近一直在学习云计算的东西,慢慢的也准备整理一下。 今天试试手,写一个简单的爬虫,之前就写了,但一直没有实现。很简单,正好熟悉一下python# coding=utf-8import sysimport osimport urllibimport urllib2import threadingbase_uri = "http://www.csdn.net/

2016-08-28 22:25:34 463

原创 mysql DELIMITER $$

今天又来复习一下数据库的知识,在写trigger的时候,在编辑器中总是报错误。DELIMITER $$create trigger tg1after insert on testfor each row beginupdate test set name = 'tiansen' where _id =1;end$$DELIMITER ;mysql默认是以;分隔执行一个语句,但是在触发器

2016-03-31 23:54:17 862

原创 使用Volley提交Json数据post

使用以下代码的时候,getParams()传递post请求,根本没有用,只能在构造方法里面传递JsonObject。在servlet中只能使用request.getInputStream()来获取输入流。因为没有设置对象的键值对,所以getParameter()也是没有办法获取的。 JsonRequest<JSONObject> jsonRequest = new JsonObject

2016-03-28 13:28:33 6799

原创 Gson的使用

安卓中自带的是json数据解析的是org.json.JSONObject; 感觉很多时候并不是很好使。Google使用GSon相对而言解析list,或者javaBean相对方便一点。import java.awt.List;import java.lang.reflect.Type;import java.util.ArrayList;import java.util.Iterator;i

2016-03-28 00:48:34 275

原创 Caused by: java.lang.NoSuchMethodError: org.apache.log4j.Logger.isTraceEnabled()Z

之前做的这个demo现在下载下来部署上之后一直出现这错误。Caused by: java.lang.NoSuchMethodError: org.apache.log4j.Logger.isTraceEnabled()Z at org.slf4j.impl.Log4jLoggerAdapter.isTraceEnabled(Log4jLoggerAdapter.java:81) at

2016-03-24 23:39:00 4111

原创 git使用的问题

1、TortoiseGit下载拉取推送代码时bad line length character 解决办法: 进入settings,network,ssh client ,选择TortoiseGitPLink.exe,不要选择TortoisePLink.exe2、将本地项目上传至github,官网就有提示,在你生成一个新的repository的时候。 echo “# test” >> READM

2016-03-19 04:04:56 2518

原创 求指定范围中的素数的等差数列

想了一下,没有想出更好的办法,就只能这么多层循环一下。import java.util.ArrayList;import java.util.Scanner;public class Main { public static boolean isPrime(int a) { if (a == 1) { return false; }

2016-03-16 15:40:58 629

原创 华为OJ高精度数的加减法

import java.util.Scanner;import javax.swing.text.html.HTMLDocument.HTMLReader.IsindexAction;public class Main { public static String add(String str1, String str2) { if (str1.length() < str2

2016-03-09 16:02:41 563

原创 华为OJ 计算字符串的距离

题目:描述 Levenshtein 距离,又称编辑距离,指的是两个字符串之间,由一个转换成另一个所需的最少编辑操作次数。许可的编辑操作包括将一个字符替换成另一个字符,插入一个字符,删除一个字符。编辑距离的算法是首先由俄国科学家Levenshtein提出的,故又叫Levenshtein Distance。 Ex: 字符串A:abcdefg 字符串B: abcdef 通过增加或是删掉字符”g”

2016-03-08 13:41:30 761

原创 华为oj,多线程。。保证四个线程按顺序循环输出

问题描述:有4个线程和1个公共的字符数组。线程1的功能就是向数组输出A,线程2的功能就是向字符输出B,线程3的功能就是向数组输出C,线程4的功能就是向数组输出D。要求按顺序向数组赋值ABCDABCDABCD,ABCD的个数由线程函数1的参数指定。[注:C语言选手可使用WINDOWS SDK库函数] 接口说明: void init(); //初始化函数 void Release(); //资源

2016-03-05 01:40:48 2964

原创 设置主线程等待子线程执行的方法

首先要注意的是: 1、java的Main线程结束之后,子线程还在运行。其实主线程已经退出了,但是JVM守护线程会等待所有的线程结束,才会退出。所以我们可以看到,子线程依然在继续执行。2、那么如何实现主线程等待子线程的执行之后再结束,这个就要用到CountDownLatch,设置要执行的线程的个数,然后再子线程的run方法中调用countDown()的方法,递减线程的计数。在主线程结束之前,调用aw

2016-03-02 22:35:08 3469

原创 Git,tortoise配置,下载github库

换了新电脑,都忘了怎么配置这些东西了,记录一下。使用tortois自带的PuTTYgen点击generate,生成随机秘钥。将公钥复制,粘贴在github的SSH keys里面然后再点击save private key将秘钥保存在本地如下图所示:然后,文件夹中点击右键,设置tortoise的setting,如下图:最后点右键,Git Clone,

2015-12-08 22:37:37 441

转载 字符编码笔记:ASCII,Unicode和UTF-8

转发: http://www.ruanyifeng.com/blog/2007/10/ascii_unicode_and_utf-8.html今天中午,我突然想搞清楚Unicode和UTF-8之间的关系,于是就开始在网上查资料。 结果,这个问题比我想象的复杂,从午饭后一直看到晚上9点,才算初步搞清楚。 下面就是我的笔记,主要用来整理自己的思路。但是,我尽量试图写得通俗易懂,希望能对其他朋友有用

2015-09-29 22:34:44 323

原创 将xml的数据写入swing树形结构

先简单的粘贴下代码,正在学习java的东西,正好用到swing,算是做个练习。API太多,还没有梳理太清楚,慢慢回顾。public class TreeFrame extends JFrame { public static final int WIDTH = 1100; public static final int HEIGHT = 615; private static

2015-09-24 23:48:15 726

zookeeper-3.4.6 eclipse

有些地方,ant eclipse执行不了,上传一下共享

2017-06-12

win10+VS2010+thrift0.9.3 改进

编译了好久,出了很多问题,终于还是编译成功了,共享一下。由于之前上传的资源还有一定的问题,有些cpp文件没有编译进去,使用的时候出现了连接错误,做出改进。

2017-05-25

win10+VS2010+thrift0.9.3

编译了好久,出了很多问题,终于还是编译成功了,共享一下。

2017-05-21

slf4j-api-1.7.19.jar

slf4j-api-1.7.19.jar

2016-03-24

windoes下的chardet模块

将文件压缩后,把整个文件夹拷贝至Python的安装目录\Python\Lib\site-packages, 即可使用。

2015-09-29

python-dev_2.7.9-1_i386

以python为例, 以下情况你是需要python-dev的 你需要自己安装一个源外的python类库, 而这个类库内含需要编译的调用python api的c/c++文件 你自己写的一个程序编译需要链接libpythonXX.(a|so) (注:以上不含使用ctypes/ffi或者裸dlsym方式直接调用libpython.so) 其他正常使用python或者通过安装源内的python类库的不需要python-dev.

2015-09-11

setuptools.tar.gz

setuptools.tar.gz,在linux环境下使用pymssql模块之前需要进行安装。

2015-09-08

pymssql-2.1.0.tar.gz

python链接数据库的模块,安装前需要安装freedts,Cython,以及setuptools

2015-09-08

freetds-0.82.tar.gz

freetds-0.82.tar.gz,在linux环境下使用pymssql的时候需要使用,解压缩后需要进行配置。

2015-09-08

java解析Excel jar包

java解析Excel的类库,很简单,调用相应的API就能实现Excel的数据读取。

2015-08-09

SHH链接MySQL的所有jar包

SHH链接MySQL的所有jar包,之前自己做的小网站就是用的这个,一般没有问题。

2015-07-28

QTP如何获取图片验证码,并去除空格。

解决QTP自动化测试获取图片验证码的问题,并且去除获取到的验证码的空格。

2014-11-15

Struts2学习笔记

Struts2学习笔记,从基础开始。结合Struct1 和WebWork。

2014-10-26

配置hibernate

hibernate的基础学习,并完成基本的链接测试。

2014-10-19

frameset与dtree的结合

frameset与dtree的结合,完成基本的页面显示功能。

2014-10-19

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除