认证要素
个人二要素 个人银行卡三要素 个人银行卡四要素 个人运营商三要素 企业二要素 企业三要素 企业四要素 企业验卡二要素
Java Logging
log 历史 阶段 阶段 阶段 阶段 阶段 log4j apache commons logging(JCL) log4j2 JUL simple log logback + slf4j 多个项目使用不同的 logging 库 + 传递依赖等于依赖管理不规范,日志库泛滥以至互斥。 具体框架与门面 所谓的日志框架,指的是日志输出的具体实现,常见的日志框架包括但不仅限于 JUL(Java Util Logging)、Log4j、Log4j2 和 Logback。这些框架的功能不尽相同,比如有些框架支持友好地打印异常,有些不支持,有些框架不支持,不同的框架的日志级别也各有差异。 因此,诞生了日志门面。所谓的门面,就是“使用一个中间层解耦”这一具体思想的应用。使用了门面,可以屏蔽日志使用者对于具体差异的依赖,既让代码变得整洁,而且可以简单地切换实现而不需要修改代码。没有日志门面,不足以统一日志框架的使用。 log facade(定义 interface,早期的 JCL 时代,facade 也被叫做接口)-> log imp...
JMX 深度历险
JMX 常见指标 JVM 指标 系统指标 System 相关指标 描述 system.load.average 系统load,如果是docker,此指标收集的物理机的load cpu.system.load.percent 系统所有进程占用cpu的百分比 cpu.jvm.load.percent jvm占用cpu的百分比 system.process.used.phyical.memory 系统使用的物理内存 system.process.used.swap.size 系统使用的swap内存 JVM 内存指标 JVM相关指标 描述 jvm.gc.count GC的次数 jvm.gc.time GC的时间,单位毫秒 jvm.younggc.count 年轻代GC的次数 ,包括的GC算法(Copy,ParNew,PS Scavenge,G1 Young Generation) jvm.younggc.time 年轻代GC的时间,单位毫秒 jvm.fullgc.count 年老代GC的次数,包括的GC算法 jvm.f...
安全系统设计指南
系统内部设计准则 不要把开发者个人信息硬编码进系统中。 不要带着调试代码上线。 该脱敏的数据不能打在日志和写在 db 列中-可以存在于内存中。 应使用KMS保存密码等信息。 接口设计指南 敏感接口,涉及敏感信息查询,资金流信息流修改的接口应该有鉴权机制。应该接入统一的 SSO 鉴权,或使用统一的 UPM/UAC 服务。 在高并发的场景要加锁或者使用信号量(内部也试用了锁)机制来防止接口大量重入。 接口的参数里涉及可遍历数据的要进行混淆操作-这和一般的 RESTful API 的设计思路相抵触。所有涉及敏感信息的地方都要根据敏感信息进行分类,防止泄露、篡改、越权。 防止篡改,要单独使用非对称算法进行签名和验签。
Java 平台历代特性
Java 9 模块化,JDK 只依赖于 PATH 不依赖于 CLASSPATH。
汉语
|中文|读音|含义| |颟顸|[mān hān]|糊涂而马虎| |攻讦|[gōng jié]|揭发别人的过失或阴私而加以攻击(多指因个人或派系利害矛盾)。|
余光中:怎样改进英式中文
一 自五四新文化运动以来,七十年间,中文的变化极大。一方面,优秀的作家与学者笔下的白话文愈写愈成熟,无论表情达意或是分析事理,都能运用自如。另一方面,道地的中文,包括文言文与民间文学的白话文,和我们的关系日渐生疏,而英文的影响,无论来自直接的学习或是间接的潜移默化,则日渐显著,因此一般人笔下的白话文,西化的病态日渐严重。 一般人从大众传媒学到的,不仅是流行的观念,还有那些观念赖以包装的种种说法;有时,那些说法连高明之士也抗拒不了。今日的中文虽因地区不同而互见差异,但共同的趋势都是繁琐与生硬,例如中文本来是说“因此”,现在不少人却爱说“基于这个原因”;本来是说“问题很多”,现在不少人却爱说“有很多问题存在”。 对于这种化简为繁、以拙代巧的趋势,有心人如果不及时提出警告,我们的中文势必越变越差,而道地中文原有的那种美德,那种简洁而又灵活的语文生态,也必将面目全非。 中文也有生态吗?当然有。措词简洁、句式灵活、声调铿锵,这些都是中文生命的常态。能顺着这样的生态,就能长保中文的健康。要是处处违拗这样的生态,久而久之,中文就会被污染而淤塞,危机日渐迫近。 目前中文的一大危机是西化。我自己出...
hive 汇总
Hive 操作符和函数汇总 Hive 架构概述 Hive 是构建在 Hadoop 之上的数据仓库基础设施,提供类 SQL 的查询语言 HQL,将查询转换为 MapReduce、Tez 或 Spark 任务执行。 核心组件 MetaStore 存储表的元数据信息,包括表结构、分区、列类型、序列化/反序列化规则等 支持多种存储后端:Derby(默认)、MySQL、PostgreSQL 可配置为远程服务模式,支持多客户端并发访问 Driver 接收查询请求,生成执行计划 编译器:解析 HQL,生成语法树,进行语义分析 优化器:基于规则和成本的查询优化 执行引擎:将逻辑计划转换为物理执行计划 执行引擎 MapReduce:早期默认引擎,适合大规模批处理 Tez:基于 DAG 的执行引擎,减少中间结果落盘 Spark:基于内存计算,显著提升查询性能 Hive 数据模型 Database 数据库是命名空间的逻辑容器,对应 HDFS 上的目录路径。 Table Hive 表分为两种类型: 管理表(内部表):删除表时删除元数据和数据 外部表:删除表时仅删除元数据,保留数据 Par...
计算机数学
precision vs scale sql 中的 decimal 函数的签名如下:DECIMAL[(precision[,scale])] DECIMAL with no precision or scale values is equivalent to DECIMAL(9,0). precision represents the total number of digits that can be represented by the column, regardless of the location of the decimal point. This value must be between 1 and 38. For example, representing integer values up to 9999, and floating-point values up to 99.99, both require a precision of 4. You can also represent corresponding negative values, wit...
泛型拾遗
基本设计原则 how codes should vary in different types. compatible with other release. before generic class,generic programming was achieved with inheritance:在所有后来使用T的地方使用Object或者Object数组。经典的猫狗列表问题的来源。 基本语法 java 的泛型没有 template 关键字。表面上(superficially)看和 C++ 并无二致,实际上有大量差别 三种基本概念: Type Parameter(类型形参):在泛型类、接口或方法声明时使用的标识符。 class Box<T> 中的 T。 但是在 Java 核心技术中,List<String>中的String也经常被描述为 Type Parameter。Container.class.getTypeParameters()得到的也是T。 Type Variable(类型变量):类型参数在代码中的引用。 可以认为是类型参数的一...















