nekolr's blog

爱吃咖喱棒的打字员DA☆ZE~

在 Java 中,空指针异常(NullPointerException)是非常讨厌的。在 JDK 8 以前,我们通常只能通过主动防御式的检查来减少它的出现,但是在 JDK 8 之后我们可以使用 Optional 更优雅地处理这类问题。

Read more »

@Conditional 是 Spring 4 提供的新注解,它的作用是按照一定的条件进行判断,当满足条件时会给容器注册 bean。举个例子,比如说我们有一个接口,这个接口有多个实现类,当我们将这个接口交给 Spring 容器管理时通常只能选择其中一个作为实现类,但是我们又希望能够根据不同的情况注册不同的实现类,此时就可以使用该注解。

Read more »

Spring Cloud 其实就是一个全家桶,建立在 Spring Boot 之上,是微服务系统架构的一站式解决方案,覆盖了微服务的各个核心组件,其中很多组件都是 Netflix 家的。Spring Cloud 的版本号是以英国伦敦地铁站的名字命名的,同时按照字典顺序对应版本的时间顺序,最早的 Release 版本为 Angel,最新的 Release 版本为 Hoxton。

Read more »

最早在 Java 体系中使用最多的消息队列是 ActiveMQ,但是由于其社区不够活跃且历史包袱较重,目前使用者已经越来越少,此时另一个合适的选择就是 RabbitMQ。

Read more »

首先需要安装 Python 环境,同时将安装目录和安装目录下的 Scripts 目录添加到 PATH 环境变量中。

Read more »

RPC,也就是远程过程调用(Remote Procedure Call),通俗的解释就是通过网络来请求服务,而不需要了解底层网络技术的协议和细节。可能就是因为这个通俗的解释,造成很多人混淆了 HTTP 与 RPC。

Read more »

从命名上看,消息队列可以简单理解为存放消息的队列(Queue),而队列是一种常见的数据结构,在 Java 中的 java.util.Queue 接口下就有大量的队列实现。在一些业务场景中,我们可以使用 JDK 以及第三方包提供的队列实现,但是有些场景我们就不得不引入独立的队列组件,这有点类似 java.util.HashMap 与 Redis 的关系,它们都是以 key/value 的形式将数据存储到内存,但是在很多场景中我们需要使用 Redis 来替换 HashMap。

Read more »

传统上,Java 开发人员使用事务有两种选择:本地事务和全局事务,这两种选择都有很大的局限性。

Read more »

在 Redis 中,复制功能的主要作用是实现读写分离和数据备份,哨兵的作用是实现故障切换(failover),集群的主要作用是实现数据分片(sharding),解决单机的资源和性能瓶颈问题。

Read more »
0%