首页 > 经验记录

  关于数据库字段与实体类中枚举的映射也算不上花活了。在业务开发中还是比较有必要的。 比如一个实体类里有个 state 字段, 里面包含了几种状态如: 初始化、进行中、已完成;   像这种类似于一个对象的状态都是可以被枚举出来的, 同时也可能携带一定的业务逻辑与状态之间切换的规则。 此时如果直接使用数字类型/字 ...

Read more »

阅读全文 »

  虽说现在连 SpringBoot 都抛弃 Maven 开始使用 Gradle 来构建了,可关于Gradle这个工具呢在用的人还是挺少的,在网上搜的资料也大多还都是基于安卓项目的配置。 当然 Java 的也会有, 不过基本上都是些很基础的单个项目的构建法,复杂的很少。而一个真实的企业级应用中项目构建会涉及到的点还是比较多的,网上搜 ...

Read more »

阅读全文 »

  关于限流这种机制呢也算是老生常谈了, 毕竟在业务开发中实在是很多地方都会用到。比如第三方接口调用限制、并发访问数控制等…   而具体的限流算法在单机中很容易就可以实现,  在java的世界里既有开源库Guava的RateLimiter,  也有JUC中自带的 Semaphore、BlockingQueue等。拿来随手就可以使用。 &nbs ...

Read more »

阅读全文 »

关于OAuth2协议, 相信有一定开发经验的开发者也不陌生了。 毕竟只要涉及到 多端应用、第三方登陆、API接口调用 总会接触到这个概念。   这里就主要探讨一下在微服务体系中使用 OAuth2 协议实现鉴权方案时,如何最大化减少网络通信次数,从而提升系统的响应速度。 准备讨论的架构是我个人对于 OAuth2 这个协议在微 ...

Read more »

阅读全文 »

  当网站业务快速发展,数据量不断地上升,那么不可避免的底层DB压力会越来越大。 一般最开始都可以靠更换硬件来解决,加钱上更好的机子是最简单的方案,但这只限于你的增加的硬件费用算起来相对经济以及确实单机能顶得住业务量来说的。 但是在你业务激增的情况下,数据和访问量的增长势必会突破单机的极限,即单 ...

Read more »

阅读全文 »

  最近在自己搭一个使用 SpringSecutiryOAuth2 的认证服务器, 这里的接口基于 SpringMVC, 而资源服务器是 SpringCloudGateway 建立的网关层,实现是 WebFlux。 目的是为了在网关层做所有的鉴权操作。  其实一切都还好,ajax 登陆、OAuth2密码模式的 token 获取、token刷新等 都有序进行中。   认证的整个流 ...

Read more »

阅读全文 »

现在各种工具、中间件都是在用docker部署了。 安装了docker后 一行run命令就搞定了,确实也方便。不过有点难受的是有些中间件的配置, 主要是环境变量我根本就不记得。 最近又要在别的服务器上用 docker 部署几个东西, 我就想着每次都临时去自己的旧记录(我有个文档记录) 里翻配置也怪麻烦的。想了 ...

Read more »

阅读全文 »

  前情提要: 本来我是有在写一个自己的项目, 有一些配置类想将其配置变得优雅一些,就想着用配置文件的形式。也方便打包编译的时候快速切换不同环境。 由于是SpringBoot项目,那么用配置文件的形式呢,当然少不了@ConfigurationProperties 这个注解 使用了这个注解来将配置文件的值注入到配置类之中呢,我还不满足 ...

Read more »

阅读全文 »

  上一篇文章:  RabbitMQ 死信机制真的可以作为延时任务这个场景的解决方案吗? 里最终得出的结论: RabbitMQ 死信机制可以作为延时任务这个场景的解决方案 但是,由于 RabbitMQ 消息死亡并非异步化,而是阻塞的。所以无法作为复杂延时场景——需要每条消息的死亡相互独立这种场景  下的解决方案。 如果说,果真我的 ...

Read more »

阅读全文 »
关于延时任务,在业务场景中实在是太常见了。比如订单,下单xx分钟未支付就要将订单关闭。 比如红包, XX分钟未抢,则红包失效。那么说起延时任务的实现方案的话,可能有很多人第一时间会想到轮询,即设置定时任务,而稍有经验的开发者就知道。轮询这机制会给数据库带来很大压力,小业务当然无所谓。如果是大量数据要处理的业务用轮询肯定是不行的。而且你如果要保证高可用,就又得牵扯出分布式定时任务。怎么搞都很麻烦。很多小机灵鬼知道可以用消息队列来实现。确实,MQ的异步性和解耦性在延时任务的这种场景下可以爆发出很强的战斗力。而 RabbitMQ 因其被广泛使用,关于如何实现延时任务自然也有其解决方案…

阅读全文 »
EA PLAYER &

历史记录 [ 注意:部分数据仅限于当前浏览器 ]清空

      00:00/00:00