自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

jacklife的博客

技术的道路上从未有尽头

原创 k8s 以statefulset方式部署zookeeper集群

k8s 以statefulset方式部署zookeeper集群 参考 k8s官网zookeeper集群的部署,数据挂着方式改成通过本地方式创建的pv; https://kubernetes.io/docs/tutorials/stateful-application/zookeeper/ 1、...

2019-05-31 17:41:47 4460 0

原创 springMvc集成swagger问题记录

springMvc集成swagger问题记录 1. springMvc集成swagger springMvc集成swagger有几种方式,这里选取其中的一种。(默认springMvc项目搭建完毕,添加swagger) (1)swagger的maven依赖 &...

2019-01-18 17:00:39 311 0

原创 springboot集成定时任务框架quartz

springboot集成定时任务框架quartz quartz框架可以很方便的执行定时任务,任务可以持久化到数据库中,这里使用的数据库为postgres。 集成步骤: 1. quartz和数据库驱动maven依赖 <dependency&amp...

2019-01-16 14:17:40 393 1

原创 Springboot集成mybatis

Springboot集成mybatis 1.添加maven依赖 包括mybatis和要连接的数据库驱动,这里我连接的是postgres,使用MySQL的换成对应到依赖即可。 <dependency> ...

2019-01-14 17:18:12 97 0

原创 mabatis 多参数包含list时,使用foreach的用法

