Fork me on GitHub

[Angular Directive] 输入框禁止为空字符串与自动去除空格指令

一、前言 input 输入框自带了required属性,用以表单验证,但是只要有字符,即使全为空格也能通过required验证,这无法满足一些应用场景,所以需要自定义一些指令,用来满足验证全为空格的输入。 在使用自定义的 Directive 修改 input 输入框值或属性时,需要注意: 请尽量使用 Angular 提供的类或方法来修改输入框的值, 以免ngModel无法同步; ... [继续阅读...]

Spark _on_Yarn 资源池内存限制测试报告 - 防止“非法”任务的提交

需求背景 讲道理,用户在提交 Spark_on_yarn 任务 时,应该指定--executor-memory属性(公司自己的规定),并且使用特定的用户提交,以便于 DBA 的管理。但是仍然存在一些用户直接使用 root 账户提交任务,这样在 yarn 的资源池中就会被分配到 root.user.root池中,如果集群压力过大,那么便不能迅速的找到该任务 的所有者,从而可能会对其它 tea... [继续阅读...]

在需要实时更新数据的接口中使用 304 状态码

[TOC] 一、前言 Http 状态码是接口设计中不可或缺的一部分,它简洁却蕴含着丰富的含义,这里就简单介绍一下 304 状态码的使用示例吧。 二、场景 比如最近的一个需求是:在 Web 页面中查看任务详情时,要求能够不刷新页面便自动的更新它的状态与日志等信息(任务的执行会花费一定的时间,同时后台在处理任务的过程中会同步它的状态与日志的更新)。 三、分析与方案 使用Ajax不定时... [继续阅读...]

Eureka Self Preservation Mode

[TOC] 一、Eureka 的自我保护模式 访问Eureka主页时,如果看到这样一段大红色的句子: **EMERGENCY! EUREKA MAY BE INCORRECTLY CLAIMING INSTANCES ARE UP WHEN THEY'RE NOT. RENEWALS ARE LESSER THAN THRESHOLD AND HENCE THE INSTANCE... [继续阅读...]

Centos 7.2.1511 安装 Docker 遇到的问题与解决方案

[TOC] 一、前言 最近在一个集群上安装 Docker,本来多么简单的事却因为网络原因以及系统版本变得曲折了,也由于找到了不适合的解决方案,饶了一个弯,所以特此记录一下安装过程,防止重复踩坑。 ==系统版本:Centos 7.2.1511== 二、下载与上传 由于服务器不能连接外网,所以服务器使用的是公司自带的 yum 仓库,但是仓库内没有 Docker 安装包,所以需要自己下载... [继续阅读...]

自定义ClassLoader实现隔离运行多版本jar包的方式

1. 应用场景 有时候我们需要在一个 Project 中运行多个不同版本的 jar 包,以应对不同集群的版本或其它的问题。如果这个时候选择在同一个项目中实现这样的功能,那么通常只能选择更低版本的 jar 包,因为它们通常是向下兼容的,但是这样也往往会失去新版本的一些特性或功能,所以我们需要以扩展的方式引入这些 jar 包,并通过隔离执行,来实现版本的强制对应。 2. 实现 在 Java... [继续阅读...]

[HBase源码] HBaseAdmin的重试机制

1. 前言 HBase 版本:V 1.0.0 在项目中获取HTable的详细信息时,Http connection一直处于pending状态,这是由于我的机器无法Ping通新加入的集群,但是这个connection 的pending时长已经超过了1小时之久,并且在org.apache.hadoop.hbase.client.ConnectionManager.checkIfBaseNod... [继续阅读...]

Spring JdbcTemplate Querying examples

这里有一些示例向你展示如何使用JdbcTemplate的query()方法从数据库中查询或提取数据。 1. 查询单行 有两种可以从数据库中查询或提取一行数据,并将它们转换成一个model对象。 1.1 自定义RowMapper 通常,总是建议通过实现RowMapper接口来创建一个自定义的RowMapper类来满足你的需求,如下: package com.mkyong.customer... [继续阅读...]

[shell脚本]Linux自定义命令并启用应用

前言 之前做过一个Java Web系统,由很多的子系统组成,由尽管其子系统颇多,但是要在服务器上管理这些子系统(启动、停止、重启等)却很方便,只需要输入tt 便能看见每个应用的名称、状态等,然后输入对应的应用名+操作代码,便能进行对应的操作,这一切都源于它使用了自定义的命令,来调用对应的shell脚本或命令。正好目前我做的一个系统,还处于起步阶段,每次部署都太麻烦,所以就做了一个类似的功能... [继续阅读...]