Spring Boot基于Redis分布式锁让接口异步变同步
一般来说,我们都是让接口异步来提高系统的吞吐能力,但是有些场景,我们不得不把异步回调接口变为同步。
一般来说,我们都是让接口异步来提高系统的吞吐能力,但是有些场景,我们不得不把异步回调接口变为同步。
最近对接易企签,需要在用户签署完后把签名文件下载并存储到我们自己的文件存储中心,本来在测试环境和预发环境测试都都无问题,可是,上生产后,问题就来了
最近在做自助机,有个需求就是刷过磅卡获取车辆的过磅信息,那么就需要设备厂家提供接口,厂家那边是基于.net平台,他们为了自己方便,就只能提供WebService接口,那就没办法了,只能委屈自己。
周末的时候在家里折腾了一下Prometheus,感觉它部署方便、功能强大。本来也是想用在实际的项目中,但是领导却觉得这个东西还是太复杂了,因为我们完全用不到那么高级,我我我我我我也不敢继续谏言,毕竟我只是一个刚来的临时工,所以就自己做一个简单的监控程序吧。
当我们开发了一个Web Api之类的服务上线后,总以为可以松一口,可以舒心的撸几把游戏,但是事与愿违,有时候服务突然就挖塌了,而且还不自知,还在开开心心的排位赛,此时上级领导、客户、客户的领导都来慰问、鼓励,给你加油、打气。当然这只是一种情况,但足以看出服务监控还是很重要的。
也是上文中的项目,在前面也有介绍,这个项目是一个C/S项目,客户端是C#+Devexpress,因为涉及到某公司的核心框架,所以框架部分的代码是没有给我们,只是给了业务部分的源码,服务端也是,基于其公司核心框架开发,所以能拿到是也只有业务代码。
也有好几周没写东西了,主要是上上周被调去前公司产品组做前端了,然后这周刚换工作也比较忙,以至于无暇他顾,着实惭愧啊。这周新工作主要是C/S项目,C端使用C#+Devexpress,S端使用的Spring MVC+Spring Boot(Spring MVC是之前老项目,这次的新业务准备用Spring Boot,所以才有了这二者)。在项目搭建过程中想到几个比较实用的思路,所以,这里就来总结记录一下。
Spring Boot
遵循约定大于配置的思想为我们省去了繁杂的XML配置,其为我们提供了许多诸如:spring-boot-starter-web
、spring-boot-starter-data-jpa
、spring-boot-starter-data-redis
等常用的Starter
组件,使得我们整合各种常用组件时显得非常简便快捷,那么这个Starter
为我们做了什么工作?让我们省去了各种繁杂的整合过程。
一般一个项目就只会用到一个数据库,但是有时候遇到比较复杂的一点的项目就会涉及到多个数据库,比如在业务量较大的时候会涉及到分库分表,如果不增加数据库代理层的话,就只有在项目中来处理。还有像我们现在在一个项目中会涉及到GBase
、MySQL
、DB2
这三种数据库,这种情况就涉及到多种数据库连接。那么我们Spring Boot中如何实现多数据库连接呢?
在Java中,我比较ORM熟悉就只有Hibernate
和Mybatis
,其他的并未实践使用过,在这二者之间我更喜欢Mybatis
,因为它精简、灵活(毕竟我是上年纪的程序员,喜欢自己写SQL)。