mabatis 多参数包含list时,使用foreach的用法 (1)单个参数为list 注意:使用@param注解时,mapper指定了参数名,xml中需要严格匹配 dao部分的mapper public void getTags(@Param("tagIdList")Lis...

2019-01-07 13:53:10 1598 0

原创 mybatis对特殊字符的模糊查询

mybatis对特殊字符的模糊查询 最近开发一个功能时遇到的问题,pg数据库里面存储的有包含"_"下划线的名字时,模块查询使用 下划线 作为关键字进行模块查询时,会把所有数据查出来,发现是使用LIKE关键字进行模糊查询时,%、下划线 和 [] 单独出现时,会...

2018-12-28 14:38:12 2205 0

原创 springcloud服务注册中心注册中心Eureka配置

springcloud服务注册中心注册中心Eureka配置1.springcloud和springboot的版本兼容性2. maven配置3.在springboot启动启动代码中添加@EnableEurekaServer注解4. springboot配置文件 1.springcloud和sprin...

2018-12-19 22:46:11 211 0

原创 Elasticsearch去重查询

1、前言 最近遇到一个es数据查询去重的需求,我这边需要的是获取去重后的结果,查询官网资料和各位大神的经验后,总结一下elasticsearch去重查询功能。 2、Elasticsearch去重功能 关系型数据库中,比如MySQL,可以通过distinct进行去重,一般分为两种: ...

2018-11-21 11:21:13 23498 0

原创 Hadoop集群搭建

Hadoop集群搭建 1. Hadoop集群运行基础环境 Hadoop集群搭建需要jdk和ssh工具,首先安装着两个工具。 1.1 安装jdk Hadoop是用java语言开发的,Hadoop需要运行在jdk平台上; 我这里用的是jdk-8u144-linux-x64.tar.g...

2018-11-02 11:27:59 105 0

原创 springboot集成swagger2

前言 Swagger是一个规范且完整的框架,提供描述、生产、消费和可视化RESTful Web Service。可以为已有项目的生成具备执行能力的样式化API文档,极大的方便前后端程序员进行接口的对接整合。springboot是我们常用的开发框架,这篇文章主要介绍怎么在springboot中集成...

2018-08-27 10:37:07 99 0

原创 docker commit 命令

简介 在软件开发中经常需要保存软件状态,比如git 中每次提交的代码都会有版本号,可以根据提交的版本号进行恢复。docker中通过docker commit 命令提供了一个保存镜像状态的方式。 使用 比如有一镜像 adaptor 1. 通过docker run -d --name ad...

2018-08-24 14:35:28 2873 1

原创 prometheus告警模块ALTERMANAGER中抑制规则的使用

prometheus服务端通过配置文件可以设置告警,下面是一个告警设置的配置文件alert.yml: groups: - name: goroutines_monitoring rules: - alert: TooMuchGoroutines expr: go_gorout...

2018-08-23 15:46:26 3933 0

翻译 prometheus告警

1. 告警概述 prometheus的告警管理分为两部分。通过在prometheus服务端设置告警规则, Prometheus服务器端产生告警向Alertmanager发送告警。 然后,Alertmanager管理这些告警,包括静默,抑制,聚合以及通过电子邮件,PagerDuty和HipChat...

2018-08-23 10:35:36 3419 0

转载 PowerMock与Mockito使用教程

简介 Mockito无法实现对静态函数、构造函数、私有函数、Final 等函数的模拟,PowerMock是一个Java模拟框架,可用于解决通常被认为很难甚至无法测试的测试问题。 使用PowerMock,可以模拟静态方法,删除静态初始化程序,允许模拟而不依赖注入等等。 PowerMock通过在...

2018-08-22 14:45:24 3374 0

原创 go测试框架Convey + Monkey的使用

前言 常用的go语言测试框架包括Convey、Stub、Mock、Monkey等,用过之后发现比较好用的是Convey+Monkey,Convey是作为外层框架,Monkey可以为函数、方法等打桩,这里介绍几个Convey+Monkey的使用例子。 安装 go get github.co...

2018-08-22 10:01:26 5696 0

原创 mockito使用教程

简介 Mockito 是一个简单流行的 Mock 框架。它能够帮我们创建 Mock 对象,保持单元测试的独立性。 官方文档:http://static.javadoc.io/org.mockito/mockito-core/2.21.0/org/mockito/Mockito.html ...

2018-08-17 09:10:41 2169 0

原创 golang日志框架之logrus

本文转载自姜总 golang日志库 golang标准库的日志框架非常简单,仅仅提供了print,panic和fatal三个函数对于更精细的日志级别、日志文件分割以及日志分发等方面并没有提供支持。所以催生了很多第三方的日志库,但是在golang的世界里,没有一个日志库像slf4j那样在Java中...

2018-08-14 17:14:04 39587 7

原创 Go语言中加载.yml配置文件的方式

前言 yml文件是配置文件中常见的一种,通过配置文件的方式来加载配置更具有灵活性,这里介绍一种go语言中加载.yml配置文件的方式。 1 安装jinzhu/configor库 这里我们使用的是github上一个开源的库,github.com/jinzhu/configor,安装方式 ...

2018-08-14 16:48:55 1685 0

原创 Go语言编程学习笔记----4 并发

4.1 并发基础 在CSP系统中,所有的并发操作都是通过独立线程以异步运行的方式来实现。这些线程必须通过在彼此之间发送消息,从而向另一个线程请求信息或者将信息提供给另一个线程。 4.2 协程 进程(process)、进程内的线程(thread)以及进程内的协程(coroutine,也叫轻...

2018-08-14 11:04:03 83 0

原创 Linux及shell脚本学习笔记----7 重定向

1 重定向 定义:就是将原本应该从标准设备输入的数据,改由其他文件或者设备输入;或将原本该输出到标准设备的内容,改而输出到文件或者其他设备。 2 IO重定向 2.1 重定向符号 > > & < | ...

2018-08-14 11:02:11 83 0

原创 Linux及shell脚本学习笔记----6 函数

1 函数 1.1 定义 function NAME(){ command1 command2 ... } 省略关键字function NAME(){ command1 ... } 例子: #!/bin/bash function s...

2018-08-14 11:01:33 71 0

原创 Linux及shell脚本学习笔记----5 流程控制

1 判断 1.1 if/elif/else的使用 语法结构 if expression1; then command1 elif expression2; then command2 elif expression3; then com...

2018-08-14 11:00:50 62 0

原创 Linux及shell脚本学习笔记----4 shell编程基础

6.1 shell内建命令 type 查看命令是不是内建命令 “ . ”(点号) 点号用于执行某个脚本,没有加执行权限也可以运行: . ./hello.sh 与点号类似,source命令也可读取并执行脚本 alias 别名 创建命令别名:alias myshoutdown=...

2018-08-14 10:59:16 286 0

原创 Linux及shell脚本学习笔记----3 字符处理

3.1 管道 Linux中的管道是一个固定大小的缓冲区,大小为1页,即4k字节。 管道符 : | example: ls -l /etc/init.d | more 3.2 使用grep搜索文本 grep [-ivnc] '需要匹配的字符' 文件名 #-i 不区分...

2018-08-14 10:57:39 76 0

原创 Linux及shell脚本学习笔记----2 linux文件管理

3.1 文件和目录管理 3.1.1 绝对路径和相对路径 绝对路径 从根目录开始的全路径,一定以 / 开头 比如 /usr/local/src 查看当前目录: pwd 特殊目录:(.)和(..) linux以点开始的文件都是隐藏文件,可以使用 ls -al 查看,(.)代表当前目...

2018-08-14 10:54:59 118 0

原创 Linux及shell脚本学习笔记----1 用户管理

2.1 linux用户和用户组 2.1.1 UID和GID UID:区分不同用户的数字(User ID) linux用户分为三类: 普通用户:ID>500 根用户:root ID=0 系统用户: ID范围 命令: ps aux 查看进程用户信息 ls -l ...

2018-08-14 09:56:47 184 0

原创 go语言学习踩坑交流,持续更新中

背景 学习使用go语言和beego框架中的踩过的一些坑,记录下来以便交流。 1. JSON-to-Go工具 首先介绍一个json文件自动转化为go的数据结构的工具 JSON-to-Go 比如 prometheus server端查询出的一个结果的数据结构: [ { ...

2018-08-04 23:59:54 211 0

原创 beego集成swagger

背景 最近在做的一个项目为前端提供rest接口,编程语言为go,框架采用的是beego,在beego框架中集成swagger可以很方便的展示已经实现的后端rest接口。 前提 beego框架的安装和使用可以直接参考beego官网,文档也是中文的,可读性很高。 步骤 1 创建be...

2018-08-04 22:17:27 1715 0

原创 prometheus中常用的查询

prometheus server 可以通过HTTPAPI的方式进行查询,官网链接https://prometheus.io/docs/prometheus/latest/querying/basics/  我这边主要用到的是实时查询,当然prometheus还支持历史查询,我这里 先介绍实时查...

2018-08-04 21:16:00 13702 5

原创 go语言中float64 保留2位小数

func Decimal(value float64) float64 {     return math.Trunc(value*1e2+0.5) * 1e-2 } 加上 0.5是为了四舍五入,想保留几位小数的话把2改掉即可。 这个版本有个关于浮点型数精度的问题,经常会出现 13.0000...

2018-08-01 16:24:22 44454 0

转载 关于字符编码,你所需要知道的

关于字符编码,你所需要知道的原文出处: Kevin Yang 的博客(@等打鸣的鸡)   字符编码的问题看似很小,经常被技术人员忽视,但是很容易导致一些莫名其妙的问题。这里总结了一下字符编码的一些普及性的知识,希望对大家有所帮助。还是得从ASCII码说起说到字符编码,不得不说ASCII码的简史。计...

2018-07-01 19:41:12 79 0

转载 HTTP协议的那些事——1)HTTP概述

原文链接 https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Overview HTTP是一种能够获取如 HTML 这样的网络资源的 protocol(通讯协议)。它是在 Web 上进行数据交换的基础,是一种 client-server 协议,也就...

2018-07-01 15:27:46 153 0

原创 github 公钥产生和配置

Windows环境下的配置step1:git安装之后右键 Git Bash herestep2:输入命令:ssh-keygen -t rsa -C "example@email.com","email@email.com"是你github账号,也就是你注册用...

2018-06-22 23:29:21 167 0

原创 java对象和json的相互转换--(2) 使用Jackson 进行简单的java对象json序列化和反序列化

背景:json格式是现在java开发中使用很多的一种字符串格式,现在开发中一般都是前后端隔离的,通常后端需要以约定的格式传送之给前端数据,而json就是常用的一种。现在对常用的几种java对象和json的相互转化做一个总结,方便以后的工作学习。 前写的一篇其实也是使用jackson来进行的jav...

2018-05-13 19:51:41 846 0

转载 JAVA多线程的控制JAVA 5.0

 在Java 5.0之前启动一个任务是通过调用Thread类的start()方法来实现的,任务的提于交和执行是同时进行的,如果你想对任务的执行进行调度或是控制 同时执行的线程数量就需要额外编写代码来完成。5.0里提供了一个新的任务执行架构使你可以轻松地调度和控制任务的执行,并且可以建立一个类似数据...

2018-04-11 10:11:32 58 0

原创 springMvc配置log4j

1 添加maven依赖 <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api<...

2018-03-22 11:25:19 1039 0

原创 elasticsearch使用BulkProcessor批量入库数据

在解决es入库问题上,之前使用过rest方式,经过一段时间的测试发现千万级别的数据会存在10至上百条数据的丢失问题,在需要保证数据的准确性的场景下,rest方式并不能保证结果的准确性,因此采用了elasticsearch的BulkProcessor方式来进行数据入库,实际上采用es客户端不同,re...

2018-03-01 16:16:25 16799 10

转载 Java进阶(二)当我们说线程安全时,到底在说什么

提到线程安全,可能大家的第一反应是要确保接口对共享变量的操作要具体原子性。实际上,在多线程编程中我们需要同时关注可见性、顺序性和原子性问题。本篇文章将从这三个问题出发,结合实例详解volatile如何保证可见性及一定程序上保证顺序性,同时例讲synchronized如何同时保证可见性和原子性,最后...

2018-02-05 16:44:19 97 0

转载 java进阶(三)多线程开发关键技术

本文将介绍Java多线程开发必不可少的锁和同步机制,同时介绍sleep和wait等常用的暂停线程执行的方法,并详述synchronized的几种使用方式,以及Java中的重入锁(ReentrantLock)和读写锁(ReadWriteLock),之后结合实例分析了重入锁条件变量(Condition...

2018-02-05 16:42:37 97 0

转载 Kafka入门经典教程

1.Kafka独特设计在什么地方? 2.Kafka如何搭建及创建topic、发送消息、消费消息? 3.如何书写Kafka程序? 4.数据传输的事务定义有哪三种? 5.Kafka判断一个节点是否活着有哪两个条件? 6.producer是否直接将数据发送到broker的leader(主节点)? 7.K...

2018-01-24 14:43:33 227 0

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