- 博客(20)
- 资源 (6)
- 收藏
- 关注
转载 SpringBoot使用ApplicationEvent&Listener完成业务解耦
ApplicationEvent以及Listener是Spring为我们提供的一个事件监听、订阅的实现,内部实现原理是观察者设计模式,设计初衷也是为了系统业务逻辑之间的解耦,提高可扩展性以及可维护性。事件发布者并不需要考虑谁去监听,监听具体的实现内容是什么,发布者的工作只是为了发布事件而已。我们平时日常生活中也是经常会有这种情况存在,如:我们在平时拔河比赛中,裁判员给我们吹响了开始的信号,也就...
2019-05-30 23:26:26 1350
转载 Windows下Kettle定时任务执行并发送错误信息邮件
1.首先安装JDK2.配置JDK环境3.下载并解压PDI(kettle)目前我用的是版本V7的,可以直接百度搜索下载社区版,企业版收费,社区版免费下载地址:https://sourceforge.net/projects/pentaho/files/Data Integration/4.打开解压文件夹kettle找到spoon.bat,双击打开5.新建作业点击左上角文件=>新...
2019-05-26 22:03:38 3482
转载 kettle日志记录
环境描述:现在一个项目有很多个作业,需要知道每次跑批后哪些ktr跑成功,哪些失败了问题解决:下面是一个具体的操作流程首先建立数据库表CREATE TABLE test_1(id INT,NAME VARCHAR(10)); INSERT INTO test_1 VALUES(1,'hsj'); CREATE TABLE test_2(id INT PRIMARY KEY NOT...
2019-05-26 21:55:18 6302 6
转载 kettle 条件判断 Switch Case
介绍Switch / Case,顾名思义,类似 Java 中的 Switch / Case,用于进行条件判断。是 kettle 中一个非常常用组件。使用起来也非常简单,我们直接来看例子。场景介绍有一个 user 表,表中数据如下:我们需要对 code 字段进行判断,如果不为空,则将数据同步到 user_copy 表(表结构相同);如果 code 为空,则记录一条错误记录,错误记录表 e...
2019-05-24 23:38:45 7272
转载 kettle 常用输出(插入更新、表输出、执行 SQL 脚本)
上一篇 文章 ,主要讲了 kettle 的原理、安装及简单的使用。其中用到了一种输出方式:插入更新。这篇文章,主要介绍下常用的输出方式:插入更新、表输出、执行 SQL 脚本。插入更新插入更新,顾名思义,包括插入和更新两种情况。我们需要先设置一个条件,符合条件时,进行更新操作;否则,进行插入操作。常见的条件就是判断表中的 ID 和流(上一个步骤的结果,可以理解为内存)中的 ID 是否相等,相...
2019-05-24 23:30:40 8719 3
转载 ETL是什么
ETL是将业务系统的数据经过抽取、清洗转换之后加载到数据仓库的过程,目的是将企业中的分散、零乱、标准不统一的数据整合到一起,为企业的决策提供分析依据。 ETL是BI项目重要的一个环节。 通常情况下,在BI项目中ETL会花掉整个项目至少1/3的时间,ETL设计的好坏直接关接到BI项目的成败。ETL的设计分三部分:数据抽取、数据的清洗转换、数据的加载。在设计ETL的时候我们也是从这三部分出发。数据的...
2019-05-22 23:32:32 1639 1
转载 kettle 简介及入门
介绍kettle 是纯 java 开发,开源的 ETL工具,用于数据库间的数据迁移 。可以在 Linux、windows、unix 中运行。有图形界面,也有命令脚本还可以二次开发。kettle 的官网是 https://community.hitachivantara.com/docs/DOC-1009855,github 地址是 https://github.com/pentaho/pent...
2019-05-22 23:28:14 847
原创 SpringBoot整合Mybatis-Plus
依赖<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache....
2019-05-19 21:01:12 184
转载 Java 8 基础教程 - Predicate
Predicate的源码:public interface Predicate<T> { /** * Evaluates this predicate on the given argument. */ boolean test(T t); /** * Returns a composed predicate that repr...
2019-05-19 10:04:29 384
转载 Java8特性详解 lambda表达式 Stream
本文转自:Java8特性详解 lambda表达式 Stream1.lambda表达式Java8最值得学习的特性就是Lambda表达式和Stream API,如果有python或者javascript的语言基础,对理解Lambda表达式有很大帮助,因为Java正在将自己变的更高(Sha)级(Gua),更人性化。--------可以这么说lambda表达式其实就是实现SAM接口的语法糖。lamb...
2019-05-18 10:28:30 379
转载 Java中Lambda表达式的使用
简介(译者注:虽然看着很先进,其实Lambda表达式的本质只是一个"语法糖",由编译器推断并帮你转换包装为常规的代码,因此你可以使用更少的代码来实现同样的功能。本人建议不要乱用,因为这就和某些很高级的黑客写的代码一样,简洁,难懂,难以调试,维护人员想骂娘.)Lambda表达式是Java SE 8中一个重要的新特性。lambda表达式允许你通过表达式来代替功能接口。 lambda表达式就和方法一...
2019-05-18 10:20:30 375
转载 Git在Eclipse中的使用
本文转自:Git在Eclipse中的使用前言1)Git于SVN的不同Git是分布式数据库,本地创建仓库,即可在本地完成版本控制(等价于SVN在本地安装服务器和客户端,SVN服务器如果在远程,断网情况将无法完成提交及版本维护)。Git协作开发,大家可以互相克隆版本库(相当于SVN下载项目),进行开发,每人都有完整的库(分布式)。通常为了方便,远程还是会建立一个共享库,如GitHub,方便大家...
2019-05-17 23:35:20 1156
转载 lombok使用基础教程
前言lombok是一个编译级别的插件,它可以在项目编译的时候生成一些代码。在很多工具类的项目中都有这个功能。比如dagger。通俗的说,lombok可以通过注解来标示生成getter settter等代码。我们自然可以通过编译器比如IDEA的Generate生成,为啥要用这个?在项目开发阶段,一个class的属性是一直变化的,今天可能增加一个字段,明天可能删除一个字段。每次变化都需要修改对应...
2019-05-17 21:56:19 606
转载 Spring Cloud限流详解(附源码)
在高并发的应用中,限流往往是一个绕不开的话题。本文详细探讨在Spring Cloud中如何实现限流。在 Zuul 上实现限流是个不错的选择,只需要编写一个过滤器就可以了,关键在于如何实现限流的算法。常见的限流算法有漏桶算法以及令牌桶算法。这个可参考 https://www.cnblogs.com/LBSer/p/4083131.html ,写得通俗易懂,你值得拥有,我就不拽文了。GoogleG...
2019-05-03 21:54:08 388
转载 SpringBoot 2.x 优雅解决分布式限流
某天A君突然发现自己的接口请求量突然涨到之前的10倍,没多久该接口几乎不可使用,并引发连锁反应导致整个系统崩溃。如何应对这种情况呢?生活给了我们答案:比如老式电闸都安装了保险丝,一旦有人使用超大功率的设备,保险丝就会烧断以保护各个电器不被强电流给烧坏。同理我们的接口也需要安装上“保险丝”,以防止非预期的请求对系统压力过大而引起的系统瘫痪,当流量过大时,可以采取拒绝或者引流等机制。一、常用的限流算...
2019-05-03 21:43:29 16333 5
转载 Spring Cloud Zuul的容错与回退
在Spring Cloud, Zuul默认已经整合了Hystrix,而且如果启动了Dashborad,也可以知道Zuul对Hystrix监控的粒度是微服务,而不是某一个API;同时也说明所有经过Zuul的请求都会被Hystrix保护起来。为Zuul添加回退想要为Zuul添加回退,需要实现FallbackProvider接口(Edgware.RELEASE以前的版本实现ZuulFallbackP...
2019-05-03 09:53:15 512
转载 Spring Cloud Zuul异常处理
最近看到了一个GitHub issue在讨论如何在post类型的zuul filter中设置response body,其中涉及到异常情况下,如何返回一个自定义的response body。正好我在升级spring-cloud,也想弄清楚,spring-cloud-zuul是如何处理异常情况的,所以就仔细看了看这部分的实现细节,现在做个笔记记录下来。1. zuul 请求的生命周期图关于zuul...
2019-05-03 09:50:38 3356
转载 服务网关zuul之二:过滤器--请求过滤执行过程(源码分析)
Zuul的核心是一系列的过滤器,这些过滤器可以完成以下功能:身份认证与安全:识别每个资源的验证要求,并拒绝那些与要求不符的请求。审查与监控:在边缘位置追踪有意义的数据和统计结果,从而带来精确的生成视图。动态路由:动态地将请求路由到不同的后端集群。压力测试:逐渐增加执行集群的流量,以了解性能。负载分配:为每一种负载类型分配对应容量,并弃用超出限定值得请求。静态响应处理:在边缘位置直接建...
2019-05-03 09:41:54 1222
原创 使用Zuul构建API Gateway
一 微服务网关背景及简介不同的微服务一般有不同的网络地址,而外部的客户端可能需要调用多个服务的接口才能完成一个业务需求。比如一个电影购票的收集APP,可能回调用电影分类微服务,用户微服务,支付微服务等。如果客户端直接和微服务进行通信,会存在一下问题:客户端会多次请求不同微服务,增加客户端的复杂性存在跨域请求,在一定场景下处理相对复杂认证复杂,每一个服务都需要独立认证难以重构,随着项目...
2019-05-03 09:28:17 758
转载 SpringCloud的各种超时时间配置效果
1. 前言(以下的springcloud版本是Dalston.RC1)Springcloud框架中,超时时间的设置通常有三个层面:1) zuul网关用指定 url 进行路由时,使用下面的方式#默认1000zuul.host.socket-timeout-millis=2000#默认2000zuul.host.connect-timeout-millis=4000用 service...
2019-05-01 14:04:50 18405 2
postman chrome插件
2017-06-04
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人