lombok注解后的代码不能生成完整javadoc? 作者: 灯小笼 时间: 2018-09-22 分类: 开发 评论 将[Lombok](https://www.projectlombok.org/)注解应用到一个项目中可以大大减少在IDE中生成或手工编写的样板代码行数。这样可以减少维护开销,减少bug,提高类的可读性。 在idea中要使用lombok是很简单的事情,只需要安装一个[lombok plugin](https://www.projectlombok.org/setup/intellij "lombok plugin"),然后在pom.xml加入对[lombok](https://www.projectlombok.org/setup/maven "lombok")的依赖即可。 与任何技术选择一样,使用Lombok既有积极的作用,也会有消极的影响。而最典型的不好的一面就是,将源代码生成javadoc的时候,因为源码里边使用了lombok,只声明了private的属性,而未编写setter/setter方法等,最后生成的文档当然就不会包含这些属性的getter和setter方法。先通过一个简单的例子复现一下这个场景。 - 阅读剩余部分 -
jyaml解析float类型的问题 作者: 灯小笼 时间: 2018-09-13 分类: 开发 评论 今天在使用[jyaml](http://jyaml.sourceforge.net/)解析一个配置类的时候,发现一个问题: * 整型和字符串的解析都没有问题 * float类型的解析则总是返回`0.0F`,无论是对值用引号包括,或者在后面加上大写的F,都是不行的。 - 阅读剩余部分 -
Redis很“忙” 作者: 灯小笼 时间: 2018-09-04 分类: 架构 2 条评论 最近redis很“忙”,一到上午10点左右,redis就频繁出现各种报错,大部分的场景还好,我们对cache的异常进行了捕获,只是在日志里边记录一下,而不会抛出异常,所以顶多就慢一些而已。不过,还是有让我们也不得不忙的场景出来: 1、有的场景使用redis缓存校验码,比如用户通过手机验证码登录时,明明发送验证码成功,明明输入正确的验证码,但是就是提示验证失败。 2、随着每个依赖redis的服务不断变慢,网站不断出现502,最后,基本上不能访问了。 于是,运维人员不得不一声令下,重启redis。终于,作为cache的redis内存占用量急剧下降,连接数也迅速降低,网站也很快恢复稳定,一切似乎完美地回归了。 这样的事情重复了几天,大家找到规律了,于是索性定了个定时任务,每天凌晨5点的时候,重启一下redis,为即将躁动的10点偃旗息鼓,杀杀他的威风。 不过,作为有技术素养有技术追求的团队,怎么能这样就认怂了呢? - 阅读剩余部分 -
一场mysql查询引起的“卡顿” 作者: 灯小笼 时间: 2018-09-03 分类: 架构 评论 一般我们说优化mysql,总是会将着眼点放在mysql的慢查询的优化上,或者字段的数据类型,mysql的分库/分表,读写分离,异或事务这些看上去高大上的东东上。但是,对于一些更加基础或者更加常识的地方,往往会加以忽视。就比如,本文将要提到的:mysql的查询本身的优化。 这次接到的优化任务出现的背景是: 我们有一个内部电话呼叫的系统,在下午使用客服相对较多的时候,在很随机的情况下,会出现突然的卡顿,这种现象维持的时间很短,检查的时候,往往发现cpu、内存、负载、网络,都很正常,查询错误日志也看不到异常。 系统用的是阿里云,2C4G,看负载的曲线也维持得很小很平稳,内存消耗也没有达到瓶颈。中间一度怀疑过对缓存的使用有问题,因为有很多临时数据都是通过cache在传输和保存的,调用频率也很高。于是,负责此项目的同学也做过很多方面的优化,想过很多招数。比如: 1、临时数据的保存从全量改为增量,大大降低了数据传输的量。 2、将数据库改成长连接,减少连接使用量。 原来我们使用的数据库是由阿里云提供的,后来降配了,长连接经常出现连接数不够的时候,又改为普通连接了。最后,我们又把mysql改成了自建,连接数2000,还是够用的。不过,即使使用长连接的时候,依然会出现卡顿,索性,就一直维持着使用普通连接了。 - 阅读剩余部分 -
利用wget抓取Caddy文档 作者: 灯小笼 时间: 2018-09-03 分类: 工具 评论 一直以为,抓取网站整站,要么需要一个非常牛的工具,要么自己用curl之类写一个。这次想把caddy的英文文档的站点做个镜像的时候,竟然发现可以直接利用wget来实现,还真是小瞧了这个常见的工具了。 wget的参数的详解,网上已经很多了,就不再copy了,有兴趣详细了解的朋友可以参考下面的链接: * * 首先,我想做caddy的doc的镜像的原因是因为经常访问不了,也就是说,不想通过代理才能访问,所以,我需要使用代理的相关命令。因为caddy是https协议,所以我export一个变量https_proxy来作为代理。 - 阅读剩余部分 -
如何平滑重启Caddy 作者: 灯小笼 时间: 2018-09-01 分类: 工具 1 条评论 网站讲究高可用,讲究不间断服务。而对于刚接触caddy的我们而言,修改配置文件是加家常便饭,比如:增加日志监控,增加一个301重定向什么的。那么修改了配置文件,配置文件是否配置正确呢?配置后又该怎么重启呢?如何确保重启过程的不间断服务呢?如果出现服务挂掉该怎么确保服务的自动启动呢?这一系列的疑问,我们今天来一一释怀吧。但是,需要相信的是,caddy作为一个新生代的web服务器软件,这些方面肯定会考虑到的。本文将参考官方的[命令行模式](https://caddyserver.com/docs/cli)文档,为这些问题一一解答。 > ps.关于Caddy的命令行参数,也可以参考我翻译的中文文档:[Caddy命令行参数](/caddy/cn-doc/cli.md) ## 如何检查配置文件正确性 caddy指定配置文件的参数是`-conf`,那么怎么验证配置文件是否正确呢?就像nginx的`-t`参数一样,caddy有`-validate`参数可供使用。看一下官方文档: > -validate > Parse the Caddyfile and exit. If syntactically valid, a message will be printed to stdout and the process log (if any) and will exit with status 0. If not, an error will be returned with a non-zero exit status. 解析Caddyfile并退出,如果句法结构正确,将会通过标准输出打印一条信息,记录日志(如果配置了),最后会退出,退出码为0。否则,会报出相应的错误信息,状态码为非0。 - 阅读剩余部分 -