CentOS安装Redis
123456//如果没有yum源wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpmrpm -ivh epel-release-6-8.noarch.rpmyum install -y http://rpms.famillecollet.com/enterprise/remi-release-6.rpmyum install redis 启动 123service redis start ornohup redis-server > /dev/null 2>&1 & 客户端 1redis-cli 配置文件 1/etc/redis.conf 修改为允许远程连接 12bind ip注释掉protected-mode no 打开防火墙端口, 123vim /etc/ ...
Hexo next主题使用gitment评论
之前关闭的关闭,翻墙的翻墙,最后选择了Hypercomments,最近发现全部收费了。只好再换,想来github总不会挂了。于是转用gitment. 如何使用可以参照官网 https://github.com/imsun/gitment#get-started 我的修改过程首先,注释掉Hypercomments的配置。然后找到 12345678910111213gitment: enable: true mint: true # RECOMMEND, A mint on Gitment, to support count, language and proxy_gateway count: true # Show comments count in post meta area lazy: false # Comments lazy loading with a button cleanly: false # Hide 'Powered by ...' on footer, and more language: # Force language, or au ...
SpringCloud2.0入门3-新的eureka依赖
前言SpringCloud2.0推出有一段时间了,是要学习1.5+还是从2.0开始?犹豫的原因是资料不全,目前现有的资料大部分是1.0的。但作为学习者,肯定要学习最新的。不如,先试试。 搭建Eureka注册中心关于Eureka的介绍,前文《SpringCloud入门1-服务注册与发现(Eureka)》已经学习过了。这次主要针对2.0重新刷新一下。 Maven or Gradle看官方文档,可以看出spring是特别希望大家都转gradle的,我也用了一段时间,最后发现国内这个真不流行。这次转为maven构建。 项目搭建新建一个springboot项目,添加eureka server的依赖。 项目地址: https://github.com/Ryan-Miao/spring-cloud-demo/tree/master/eureka-server 123456789101112131415161718192021222324252627282930313233<properties> <project.build.sourceEncoding>UT ...
SpringCloud2.0入门4-springboot-admin监控
前言上一节为springboot项目添加springboot-admin监控 学习了基于springboot1.5自己注册到admin的方法。接下来学习结合Eureka使用以及2.0的改变。 1.5spring-boot-admin集成eureka我们继续上一节的项目修改,admin-server依赖修改如下 123456789101112131415161718192021222324252627<dependencies> <dependency> <groupId>de.codecentric</groupId> <artifactId>spring-boot-admin-starter-server</artifactId> </dependency> <dependency> <groupId>de.codecentric</groupId> <art ...
Linux文件属性,权限和修改文件权限,所属者和所属组
Linux中文件的属性Linux的文件属性,简单的说,有这么几种 权限 所属者 所属组 下面是一个文件 1-rw-r--r--. 1 root root 51894267 May 15 12:58 kibana-5.6.5-linux-x86_64.tar.gz 对应关系为 123-rw-r--r--. 1 root root 51894267 May 15 12:58 kibana-5.6.5-linux-x86_64.tar.gz[ 1 ][ 2 ][ 3 ][ 4 ][ 5 ][ 6 ][ 7 ][ 权限 ][连结][拥有者][群组][文件容量][ 修改日期 ][ 文件名 ] Linux中的文件权限上述权限一栏可以3个一组,分为3组 1-, rw-, r--, r-- 注意到,第一个字符单独分组,这个表示文件类型。 当为[ d ]则是目录,例如上表档名为『.gconf』的那一行; 当为[ - ]则是文件,例如上表档名为『install.log』那 ...
添加PMD插件扫描潜在的bug
上一节使用checkstyle来规范你的项目主要解决了代码编码规范问题,比如缩进换行等。这次继续代码健康工具类PMD。 什么是PMDPMD真的不像checkstyle这样的东西所见即所得啊,去官网找了半天也没有找到解释。官网都直接说是PMD。 We’ve been trying to find the meaning of the letters PMD - because frankly, we don’t really know. We just think the letters sound good together. 简单来说,PMD是一个代号,是一个静态代码检测工具。它可以用来检查 潜在的bug:空的try/catch/finally/switch语句 未使用的代码:未使用的局部变量、参数、私有方法等 可选的代码:String/StringBuffer的滥用 复杂的表达式:不必须的if语句、可以使用while循环完成的for循环 重复的代码:拷贝/粘贴代码意味着拷贝/粘贴bugs 总之,这是一个辅助我们检测潜在bug的工具,大大减少了人工审查成本,提高编码效率。 ...
使用checkstyle来构建你的项目规范
Checkstyle是什么自从做了程序员,关于格式化的讨论就不曾中断过,到底什么才是正确的,什么才是错误的,到现在也没有完整的定论。但随着时间发展,渐渐衍生出一套规范出来。没有什么绝对的正确和错误,关键在于规范的定义。最出名的就是google style guide. Checkstyle就是以这种风格开发出的一个自动化插件,来辅助判断代码格式是否满足规范。 为什么要用,我们需要吗最初,我使用checkstyle是因为公司要求,在经历过一段痛苦的格式重构阶段后,渐渐习惯了这样的格式。到后来,我新建项目就会把这个加进去,最多改几条规则。前一段时间,由于赶项目进度,其他人不熟悉,只好先关掉了。到后面发现真的每个人的风格都不一样,都看着代码怪怪的。所以,又加回来了。对于多人合作的项目,还是建议采用这样的规范,内容不必拘泥于google-checks,找出适合你们团队的风格就好。 如何使用在gralde中使用在gralde中用法比较简单。示例项目: https://github.com/Ryan-Miao/springboot-security-demo/blob/master/confi ...
为springboot项目添加springboot-admin监控
我们知道spring-boot-actuator暴露了大量统计和监控信息的端点,spring-boot-admin就是为此提供的监控项目。 先来看看大概会提供什么样的功能 从图中可以看出,主要内容都是由spring boot actuator来提供的。更多关于actuator的信息参见Springboot actuator 接下来,hello world时间。 server端server端是一个单独的springboot项目,主要负责收集和展示监控指标,提供了ui page。 项目地址: https://github.com/Ryan-Miao/springboot-admin-demo 新建一个springboot项目,可以使用idea自带的spring initializr. 主要添加以下两个依赖 12345678910111213141516171819202122<dependencyManagement> <dependencies> <dependency> <groupId>de.codecent ...
OpenFeign封装为springboot starter
OpenFeign是什么随着业务的增多,我们的单体应用越来越复杂,单机已经难以满足性能的需求,这时候出现了分布式。分布式通讯除了RPC, REST HTTP请求是最简单的一种方式。OpenFeign是Netflix开源的参照Retrofit, JAXRS-2.0, and WebSocket的一个http client客户端,致力于减少http client客户端构建的复杂性。 官方用法github提供了一个简单的demo,很容易理解。 123456789101112131415161718192021interface GitHub { @RequestLine("GET /repos/{owner}/{repo}/contributors") List<Contributor> contributors(@Param("owner") String owner, @Param("repo") String repo);}static class ...
MongoDB分页的Java实现和分页需求的思考
前言传统关系数据库中都提供了基于row number的分页功能,切换MongoDB后,想要实现分页,则需要修改一下思路。 传统分页思路假设一页大小为10条。则 123456789101112//page 11-10//page 211-20//page 321-30...//page n10*(n-1) +1 - 10*n MongoDB提供了skip()和limit()方法。 skip: 跳过指定数量的数据. 可以用来跳过当前页之前的数据,即跳过pageSize*(n-1)。limit: 指定从MongoDB中读取的记录条数,可以当做页面大小pageSize。 所以,分页可以这样做: 1234567//Page 1db.users.find().limit (10)//Page 2db.users.find().skip(10).limit(10)//Page 3db.users.find().skip(20).limit(10)...... ...