evasnowind

8月 042019
 

目标

一台主节点,一台从节点

ES安装与配置

注意,集群配置完成前建议不要启动单个ES实例。
原因:默认参数启动会以单实例方式启动,创建各种文件夹、文件,可能干扰后续集群配置。

配置集群

修改配置文件

cluster.name: tipdm-es #es集群名称
node.name: es-node1    #es节点名称,每个节点的名称不能相同
node.master: true      #指定该节点是否有资格被选举成为master,默认是true
node.data: true        #指定该节点是否存储索引数据,默认为true。
 Continue reading »
8月 042019
 

出现该错误“Truncated incorrect DOUBLE value”时,极有可能是你写的mysql查询语句中所提供的字段,与表中字段类型不匹配。比如字段为字符型的,与数字进行比较,数字两侧没加引号;比如表中字段明明是字符串,但在where语句中偏偏直接写成了a=23而不是a=’23’。

解决:字段改成对应类型即可。

参考:https://zhidao.baidu.com/question/693223458186942564.html

7月 272019
 

默认情况下,如果在mac终端中执行shell脚本,会弹出窗口展示脚本执行输出。

工作中需求:执行shell脚本,不能展示输出。

解决:

问了下谷歌,搜索出如下答案,亲测可用。

  • 打开mac上的Automator程序,选择应用程序(application),选择shell脚本选项,将脚本放到界面中(用引号括起来),或是直接将文件拖拽到界面中
  • 执行,测试没问题即可保存。

原文: Continue reading »

6月 142019
 

正在学习:

  • spring cloud主要组件系统的过一遍,之后会开始源码分析
  • zookeeper
  • Java多线程、并发相关,系统的过一遍,会进行源码分析,会写一些文章记录下
  • Kafka使用
  • 每日刷1-3题leetcode,数据结构与算法回炉重学中,感觉收获很大

主要想读读源代码,并将源代码阅读所学的东西记录下来,目前想做这些: Continue reading »

5月 192019
 

有关null的使用

不要在Set中使用null,或者把null作为map的键值。使用特殊值代表null会让查找操作的语义更清晰。

如果你想把null作为map中某条目的值,更好的办法是 不把这一条目放到map中,而是单独维护一个”值为null的键集合” (null keys)。Map 中对应某个键的值是null,和map中没有对应某个键的值,是非常容易混淆的两种情况。因此,最好把值为null的键分离开,并且仔细想想,null值的键在你的项目中到底表达了什么语义。

如果你需要在列表中使用null,并且这个列表的数据是稀疏的,使用Map<Integer, E>可能会更高效,并且更准确地符合你的潜在需求。

此外,考虑一下使用自然的null对象——特殊值。举例来说,为某个enum类型增加特殊的枚举值表示null,比如java.math.RoundingMode就定义了一个枚举值UNNECESSARY,它表示一种不做任何舍入操作的模式,用这种模式做舍入操作会直接抛出异常。

如果你真的需要使用null值,但是null值不能和Guava中的集合实现一起工作,你只能选择其他实现。比如,用JDK中的Collections.unmodifiableList替代Guava的ImmutableList

Optional的使用

大多数情况下,开发人员使用null表明的是某种缺失情形:可能是已经有一个默认值,或没有值,或找不到值。例如,Map.get返回null就表示找不到给定键对应的值。
Continue reading »

4月 142019
 

注意:本文档基于google guava 28 wiki

Joiner

连接器

将字符串拼接

Joiner joiner = Joiner.on("; ").skipNulls();
return joiner.join("Harry", null, "Ron", "Hermione");

返回Harry; Ron; Hermione
skipNulls()方法是直接忽略null,使用useForNull(String)方法可以给定某个字符串来替换null,即

Joiner joiner = Joiner.on("; ").useForNull("替换字符串");

Continue reading »

3月 222019
 

elasticsearch启动时报错:

Java HotSpot™ 64-Bit Server VM warning: INFO: os::commit_memory(0x00000000e5330000, 449642496, 0) failed; error=‘Cannot allocate memory’ (errno=12)

There is insufficient memory for the Java Runtime Environment to continue.
Native memory allocation (mmap) failed to map 449642496 bytes for committing reserved memory.
An error report file with more information is saved as:
/opt/elasticsearch/hs_err_pidxxx.log

原因:没有足够的内存供JRE运行
解决:修改es配置参数

vim config/jvm.options

修改JVM参数,将其改小即可:


-Xms512m  
-Xmx512m 
2月 242019
 

查看tag
git show
git tag -l “v1.5” //加上筛选条件

创建tag
git tag 版本号
git tag -a v1.5 -m “my version 1.5” //加上备注信息
git tag -a v1.5 //会打开默认文本编辑器
git tag -s v1.5 -m ‘my signed 1.5 tag’ //用 GPG 来签署标签

推送到远端
git push origin [tagname] //push单个tag
git push [origin] –tags //push所有tag

1月 252019
 

建议使用pinyin4j,作为老牌的拼音转汉字解决方案,个人感觉比较可靠。小站用这个应该够用了。
可以参考该帖子:使用 pinyin4j API 将汉字转换为拼音 (学习笔记)
hutool工具包中有一个PinyinUtil工具类,目前已被弃用,不推荐使用,因为某些汉字可能会被转错,比如下图中的“馨”: