前言 本打算用CountDownLatch来实现,但有个问题我没有考虑,就是当用户APP没有扫二维码的时候,线程会阻塞5分钟,这反而造成性能的下降.好吧,现在回归传统方式:前端ajax每隔1秒或2秒发一次请求,去查询后端的登录状态. 一.支付宝和微信的实现方式 1.支付宝的实现方式 每隔1秒会发起一次http请求,调用https://securitycore.alipay.com/barcode/barcodeProcessStatus.json?securityId=web%7Cauthcen…
 前言 基于之前两篇(<spring boot高性能实现二维码扫码登录(上)——单服务器版>和<spring boot高性能实现二维码扫码登录(中)——Redis版>)的基础,我们使用消息队列的订阅与发布来实现二维码扫码登录的效果. 一.实现原理 1.参考微信的二维码登录机制 首先,请求后端拿到二维码.然后通过http长连接请求后端,并获取登录认证信息.这时,当二维码被扫,则记录seesion并跳转至内部页面. 如果没有扫码二维码,则线程会等到30秒(也有的说是20秒),如果再此期…
前言 目前网页的主流登录方式是通过手机扫码二维码登录.我看了网上很多关于扫码登录博客后,发现基本思路大致是:打开网页,生成uuid,然后长连接请求后端并等待登录认证相应结果,而后端每个几百毫秒会循环查询数据库或redis,当查询到登录信息后则响应长连接的请求. 然而,如果是小型应用则没问题,如果用户量,并发大则会出现非常严重的性能瓶颈.而问题的关键是使用了循环查询数据库或redis的方案.假设要优化这个方案可以使用java多线程的同步集合+CountDownLatch来解决. 一.环境 1.ja…
概要 基于上文讲解的spring cloud 授权服务的搭建,本文扩展了spring security 的登陆方式,增加手机验证码登陆.二维码登陆. 主要实现方式为使用自定义filter. AuthenticationProvider. AbstractAuthenticationToken 根据不同登陆方式分别处理. 本文相应代码在Github上已更新. GitHub 地址:https://github.com/fp2952/spring-cloud-base/tree/master/auth…
iOS Swift WisdomScanKit 是一款强大的集二维码扫码,自定义全屏拍照,系统相册图片编辑多选和系统相册图片浏览功能于一身的 Framework SDK [1]前言:    今天给大家推荐个好用的开源框架:WisdomScanKit,如果在开发中有用到二维码扫码,全屏拍照,系统相册图片编辑多选和系统相册图片浏览功能,推荐使用WisdomScanKit Framework,方便iOS日常开发,优点和功能请看下面介绍. [2]简介:     1: Swift由4.2版编写,完全兼容O…
Spring Boot REST(二)源码分析 Spring 系列目录(https://www.cnblogs.com/binarylei/p/10117436.html) SpringBoot REST 系列相关的文章: SpringBoot REST(一)核心接口 SpringBoot REST(二)源码分析 在上一篇文章中提到了 Spring Boot 中的 REST 的一些使用方法,@ResponseBody 默认返回一个 json,如果需要返回 xml 或者自定义返回媒体类型时怎么办呢…
使用 Docker 和 Nginx 打造高性能的二维码服务 本文将演示如何使用 Docker 完整打造一个基于 Nginx 的高性能二维码服务,以及对整个服务镜像进行优化的方法.如果你的网络状况良好,完整操作和体验时间应不超过 15 分钟. 动手前的脑洞 最近有一个小需求,需要在页面中快速生成一些二维码. 说到生成二维码,方法很多,比如按照 QRCode 算法进行计算之后: 使用各种服务端语言,然后调用 GD 绘图库在语言中的 API 进行绘制,并生成图片,然后配合能够提供 HTTP 服务的软件…
MyBatis 简介 概述 MyBatis 是一款优秀的持久层框架,支持定制化 SQL.存储过程以及高级映射.它采用面向对象编程的方式对数据库进行 CRUD 的操作,使程序中对关系数据库的操作更方便简单.它支持 XML 描述符配置文件和注解两种方式执行 SQL 语句."简单灵活"是它在对象关系映射工具上的最大优势. mybatis-spring-boot-starter 过去使用 MyBatis 开发,需要各种配置文件.实体类.Dao 层映射关联.还有一大推其它配置.经过进行不断的优化…
spring boot / cloud (十二) 异常统一处理进阶 前言 在spring boot / cloud (二) 规范响应格式以及统一异常处理这篇博客中已经提到了使用@ExceptionHandler来处理各种类型的异常,这种方式也是互联网上广泛的方式 今天这篇博客,将介绍一种spring boot官方文档上的统一处理异常的方式.大家可以在spring boot 官方文档查看介绍 在开始介绍新的方法之前 , 我们先来分析一下 , 以前的做法有那些地方是需要优化的 场景分析 通常我们需要…
Spring Boot 启动(二) 配置详解 Spring 系列目录(https://www.cnblogs.com/binarylei/p/10198698.html) Spring Boot 配置使用 Spring Boot 配置文件加载流程分析 - ConfigFileApplicationListener 一.Spring Framework 配置 略... 二.Spring Boot 配置 2.1 随机数配置 name.value=${random.int} name.int=${ra…