做项目经常要写的,不只是代码,也不是寂寞,而是文档。项目文档,设计文档,接口文档等等。那接口文档怎么写,大家都知道用Swagger。但一说到Swagger,就不得不提一下OpenAPI。简单来说,OpenAPI简称OAS,即OpenAPI Specification,是一个用于定义和描述API的语言规范,可以通过这套规范,在向第三方的开发者提供对外暴露的接口服务时,大家达成统一的标准。... 阅读详情
Read More →分类: 程序
一直不想自己搭建环境,一来是觉得有些麻烦,从ZK,Hadoop,到Spark全都得配置一遍太耽误时间,二来公司测试环境的Spark可以用则自己能省也就省了。但后来发现在Docker下部署下来可以这么轻松,于是也就自己搞了一套。简单来说docker-compose是Docker下的一个编排工具,通过使用配置文件的方式来编排,创建和管理容器,使得集群化的容器环境管理起来更加方便。这里就使用BDE Pipline Application来构建部署Spark开发环境。... 阅读详情
Read More →线程池的优点自不必说,重用已有的线程,可以有效减少线程创建及销毁对性能造成的损失。并且通过有效控制线程数量,可以避免资源拥堵,或提高系统资源的使用率。但如何用好线程池才是重点,本篇就通过一个简单的例子,重温线程池相关的知识点。... 阅读详情
Read More →项目上常常需要多个数据源来存取数据,最近项目上试用了Tidb,因为兼容MySql协议,我们可以直接像Mysql一样在项目中进行配置。那么如何快速的将单一的数据源改成多数据源,并能够在项目中动态的切换就是本次要说的事情。下面精简并省略了无关代码,主要使用`AbstractRoutingDataSource`实现,使用AOP切换,在此记录配置过程以便查阅,分分钟解决问题。... 阅读详情
Read More →一直认为大数据量,如几百万上千万的数据写入到Excel是一个极度不合理的需求。对于一个企业来说这么大的数据存在极易泄露的风险,同时也无法对转储的文件及使用环节进行安全管控。而通过线上各个业务系统的打通,形成线上的完整闭环,才能使数据的流转以及使用得到有效的监管和监控。但是在实际的项目中,这样的需求屡屡皆是,尤其出现在与第三方客户业务对接过程中。... 阅读详情
Read More →给定这样一个场景,现在我们要在特定的某一天里,来汇总业务系统中某一段时间内的数据。在这基础上再加上一个要求,那就是不同的业务类型数据,汇总时间及区间也不同。这样的需求场景看起来是很合理,那么在这样的背景要求下,汇总数据很简单,但是如何拿到动态的时间区间,并且我们的汇总时间能够动态的配置,怎么能够方便快速的满足需求呢?... 阅读详情
Read More →项目在运行过程中,难免会存储一些敏感的信息,如用户手机号,住址,身份证号,银行卡号等等,这些以明文的方式存储在DB中是极其不安全的,尤其当我们的研发,运维都对数据库表拥有权限时,用户敏感信息泄露就可能会在不经意间发生。因此对于安全责任感重于泰山的公司来说,数据加密至关重要。... 阅读详情
Read More →最近才发现,之前在github上上传的jwt的示例项目竟也有125个星星,虽不多,但是作为首次上传的项目还是有点儿激动的。所以趁着端午有空,就又完善了下,升级了一些有漏洞的依赖到较新的版本,也对代码做了一些优化。将前端的vue-cli也更新到了3.*,没有添加太多的功能,主要包含的是用户及基础的权限控制,集成了单点的定时任务等,对于学习或者接一些小的项目还是可以的。... 阅读详情
Read More →前几天,使用已久的windows服务器已然到期,于是打算把blog迁出去。考虑到已经用习惯了的wordpress比较顺手,就不再打算更换其他的系统。那面临的一个重要问题就是迁移。尝试了导出插件,但在导入的时候遇到问题,又因为没配置发邮件功能,也不想去用他的debug功能。同时还考虑到之前安装的插件对原有数据库的侵入,因为一部分插件已经不需要安装。好吧,爱干净的我就选择了重新安装,再单独迁移数据和已上传的文件资源。一阵操作猛如虎之后,blog又回来了。选择一个清爽的模板,少了很多插件,一切又回到了从前。这里就记下搬家的过程好了。... 阅读详情
Read More →假设有这样一个场景,在一个订票的网站里,我们要为一起出游的20多个人订票,那么我们需要将这些人的姓名及证件号码分别在网页上录入。如果我们只一次性的订票,那么还是可以忍受,但是如果你是旅行社或者是从事这方面的工作,每天都是如此,仿佛就变成了一种负担,倘若再加上一个限制条件,每天的票量是有限的,那么在需要抢票的情况下,当然谁的操作越迅速,买票成功率就会越大。这个时候,有一个帮我们自动填写的浏览器插件,效率便会大大提高。Chrome的插件还是很方便的,它可以帮助我们在需要的页面上执行自己的一些代码,根据需求完成一些繁琐的操作,这时使用Chrome插件就是一个快捷的选择。... 阅读详情
Read More →