- 博客(84)
- 资源 (5)
- 收藏
- 关注
原创 springboot使用@Async CompleteableFuture完成多个任务的异步回调
简介最近对代码进行优化,遇到一个场景:一个方法对多个RPC同时发起调用,每个RPC的响应事件在200ms左右而且是不受控制,有同事使用异步进行了实现,参考网上查的一些资料,大部分是如下这种描述资料地址回调的核心代码如下// 三个任务都调用完成,退出循环等待 while (!task1.isDone() || !task2.isDone() || !task3.isDone()) { sleep(1000); }这种实现不够优雅,...
2020-12-16 11:32:38 4391
转载 Groovy闭包理解
闭包的理解闭包(Closure)是很多编程语言中很重要的概念,那么Groovy中闭包是什么,官方定义是“Groovy中的闭包是一个开放,匿名的代码块,可以接受参数,返回值并分配给变量”,简而言之,他说一个匿名的代码块,可以接受参数,有返回值,那么到底是怎么样的,我们来探究一下:- 如何定义定义闭的语意 :{ [closureParameters -> ] statements }其中[closureParameters->]代表参数们,多参数用逗号分割,用->隔开参数与
2020-10-06 16:13:16 4313
原创 JVMTI加密jar包,防止反编译
简介Java虚拟机工具接口(JVMTI)提供了一个编程接口,允许开发人员创建可以监视和控制Java编程语言应用程序的软件代理。关于JVMTI的官方说明:通俗的说,就是用外部平台(例如C/C++)生成动态链接库(windows ⇒ dll,linux ⇒so),给指定的二进制的class文件中插入一段数字,进行篡改,使其无法被JD-GUI用简单的AST抽象语法树进行反编译,在运行 jar包时,再通过dll/so文件实现解密。更多想要了解JVMTI的参考 https://developer.ibm
2020-07-21 18:07:24 3105
原创 yearning mysql 数据库审核工具功能设计概述
yearning是一款开源的数据库审核工具,提供查询审计,SQL审核等多种功能,手册地址https://guide.yearning.io/主要功能主要功能SQL查询 查询导出 查询自动补全 SQL审核 流程化工单 SQL语句检测 SQL语句执行 SQL回滚 SQL自动审核执行 历史审核记录 查询审计 推送 E-mail工单推送 自定义webhook消息推送 其他 LDAP登陆 用户权限及管理 权限组划分 本文是对yearn.
2020-06-29 16:30:00 1985
转载 springboot 统一异常处理
什么是统一异常处理Spring在3.2版本增加了一个注解@ControllerAdvice,可以与@ExceptionHandler、@InitBinder、@ModelAttribute 等注解注解配套使用,对于这几个注解的作用,这里不做过多赘述,若有不了解的,可以参考Spring3.2新注解@ControllerAdvice,先大概有个了解。不过跟异常处理相关的只有注解@ExceptionHandler,从字面上看,就是 异常处理器 的意思,其实际作用也是:若在某个Controller类定义一个
2020-06-05 10:15:04 5632 1
原创 Flink DataStream常用算子
Flink中的算子是将一个或多个DataStream转换为新的DataStream,可以将多个转换组合成复杂的数据流拓扑。在Flink中,有多种不同的DataStream类型,他们之间是使用各种算子进行的。如下图所示:以下列举下常用的算子,用到的代码例子都是Flink监听9000端口做为数据源。以下方法可以启动一个9000的socket端口服务。Linux平台上可以使用bashnc -lk 9000如果是 Windows 平台,可以通过https://nmap.org/ncat.
2020-05-27 16:44:43 606
原创 配置中心Apollo存储加密字段
一些比较重要的配置信息,比如密码之类的敏感配置,我们希望将配置加密存储,保证安全性。Apollo框架本身没有提供数据加密的功能,如果想要实现数据加密的功能有两种方式,第一种是改Apollo的源码,增加加解密的逻辑,第二种比较简单,基于第三方的框架来对数据进行解密。jasypt-spring-boot是一个基于Spring Boot开发的框架,可以将properties中加密的内容自动解密,在A...
2020-03-12 19:14:01 3662
转载 基于 Flink SQL 构建流式应用
Flink 1.10.0 于近期刚发布,释放了许多令人激动的新特性。尤其是 Flink SQL 模块,发展速度非常快,因此本文特意从实践的角度出发,带领大家一起探索使用 Flink SQL 如何快速构建流式应用。本文将基于 Kafka, MySQL, Elasticsearch, Kibana,使用 Flink SQL 构建一个电商用户行为的实时分析应用。本文所有的实战演练都将在 Flink ...
2020-02-26 11:02:15 2973 3
转载 Spring Cloud Feign设计原理
什么是Feign?Feign 的英文表意为“假装,伪装,变形”, 是一个http请求调用的轻量级框架,可以以Java接口注解的方式调用Http请求,而不用像Java中通过封装HTTP请求报文的方式直接调用。Feign通过处理注解,将请求模板化,当实际调用的时候,传入参数,根据参数再应用到请求上,进而转化成真正的请求,这种请求相对而言比较直观。Feign被广泛应用在Spring Cloud 的...
2020-01-09 13:32:31 208
转载 Kong——Proxy文档
通过详细解释Kong的路由功能和内部工作原理来介绍Kong的代理功能Kong公开几个接口,可以调整两个配置属性:proxy_listen:定义了一个地址/端口列表——Kong将接受来自客户端的流量并代理上游服务 admin_listen:同样定义了一个地址/端口列表——但这些仅限于管理员访问从0.13.0版本开始,API实体被弃用,使用 Routes 及 Services 实体替代...
2019-12-31 10:37:57 1897
原创 springboot 参数验证 validation
1、综述springboot提供了强大的基于注解的、开箱即用的验证功能,这种基于bean validation的实现和 hibernate validator类似2、依赖创建springboot项目,包含以下依赖<dependency> <groupId>org.springframework.boot</groupId> <art...
2019-11-11 14:41:22 2605
原创 springboot 配置文件加密方案
springboot的config文件通常如下:spring.data.jdbc.url=jdbc:mysql://127.0.0.1:3305/test_dbspring.data.jdbc.username=rootspring.data.jdbc.password=123456通常会将敏感信息加密,一般的解决方案会在config的bean中进行逻辑解密代码的处理,但是不够优美,...
2019-11-06 19:42:58 2804
原创 Sentry - 处理异常日志的正确姿势
在各种系统和应用里,无论你的代码再完美也还是会抛异常,出错误。今天的主角是当今比较流行的异常记录框架 - Sentry,来了解一下。关于日志管理应用越做越复杂,输出日志五花八门,有print的,有写stdout的,有写stderr的, 有写logging的,也有自定义xxx.log的。那么这将导致平台应用日志分布在各个地方,无法统一管理。而且可能用的还不止一种开发语言,想规范和统一日志不是...
2019-09-12 10:14:14 3782
转载 Prometheus 搭建监控系统
Prometheus是一款基于时序数据库的开源监控告警系统,说起 Prometheus 则不得不提SoundCloud,这是一个在线音乐分享的平台,类似于做视频分享的 YouTube,由于他们在微服务架构的道路上越走越远,出现了成百上千的服务,使用传统的监控系统 StatsD 和 Graphite 存在大量的局限性,于是他们在 2012 年开始着手开发一套全新的监控系统。Prometheus ...
2019-08-27 19:57:15 2982 1
原创 Druid.io 整合 mybatisplus 以SQL方式查询
Druid 是一个开源的专为事件数据的 OLAP 查询设计的数据存储系统。Druid 用于大数据实时查询和分析的高容错、高性能开源分布式系统,旨在快速处理大规模的数据,并能够实现快速查询和分析。Druid 具有以下主要特征: 为分析而设计——Druid 是为OLAP工作流的探索性分析而构建,它支持各种过滤、聚合和查询等类; 快速的交互式查询——Druid 的低延迟数据摄取架...
2019-08-05 19:37:01 1151 3
原创 Hadoop运行job程序报错 exitCode=255
hive查询sql使用order by的时候报return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask的错误,http://ip:10002/logs/hive.log查看hivelog错误堆栈2019-08-03T15:53:32,545 ERROR [HiveServer2-Background-P...
2019-08-03 16:22:39 3400
原创 Apache Druid架构原理与应用场景
Druid本质是一个分布式时序数据库,其设计恰好满足这个场景: Historical数据存储使用HDFS等成熟的分布式文件系统方案,高可用、水平扩容 Lambda架构,Realtime部分使用LSM-Tree实现,满足流数据的即时查询需求 下面从2方面,整理一下Druid的关键技术点: Druid架构设计 数据摄入 几个重要配置 当业务中出现以下情...
2019-07-12 10:00:04 3725 1
转载 GMT,UTC,CST,ISO等时间标志以及时区的总结
GMT: 格林威治时间UTC:标准时间ISO: 标准时间CST:北京时间时间加Z:代表标准时间(一般和UTC时间一致)https://blog.csdn.net/m0_37886783/article/details/80582520...
2019-06-10 10:57:10 4582
原创 金融大数据监控PSI(特征稳定性)指标详解
金融大数据评分系统监控模块需要根据评分结果判断当前评分服务是否正常,据对现有评分数据的分析,监控系统采用基于成熟的PSI指数的监控机制,通过把各种系统主要异常代码分别设立监控类别,结合目标评分的评分的分布,实现对如重大异常情况的监控,其中有一个指标PSI,统计学原理如下:特征稳定性所谓特征稳定性,就是关注该特征的取值随着时间的推移会不会发生大的波动。对特征稳定性的关注,一定一定要在建模...
2019-05-08 17:09:41 14595
原创 Elasticsearch集群——基本概念
Elastic 的底层是开源库 Lucene。但是,你没法直接用 Lucene,必须自己写代码去调用它的接口。Elastic 是 Lucene 的封装,提供了 REST API 的操作接口,开箱即用。Elastic 的底层是开源库 。但是,你没法直接用 Lucene,必须自己写代码去调用它的接口。Elastic 是 Lucene 的封装,提供了 REST API 的操作接口,开箱即用。一、ES...
2019-03-04 13:32:29 1482
原创 Vue性能优化:延迟加载和代码拆分
目录Webpack 捆绑的工作原理延迟加载动态导入延迟加载 Vue 组件应用程序增长Vue 生态系统中的代码拆分第三方捆绑反模式Vuex 模块的两种类型Vuex 模块的代码拆分延迟加载 Vuex 模块Webpack 捆绑的工作原理首先需要了解 Webpack 如何捆绑文件。在捆绑文件时,Webpack 会创建一个叫作依赖图的东西。它是一种图,链接所有...
2019-03-03 15:05:10 6180
原创 服务发现比较:Consul vs Zookeeper vs Etcd vs Eureka
服务发现比较:Consul vs Zookeeper vs Etcd vs Eureka这里就平时经常用到的服务发现的产品进行下特性的对比,首先看下结论:Feature Consul zookeeper etcd euerka 服务健康检查 服务状态,内存,硬盘等 (弱)长连接,keepalive 连接心跳 可配支持 多数据中心 ...
2019-01-27 16:31:36 238
转载 Elasticsearch压测工具esrally详解
rally 工具是 Elastic 官方开源的针对性性能压测工具。目前 Elasticsearch 的 nightly performance report 就是由 rally 产生的。对自己在做 ES 源码修改,或者ES 应用调优的人来说,通过 rally 验证自己的修改效果,是一件很需要且容易的事情。环境:python3.4+ ;pip3;JDK8;git 1.9+;gradle 2...
2019-01-12 23:24:35 5632
转载 Grafana + Zabbix --- 部署分布式监控系统
阅读目录:1. 关闭防火墙2. 安装Zabbix下载源3. ZabbixClient --- 安装zabbix-agent代理4. ZabbixServer --- 安装zabbix-server服务5. ZabbixServer --- 配置zabbix-server的数据库6. ZabbixServer --- 配置zabbix-server的服务参数7. ...
2019-01-11 09:38:13 599
原创 springboot logback/log4j配置 log输出到ELK
logstash配置文件如下# Sample Logstash configuration for creating a simple# Beats -> Logstash -> Elasticsearch pipeline.input { tcp { mode => "server" host => "127.0.0.1" port...
2019-01-08 18:30:04 1570
原创 filebeat传输到logstash通过ssl加密
filebeat端1、配置openssl.cnf文件 在[ v3_ca ]下面加入 subjectAltName = IP:本机的IP 注:linux如果装了openssl不知道位置的话,可以root账户切到根目录,使用find -name openssl.cnf 查找openssl的安装路径。我用的centos7,已存在openssl,存放目录...
2018-12-15 14:22:54 1829 1
原创 filebeat+kafka+logstash 配置 (logstash新增字段、编辑字段、字段层级调整)
filebeat.yml###################### Filebeat Configuration Example ########################## This file is an example configuration file highlighting only the most common# options. The filebeat.r...
2018-12-14 15:33:34 5469
原创 elasticsearch设置执行脚本并添加开机启动
在/etc/init.d目录下新建文件elasticsearch#!/bin/sh#chkconfig: 2345 80 05#description: elasticsearch export JAVA_HOME=/usr/java/jdk1.8.0_112export JAVA_BIN=/usr/java/jdk1.8.0_112/binexport PATH=$PATH:$...
2018-12-13 16:50:41 1071
转载 ELK6.0部署:Elasticsearch+Logstash+Kibana搭建分布式日志平台
一、前言1、ELK简介ELK是Elasticsearch+Logstash+Kibana的简称 ElasticSearch是一个基于Lucene的分布式全文搜索引擎,提供 RESTful API进行数据读写 Logstash是一个收集,处理和转发事件和日志消息的工具 Kibana是Elasticsearch的开源数据可视化插件,为查看存储在ElasticSearc...
2018-12-13 13:11:16 1055
转载 Logstash处理时区、类型转换、删除字段的案例配置
#输入 input { file { path => ["文件路径"] #自定义类型 type => "自定义" start_position => "beginning" } } #过滤器 filter{ #去除换行符 mutate{ gsub => [...
2018-12-10 17:15:12 1167 1
原创 利用 ELK系统分析Nginx日志并对数据进行可视化展示
一、写在前面 这篇文章介绍的是单独监控nginx 日志分析再进行可视化图形展示,并在用户前端使用nginx 来代理kibana的请求响应,访问权限方面暂时使用HTTP 基本认证加密用户登录。(关于elk权限控制,我所了解的还有一种方式-Shield),等以后有时间了去搞下。下面开始正文吧。。。 注意:环境默认和上一篇大致一样,默认安装好了E、L、K、3个软件即可。当然了,还有必需的ja...
2018-12-10 16:10:20 1604 1
转载 Elastalert安装及使用
安装elastalert参考其他文章,结合自己实践经验稍作修改。简介Elastalert是用python2写的一个报警框架(目前支持python2.6和2.7,不支持3.x),github地址为 https://github.com/Yelp/elastalert。他提供不同场景的规则配置,若觉得规则、告警不满足需求时,可以用python编写插件Adding a New Rule Type...
2018-12-07 11:41:10 8083 2
转载 ELK+Filebeat 集中式日志解决方案
ELK Stack 简介ELK 不是一款软件,而是 Elasticsearch、Logstash 和 Kibana 三种软件产品的首字母缩写。这三者都是开源软件,通常配合使用,而且又先后归于 Elastic.co 公司名下,所以被简称为 ELK Stack。根据 Google Trend 的信息显示,ELK Stack 已经成为目前最流行的集中式日志解决方案。Elasticsearch:分...
2018-12-04 11:07:01 301
原创 Windows安装运行Kafka
如果需要linux安装配置kafka,步骤和下述一样,配置文件需要修改的地方都是一致的,注意如果需要远程访问,linux端口防火墙的问题。一、安装JAVA JDK1、下载安装包http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html注意:根据32/64位操作系统下载对应的安...
2018-12-02 22:04:46 213
原创 linux(centos 7) 安装配置zookeeper
单机安装、配置1、下载zookeeper二进制安装包 下载 curl -L -O http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gz 解压 tar zxvf zookeeper-3.4.6.tar.gz2、设置环境变量ZOOKEEPER_HOME关键...
2018-12-01 18:48:55 187
原创 redis(一)——基础数据结构
安装方式:使用 Docker 安装 通过 Github 源码编译 直接安装yum install(RedHat) 使用网页版的 Web Redis 直接体验下面介绍docker安装redis# 拉取 redis 镜像 > docker pull redis# 运行 redis 容器 > docker run --name myredis -d -p637...
2018-11-23 20:23:51 189
原创 Redis在windows下安装与配置
一、安装Redis1. Redis官网下载地址:http://redis.io/download,下载相应版本的Redis,在运行中输入cmd,然后把目录指向解压的Redis目录。2、启动服务命令redis-server redis.windows.conf,出现下图显示表示启动成功了。3. 系统变量Path添加压缩包路径这样可以直接利用redis-cli而不需要每次进入redis的安装目录,如下...
2018-06-04 10:21:38 418
原创 xxl-job 基于Quartz 的分布式任务调度平台
介绍XXL-JOB是一个轻量级分布式任务调度框架,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。 项目git地址 | 项目首页搭建项目、了解架构可以在项目官网学习。本文只做加强补充,如果没有涉及到的点可以提出,继续完善。...
2018-05-31 13:58:01 8169 2
转载 Quartz任务调度原理简析
1、Quartz任务调度的基本实现原理 Quartz是OpenSymphony开源组织在任务调度领域的一个开源项目,完全基于Java实现。作为一个优秀的开源调度框架,Quartz具有以下特点: (1)强大的调度功能,例如支持丰富多样的调度方法,可以满足各种常规及特殊需求; (2)灵活的应用方式,例如支持任务和调度的多种组合方式,支持调度数据的多种存储方式; (3)分布式和集群能...
2018-05-30 09:59:42 20626
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人