首页 | 月光中的污点

月光中的污点

云在青天水在瓶

欢迎访问本站!

文章列表

原创
2021-01-20

轻松搭建专属 CDN

前段时间笔者搭建一个博客系统放在服务器上,为了提高访问速度和减轻服务器访问压力,决定将页面中的静态资源使用 CDN 进行加速访问。 常见的 CDN 方案有 BootCDN 和 jsDelivr,笔者选择后者。 因为笔者编写的 jQuery 自定义插件,但无法上传到 BootCDN 上进行加速使用。而 jsDelivr 不同,它很强大,通过 GitHub 搭配 jsDelivr 可以搭建自己专属的 CDN 库。
阅读全文
原创
2021-01-19

XXL-JOB 基础教程

随着公司的产品项目活动的增加,活动进行过程中都需要用到大量定时器。为了能方便快捷的控制定时器的启动、执行和关闭,我们弃用了 Spring Boot 中自带的 @Scheduled 注解,采用开发、配置和操作更为灵活的 XXL-JOB。 XXL-JOB 是一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。 其特性非常丰富:
阅读全文
原创
2020-11-25

RabbitMQ 实现延迟队列

最近开发一个活动功能,需要在活动结束后给榜单 Top10 用户发放奖励。由于活动的榜单是通过 RabbitMQ 进行异步统计分值排名的,因此在活动结束时队列中可能还存在消息未消费完全,排名不准确,此时发放活动奖励必然会出错。 那么,如果解决这个问题呢? 与产品经理协商,允许延迟 10 分钟发放奖励。目前有 2 个方案: 因此,最终选定 RabbitMQ 的延迟队列实现方案。但是,RabbitMQ 没有直接提供延迟队列我们该如何实现呢?请继续阅读下文。
阅读全文
原创
2020-11-15

Redis 脱坑指南

Redis 是一款 key-value 内存数据库。由于其上手快,执行效率高,拥有多种数据结构,支持持久化以及集群等功能和特点被众多互联网公司所使用。但是,如果使用和操作不当,会引起内存浪费,甚至系统宕机等严重后果。 在 Redis 5 种数据类型中,string 类型最为常用,也最为简单。但是,能解决问题不代表使用了正确的数据类型。 例如,将一个用户(name,age,city)信息保存到 Redis 中,下边有三种方案:
阅读全文
原创
2020-11-07

浅析 ThreadLocal

根据 Java 官方文档的描述,我们可知 ThreadLocal 类用于提供线程内部的局部变量,其在多线程环境下能保证各个线程内部变量的隔离性。 换言之,ThreadLocal 提供线程内的局部变量,不同线程之间不会相互干扰,该变量作用范围贯穿线程的生命周期,减少同一线程内多个方法或组件之间一些公共变量传递的复杂度。 需求:用 3 名画家在一个画布上各自绘制一种颜色,并打印出其绘制的颜色。
阅读全文
原创
2019-04-02

Spring Cloud 入门 之 Config 篇(六)

随着业务的扩展,为了方便开发和维护项目,我们通常会将大项目拆分成多个小项目做成微服务,每个微服务都会有各自配置文件,管理和修改文件起来也会变得繁琐。而且,当我们需要修改正在运行的项目的配置时,通常需要重启项目后配置才能生效。 上述的问题将是本篇需要解决的问题。 Spring Cloud Config 用于为分布式系统中的基础设施和微服务应用提供集中化的外部配置支持,它分为服务端和客户端两部分。服务端(config server)也称为分布式配置中心,是一个独立的微服务应用,用来连接配置仓库并为客户端提供获取配置信息,加密/解密信息等访问接口。而客户端(config client)则是微服务架构
阅读全文
原创
2019-03-25

Spring Cloud 入门 之 Zuul 篇(五)

随着业务的扩展,微服务会不对增加,相应的其对外开放的 API 接口也势必增多,这不利于前端的调用以及不同场景下数据的返回,因此,我们通常都需要设计一个 API 网关作为一个统一的 API 入口,来组合一个或多个内部 API。 业界常用的 API 网关有很多方式,如:Spring Cloud Zuul、 Nginx、Tyk、Kong。本篇介绍的对象正是 Spring Cloud Zuul。 Zuul 是 Netflix 公司开源的一个 API 网关组件,提供了认证、鉴权、限流、动态路由、监控、弹性、安全、负载均衡、协助单点压测等边缘服务的框架。
阅读全文