摘要:
概述 5种基础数据结构:String,List,Hash,Set,Sorted Set 4种高级数据结构:HyperLogLog、Geo、Bitmaps、Streams(5.0+版本) 内部编码 String,List,Hash,Set,Sorted Set只是对外的编码,实际上每种数据结构都有自己 阅读全文
摘要:
缓存是一个很大的话题,本文只是讲述HTTP缓存。 HTTP 浏览器缓存机制 缓存规则解析 浏览器存在一个缓存数据库,用于存储缓存信息。 在客户端第一次请求数据时,此时缓存数据库中没有对应的缓存数据,需要请求服务器,服务器返回后,将数据存储至缓存数据库中。 HTTP缓存有多种规则,根据是否需要重新向服 阅读全文
摘要:
Could not get resource ‘https://jcenter.bintray.com’ 在看Netflix conductor源码时遇到的一个问题,记录一下。 由于conductor不是使用常规的maven,而是使用Gradle作为编译工具,并且其jar包仓库是jcenter,不是 阅读全文
摘要:
混淆 Java的bytecode很容易通过JAD等反编译工具还原出源代码。这样势必不满足安全的定义。如何一定程度上保护需要防止被反编译的源代码呢?混淆(obfuscate)技术。注意:用obfuscate防盗版是根本不可能,连汇编这种东西都能被破解掉,而java代码基本上等同于开源的同义词。用obf 阅读全文
摘要:
对于后端Java开发人员来说,锁主要有Java锁和DB锁。DB锁,请参考一文总结MySQL各种锁。本文试图全面介绍各种Java语言里面的锁。 简介 为什么用锁?保障安全。 注:本文局限于Java语言和MySQL数据库。 Java 具体来说,是用于并发情况下的安全,也是为了解决内存中的一致性,原子性, 阅读全文
摘要:
进程 进程就是应用程序的启动实例。进程拥有代码和打开的文件资源、数据资源、独立的内存空间。 进程调度 也叫作业调度,算法包括: 先来先服务(FCFS,First-Come-First-Served): 按照作业到达后备作业队列(或进程进入就绪队列)的先后次序来选择作业(或进程)。短作业优先(SJF, 阅读全文
摘要:
背景: 简单讲述一下Swagger的产生背景,可参考博文API文档管理工具。 前后端分离,各司其职,后端提供接口,契约先行的开发模式……产生如Swagger这里文档管理工具。 Swagger Swagger是一个流行的API开发框架,以开放API声明(OAS )为基础,对API的整个开发周期都提供相 阅读全文
摘要:
概述 业务开发过程中,经常会有导出报表的需求,一般情况下以Excel文本形式。Java里有很多工具支持这一功能。 POI Apache POI,提供对Microsoft Office格式文档的读和写功能。不过实际工作中,大多数场景只是利用POI来操作Excel,甚至只用xls一种格式: <depen 阅读全文
摘要:
简介 官网 YAML,YAML Ain’t Markup Language What It Is: YAML is a human friendly data serialization standard for all programming languages. 最新版本1.2,Java客户端有 阅读全文
摘要:
概述 Spring为定时任务提供一个易于实现的API。在没有部署应用程序的多个实例之前,它很有效。默认情况下,Spring无法处理多个实例上的调度程序同步,而是在每个节点上同时执行作业。ShedLock库确保计划任务只能同时运行一次,可以代替Quartz。ShedLock支持Mongo,Redis, 阅读全文