摘要:
一、现象描述第三方数据上传,上传上来发现有一个人的出生日变成了 1991-07-15 23:00:00。这个时间明显不对,理论上这个的生日是1991年7月16号。曾经踩过夏令时的坑, 一看这个就知道应该是夏令时时区转换导致时间相差一个小时。二、问题分析与解决2.1 数据流转说明欲分析是哪里出现了时区 阅读全文
摘要:
一、背景在微服务项目开发中,虽然说每个服务都是一个微服务,可以独立工作。但现实中,一个微服务还依赖着它的下游服务,如用户服务、基础服务等。作为一名开发人员,当我完成了某个需求开发后。我需要对自己开发的代码进行自测以及全流程的验证。此时,有如下几种方案:a. 公司有容器环境,则独立部署一整套容器环境即 阅读全文
摘要:
为了加快程序的响应,日志异步打印是很有必要的。这里贴一个配置异步日志的xml,方便后续查阅 一、原理 logback的异步打印日志,原理就是用了一个阻塞队列来缓冲。具体可以参考源码ch.qos.logback.core.AsyncAppenderBase 二、参数说明 二、参数说明 1. queue 阅读全文
摘要:
曾经主导过一个SpringSecurity项目的改造,将Session改成Token;今日有一好友询问我相关经验,因此记录一下当时所做的内容 改造过程 SpringSecurity的session改token大概内容如下:禁用session登录成功,生成token,此token可以是jwt-toke 阅读全文
摘要:
记录一个数据上传下载夏令时踩坑经历。客户端将数据上传到平台,客户端再下载该数据,发现人的生日居然变成了前一天的23点,相差1小时 一、时区说明 Asia/Shanghai: 兼容夏令时,下面简称 "上海" GMT+8: 不兼容夏令时,比夏令时时间慢一个小时, 下午简称"东八" 二、转换丢失一小时说明 阅读全文
摘要:
开发过程中,日志一般都是直接输出到logstash,不过这都是几年前的玩法了。生产环境一般都是通过Filebeat去收集日志,不采用应用直连logstash的方式。为了实现快速切换,因此在项目的application.yml中添加个开关,直接通过开关切换输出到文件还是logstash 一、实现思路 阅读全文
摘要:
公司项目采用SpringBoot+dubbo技术栈,虽然上了elk,但是还是不能把所有的日志串联起来。因此自己写了一套traceId和spanId的生成方案。在此记录下该方案的具体实现,方便后续查阅 一、 名词解释 traceId:链路Id spanId:可以理解为服务Id,一各请求可能会调用多个服 阅读全文
摘要:
参考链接,http://www.logback.cn/ 一、logback打印json格式到文件注意事项 1.用springboot默认的encoder 一定要对日志内容中的双引号进行转义,不然会破坏json的结构。 转义方法 采用 %replace对双引号进行转义,参考下面的案例 {"system 阅读全文
摘要:
前后端分离后,由于没有了session,导致验证码内容存储在session已经不可能了,因此考虑存储在redis。本文将介绍一种基于cookie + redis方案的验证码 一、方案的提出 (1)验证码存放位置 没了session,则存储在redis,why? 因为redis 具有key自动过期,所 阅读全文
摘要:
在项目开发过程中,swagger ui是个非常好用的在线接口文档生成工具。但他有个缺点,不够安全,可以直接访问。虽然生产环境一般会关闭它,但难免有时候有人会把它开启,所以它需要一个登录的功能。本文将叙述登录功能的两种实现方案,两种方案随便一种都可以使用,看个人喜好。 一、环境说明 springboo 阅读全文