- 博客(115)
- 资源 (16)
- 收藏
- 关注
原创 随机生成几位字母加数字的混合字符串
日常开发中,我们可能需要一些随机字符串做测试,可能是4位,也可能是8位,如下是一个随机生成8位字符串的工具类,可根据需要,改成自己的需要的:import java.util.Random;public class RandomGenerator{ //如果字符种类不够,可以自己再添加一些 private static String range = "012345
2018-02-05 15:10:43 7300
原创 创建maven项目指定自定义-DarchetypeCatalog=file://archetype-catalog.xml遇到的问题
在《Maven实战》第353页,书上说maven-archetype-plugin插件可以从internal、local、remote、file://...、http://...这几个地方读取archetype-catalog.xml文件。然后我也自定义了一个archetype-catalog.xml文件,放在任意一个目录下,内容为:<archetype-catalog xsi:sch
2018-01-25 11:26:09 5038
原创 使用cargo-maven2-plugin插件自动化部署项目时遇到的问题
在《Maven实战》第239页-----使用cargo实现自动化部署,其中部署至本地web容器有两种方式,分别为standalone模式和existing模式,我选择的是existing模式,下面是我的配置,在account-web的pom文件中: org.codehaus.cargo cargo-maven2-plugin 1.0
2018-01-23 17:14:26 1965 1
原创 构建maven多模块项目时报错:Child module of does not exist
在许晓斌著《maven实战》第209页,按照书上步骤在hudson中构建一个account的多模块maven项目,构建命令为mvn clean deploy ,意思为构建完成部署到私服仓库中,但是构建过程中出错了:[ERROR] The build could not read 1 project -> [Help 1][ERROR] [ERROR] The project
2018-01-23 11:48:29 16375 1
原创 在hudson中使用QQ邮件作为告警反馈
hudson是开源的持续集成服务器软件,后来另一个分支叫jenkins。在hudson首页点击“系统管理”,然后点击“系统设置”,可以找到“邮件通知”部分设置邮件发送信息,做测试的时候可以选择qq邮件作为邮件服务器,不过要注意,qq邮件要想在第三方使用: 首先要开启POP3/SMTP服务,位置在QQ邮箱首页---“设置”-----“帐户”最下面: 其次开启POP
2018-01-23 11:07:40 329
原创 开发OSGi中遇到的一些问题记录
问题一: 在《深入理解OSGi---Equinox原理、应用与最佳实践》第325页至329页按照书上指示安装了Spring DM,并且运行了简单的例子,发现运行报错:Caused by: java.lang.IllegalStateException: The System Bundle was updated. The framework must be restarted t
2018-01-18 17:24:53 985
原创 建立基于Equinox的OSGi编译与调试环境
在上一篇博客中我按照书中介绍搭建了第一种开发环境(控制台形式,用jar方式启动);现在我们继续跟着书上搭建第二种开发环境,在《深入理解OSGi---Equinox原理、应用于最佳实践》第111页出现了一个对话框,书中提示让我们打开这个对话框使用Software Site添加Bundle,可是对于第一次开发osgi的人来说,这个对话框从哪里打开的却不清楚,书中介绍的不够详细。从书中新建第一个osgi
2018-01-12 14:43:19 1154
原创 在Equinox OSGi shell中使用install命令安装bundle出现的错误
在《深入理解OSGi---Equinox原理、应用于最佳实践》一书第109页,按照书上例子启动Equinox 控制台后,紧接着下载随书代码资源,按照如下命令安装bundle: osgi>install initial@reference:file://d:/Chapter5/bundlehelloworld.jar#报错信息gogo: BundleException
2018-01-10 17:50:35 1398 1
原创 运行Equinox控制台报错Could not find bundle: org.eclipse.equinox.console
我对Java的每一种技术都感兴趣,尤其是在了解到OSGi时,虽然这几年无人问津,但是我决定去学习一下,买了一本周志明编著的《深入理解OSGi---Equinox原理、应用于最佳实践》一书,在看到第三章时,书上说要运行本节的例子请先看第5章将Equinox的开发环境搭建好,书中例举了三种不同环境搭建方案;最简单的一种是安装好jdk和eclipse,然后在eclipse的安装目录下的plugins目录
2018-01-10 16:41:53 2367 1
原创 学习mongodb时遇到的一些问题
我学习mongodb时参考的书籍是《MongoDB权威指南》第二版;有一些典型的问题需要记录下来。因为书比较老了,第二版是2014年出版的,书中用的版本是2.4.0,几年过去了,mongodb版本变化比较大,如果用最新版运行书中的例子可能会发生错误。 1.启动mongod服务以后,你可以使用mongodb提供的javascript shell连接到mongodb进行操作;但是有时你在写命
2018-01-09 19:03:06 439
原创 mongodb副本集无法启动的解决方案
在《MongoDB权威指南》第172页建立副本集这一部分,跟着书上建立一个包含3个成员的副本集,但是不管我操作多少遍就无法启动副本集,刚开始我用的是和书中一样的版本mongodb-2.4.0,linux版本为centos7;前面一路跟着例子走,都正常,就在副本集这里不行;后来我以为是版本的问题,又更换了mongodb-2.6.3版本、mongodb-3.6.1版本也都不行。2.x和3.x的错误其实
2018-01-05 14:00:34 4622
原创 线程任务接口Callable使用void做为返回类型
callable接口与runnable接口的区别之一就是callable接口可以有返回值,并且callable接口提供了泛型来作为返回的类型。callable接口的执行方法是call,区别于runnable接口的run方法:@FunctionalInterfacepublic interface CallableV> { /** * Computes a result, o
2017-12-22 17:18:02 4517
原创 MessagePack编解码功能测试代码补齐
在李林峰《netty权威指南第二版》中第123页,作者将之前的EchoServer和EchoClient改造,同时编写自定义MsgpackEncoder和MsgpackDecoder编解码类;测试传输pojo对象的编解码功能,在改造完clien端后,123页下面说服务端代码与客户端类似,请参考书中附带的源码;但是源码中并没有这一节内容,新手如果想测试一遍书中的例子,一时写不出来,参考这里,其实很简
2017-12-18 20:34:13 779
原创 使用logstash输出到elasticsearch中文乱码的解决方案
logstash版本为5.5.3,elasticsearch版本有两个,分别为2.3.0和5.5.3;其中elasticsearch-2.3.0运行在windows机器上,elasticsearch-5.5.3运行在linux机器上。logstash运行在windows机器上。本文所探讨的由logstash输出到elasticsearch所导致的中文乱码问题,其根本原因是操作系统编码不一样的问题。
2017-12-07 20:24:46 14767 2
原创 ExecutorService的shutdownNow方法注意事项
当通过shutdownNow来强行关闭ExecutorService时,它会尝试取消正在执行的任务并返回所有已提交但尚未开始的任务;注意:调用shutdownNow在关闭过程中只会返回尚未开始的任务,而不会返回正在执行的任务。然而,我们无法通过常规方法来找出哪些任务已经开始但尚未结束。这意味着我们无法在关闭过程中知道正在执行的任务的状态,除非任务本身会执行某种检查。public class
2017-12-04 18:41:47 2431
原创 springboot集成JestClient连接elasticsearch-5.x
需要的依赖dependency> groupId>io.searchboxgroupId> artifactId>jestartifactId> version>5.3.3version>dependency>dependency> groupId>org.elasticsearchgroupId> artifactId>elasticsearchartifa
2017-11-28 18:59:12 9839
原创 使用JestClient连接elasticsearch-5.x对数据进行分组聚合
原本数据存放在mysql中,项目需求是从mysql中查出来计算推送给前端;但是随着数据量增大,我们的查询语句也复杂,性能会明显下降。所以就考虑干脆存放到elasticsearch中,查询计算都方便;于是去和公司专门负责es平台服务的人对接,负责人说elasticsearch5.x在连接集群方面对tcp支持不如http性能好,我没研究过两种方式的性能,所以不好下结论,但是人家推荐我使用http的方式
2017-11-28 17:22:38 11708 5
原创 logstash启动文件conf之filter模块中字段转换问题
我的logstash是从kafka中读取数据,取出来的数据格式为"zhangsan_1_25_student_15064573848";一个人的姓名_性别_年龄_职业_时间戳,我的需求是将每个字段分别存到elasticsearch中,所以首先需要对取出来的字符串拆分,以便模板能映射各个字段filter{ mutate{ split => ["message","_"]
2017-11-28 15:12:56 2989 2
原创 使用logstash的logstash-input-kafka插件读取kafka中的数据
logstash版本为5.5.3,kafka版本为2.11,此版本默认内置了kafka插件,可直接配置使用,不需要重新安装插件;注意logstash5.x版本前后配置不太一样,注意甄别,必要时可去elasticsearch官网查看最新版配置参数的变化,例如logstash5.x版本以前kafka插件配置的是zookeeper地址,5.x以后配置的是kafka实例地址。input{
2017-11-28 12:54:52 41833 7
原创 采用freemarker模板引擎作为Java邮件模板
项目需要发送邮件提醒,格式类似于下面这样,总之要换行,排版整齐1.姓名:2.年龄:3.性别: 刚开始的时候,我采用在字符串之间用“\n”来拼接,发现请求返回成功,但是没有收到邮件,换成“\r"也不行;但是换成”\t“就可以收到邮件,只不过\t不是我要的效果。再后来尝试用""来拼接就成功了,既可以收到邮件,也换行了,说明我所调用的邮件服务mime类型是web型。
2017-11-27 20:29:57 3971
原创 为windows环境的elasticsearch更新license授权文件
我win7电脑安装了elasticsearch-2.3.0,一个月以前安装了shield插件,为了增加基本的用户名和密码认证;安装shield插件,首先要安装license,有效期一个月。当时不知道是过期了,只知道elasticsearch启动不了,然后去看日志,报:operation due to expired license. Cluster health, cluster stats
2017-11-27 19:24:06 2491
原创 在一台linux机子上安装部署3个mysql实例
这里以centos7为例,mysql版本为5.6.10,由于是在一台机器上安装多个相同服务,所以最好使用二进制方式配置启动。下载一份mysql二进制包,解压3份,分别命名为mysql-1、mysql-2、mysql-3. 下载命令:# wget https://downloads.mysql.com/archives/get/file/mysql-5.6.10-linux-glib
2017-11-07 19:10:46 1100
原创 解决mycat1.5无法登陆管理控制台的问题
mycat数据端口默认为8066,管理端口默认为9066;mycat提供了类似于数据库的管理监控方式,此处以在windows7上操作为例,其中通过命令行的方式为 不过似乎出了点问题,报错了: ERROR 1045 (HY000): Access denied for user 'root' with host '127.0.0.1' ;刚开始我以为是没有权限,就在本地mysq
2017-11-03 16:29:41 11708
原创 elasticsearch-5.5.3伪分布式集群开发过程中问题总结
一、X-pack修改密码问题 伪分布式集群,一台机子上3个实例,每个实例都安装了x-pack,肯定不能用默认的密码,必须修改。我以为三个实例要分别修改,当我先启动第一个实例,修改完密码后;把第一个kill掉,再启动第二个实例,再修改时报错了:{"error":{"root_cause":[{"type":"illegal_state_exception","reason":"p
2017-11-01 11:10:36 4040
原创 logstash在向elasticsearch输出数据时的动态映射模板问题
使用logstash-input-jdbc插件同步mysql数据到elasticsearch,系统会使用一个默认的动态映射模板,模板名字为logstash。在启动logstash过程中你会看到如下信息Using mapping template from {:path=>nil}Attempting to install template{:manage_template=>{"templ
2017-11-01 10:48:42 8239 5
原创 spring-data-elasticsearch和shield插件结合
在springboot项目中使用elasticsearch,可以直接使用spring-data集成elasticsearch的方式,也就是这个依赖dependency> groupId>org.springframework.bootgroupId> artifactId>spring-boot-starter-data-elasticsearchartifactId>depen
2017-10-13 16:37:13 2022
原创 logstash-5.5.3离线安装logstash-input-jdbc插件
生产环境的虚拟机不能联网;虽然logstash是开箱即用,即解压后就能使用,但是对于logstash-input-jdbc插件来说,一般是在线安装的(./logstash-plugin install logstash-input-jdbc),就算你是在github上https://github.com/logstash-plugins/logstash-input-jdbc/下载源码,修改G
2017-10-11 18:56:16 5846 9
原创 logstash-input-jdbc插件配置细节
数据库里面有一张表,字段如“学生id”被定义为student_id,“班级名”被定义为class_name等,而在项目中实体类属性一般都是驼峰命名法,如上两个属性在Java实体类中被定为studentId、className;假如你用logstash-input-jdbc将mysql数据同步到elasticsearch后,如果你的sql没有对字段起别名,那么elasticsearch中存储的字段就
2017-10-10 11:27:29 5214 6
原创 Java客户端连接elasticsearch5.5.3实现数据搜索(基于xpack安全管理)
项目中有一个功能是数据搜索,要求可以根据用户id、帐户名、邮箱、手机号、昵称、中英文姓名等来精确或模糊查询用户,并且支持按以上查询类型排序,且支持分页;由于当时设计用户表时只有userId为主键,其他几乎没有索引,所以如果按照sql来实现这个功能,那性能可想而知。项目已经上线,为那些字段加索引也不太好,况且不知道哪个字段查询的最频繁,索引加多也浪费;在网上得知一些著名的开放平台像这样的接口都是使用
2017-10-09 19:19:32 9707 6
原创 Spring Cloud Sleuth基于消息中间件收集时自定义topic
分布式服务跟踪spring cloud sleuth收集链路的方式有两种:http方式收集和消息中间件收集。这里主要说一下基于消息中间件收集时的一些技巧。不管你是采用rabbitmq还是kafka都适用。我这里用的是kafka收集,我搭建了一套kafka集群,用来测试链路收集;由于只有一套kafka环境,而我的应用却有dev、test等好几个环境,如果共用一个kafka集群的话,而且topic都叫
2017-09-26 19:42:52 2804 1
原创 ELK中的logstash启动后无输出
在《elasticsearch技术解析与实战》第370页第10章ELK应用,书中以收集Nginx日志为例来说明;我这里用的版本分别是elasticsearch-2.3.0、logstash-2.3.0、kibana-4.5.0;和书中的版本不同,在373页我按照书上的例子取一条典型的nxlog日志,保存文件名为nxlog_access.log,编写配置文件,文件名为logstash_nxlog.c
2017-09-18 16:33:26 14065 2
原创 spring-data-redis集成的两种方式
spring-data-redis集成有两种方式:一种是Java代码集成;另一种是xml方式集成。首先是xml集成方式:缓存配置 -->bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig"> property name="maxIdle" value="${redis.cache.MaxIdle}
2017-09-12 10:52:53 5927
原创 采用mustache语言作为elasticsearch搜索请求的预处理模板
在朱林编著的《elasticsearch技术解析与实战》一书中第164页至166页----搜索模版这一部分,书中例举了三种使用模板的方式,在这里要着重提一下最后一种,书中原文:可以使用Mustache语言作为搜索请求的预处理,它提供了模板,然后通过键值对来替换模板中的变量。把脚本存储在本地磁盘中,默认的位置为:elasticsearch\config\scripts,通过引用脚本名称进行使用。
2017-09-11 19:52:56 1608
原创 安装elasticsearch5.5遇到的问题记录
第一个错误是:Exception in thread "main" ception: property [elasticsearch.version] is missing for plugin [head]原因:elasticsearch5.5跟2.X区别还是很大的,2.X版本可以在命令行直接输入plugin install mobz/elasticsearch-head安装head插件
2017-08-31 12:23:23 7274
原创 Spring Cloud Sleuth与Zipkin整合时遇到的问题记录
在《spring cloud 微服务实战》第402页-----将spring cloud sleuth的跟踪信息通过消息中间件收集发送到zipkin这一部分,在之前你已经按照第一种方式(http方式)将跟踪信息收集到了zipkin上,现在又跟着书上用消息中间件来收集。紧接着书上说只要对之前的trace-1和trace-2以及zipkin-server这三个项目做一些改造就可以实现,书上分两步来完成
2017-08-28 20:23:35 27234 11
原创 将以逗号分隔的id字符串按每20个id截取分组
我这里id字符串形如:String a="1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40," + "41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,
2017-08-23 20:39:31 1243
原创 关于在Spring Cloud Feign工程中使用Hystrix配置不生效的问题
在《spring cloud 微服务实战》第211页--------Hystrix配置这一部分,书上说在Spring Cloud Feign中,还引入了服务保护与容错的工具Hystrix,默认情况下,Spring Cloud Feign会为将所有Feign客户端的方法都封装到Hystrix命令中进行服务保护。如果你用的是Dalston版本,请注意:Feign对Hystrix的支持默认是关闭的,如果
2017-08-14 11:32:17 18301 15
原创 关于在Spring Cloud Feign工程中使用Ribbon配置不生效的问题
在《spring cloud 微服务实战》第209页,声明式服务调用:Spring Cloud Feign---------Ribbon配置这一部分。书上介绍说:由于Spring Cloud Feign的客户端负载均衡是通过Spring Cloud Ribbon实现的,所以我们可以直接通过配置Ribbon客户端的方式来自定义各个服务客户端调用的参数,而针对各个服务客户端进行个性化配置的方式也采用
2017-08-09 11:28:41 10285 2
原创 java.util.LinkedHashMap cannot be cast to com.wisely.entity.User
在《spring cloud 微服务实战》第168页---------请求合并这一部分,findAll方法按照书上写的运行会报错:java.lang.ClassCastException: java.util.LinkedHashMap cannot be cast to com.wisely.entity.Userpublic List findAll(List ids) {
2017-08-08 14:34:32 4817
原创 Request caching is not available. Maybe you need to initialize the HystrixRequestContext?
在《spring cloud 微服务实战》书中第159页-----请求缓存这一部分,通过继承HystrixCommand的方式实现的命令,开启请求缓存只需通过重载getCacheKey()方法,@Overrideprotected String getCacheKey() {//开启请求缓存 System.out.println("走了缓存");//打印一下什么时候会触发缓存
2017-08-04 18:48:35 5668 5
Elasticsearch学习资料整理
2018-01-12
logstash-input-jdbc-4.2.3离线安装包
2017-10-11
kafka-manager-1.3.3.13.zip
2017-08-14
报表工具Highcharts
2017-07-17
批量生成access.log的demo
2017-07-17
inotify-java-2.1.jar
2017-07-10
java开发二维码所需QRCode.jar包,附带demo
2016-03-01
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人