弹性工程 1,003 次访问 2022-10-04 当被问到怎样才能提高功能可靠性,大部分人的第一反应可能是更严谨的功能设计和更高质量的测试,并多多少少能谈些在自己工作中的实践。的确,严谨的功能设计和高质量的测试可以大大降低出BUG的概率,从而提升功能可靠性。但是如果换个问题:你能保证你做的功能万无一失吗?相信绝大部分的人心里立马就打起了退堂鼓。人非 Read More
领域驱动设计核心概念 1,686 次访问 2020-01-05 领域驱动设计是一套针对软件建模和设计的方法论,尤其适合运用在复杂系统的设计上,它强调从业务出发,合理的划分领域边界后进行建模,以保证能构建出生命力强大,适合长期演进的架构,而这点与微服务拆分的思路不谋而合,因此领域驱动设计也经常被用于指导微服务的拆分 在领域驱动设计中,主要有四大核心类业务概念,它们 Read More
RocketMQ 1,295 次访问 2019-12-05 RocketMQ是阿里巴巴在2012年开源的消息队列产品,现已成为Apache顶级项目,是一个性能、稳定性和可靠性都非常不错的消息队列,它在响应延时方面做了很多优化,比起基于异步批量处理的Kafka,它在延时响应方面的表现会明显占优 消息模型 RocketMQ的消息模型是标准的发布-订阅模型,发布者 Read More
类加载器详解 1,645 次访问 2019-11-09 类加载器的作用是:通过一个类的全限定名来获取描述此类的二进制字节流,应用程序可以使用虚拟机提供的类加载器,也可以通过自定义类加载器来实现获取所需要的类 命名空间 对于虚拟机中的任意一个类,它的唯一性是由加载它的类加载器和它本身一同确立的。每一个类加载器都拥有一个独立的命名空间,每个被当前类加载器加载 Read More
虚拟机类加载机制 1,234 次访问 2019-10-20 在Java语言中,类型的加载、连接和初始化过程都是在程序运行期间完成的,这种策略虽然会在运行时因为类加载增加一些性能开销,但是也为Java应用程序带来了高度的灵活性,我们通过预定义和自定义的类加载器,可以让一个Java程序在运行时从网络或任何加载器中定义的方式加载一段二进制流作为程序代码的一部分 类 Read More
Docker Compose 1,586 次访问 2019-09-22 Docker Compose是一个用于Docker容器编排和部署的工具,随着项目需要发布的容器数量越来越多,容器与容器间的依赖关系变得复杂,将每个容器作为一个独立的个体来进行维护将会对集群运维人员造成极大的负担,而Docker Compose正是为了解决这一痛点,能够让我们通过配置,定义容器集群的编 Read More
线程基础 426 次访问 2019-09-07 线程模型 在Java中,代表线程的Thread类中大多方法都是由与平台相关的Native方法实现的,由于各类操作系统中线程模型不同,所以Java线程模型的实现也必然有差别,事实上,JVM规范中也并未规定Java中线程需要使用哪种模型来实现,完全依赖于虚拟机的具体实现。 在Windows版和Linux Read More
Vert.x-Redis 784 次访问 2019-08-04 Vert.x-Redis是Vertx官方提供的一个Redis的无阻塞异步调用库,本文基于3.8.1版本来介绍Vert.x-Redis的核心API RedisOptions 用于指定创建redis连接的配置,这里使用的是io.vertx.redis.client包下的而非io.vertx.redis包 Read More
Java异步编程总结 912 次访问 2019-07-28 从JDK1.5开始,Java就引入了对异步的支持,而Vert.x作为一个异步框架,也有着基于回调的异步模型,本文我们就来分析下JDK原生的异步调用和Vert.x的异步模型的区别 JDK原生Future JDK原生的Future代表了一次异步调用的执行结果,在主线程提交一次异步任务时,JVM将会开辟一 Read More
Vert.x Core基础 574 次访问 2019-07-20 Vert.x是一个基于Netty的异步编程工具集,它的核心包中提供了编写异步WEB应用的基础API。现在市面上大多数WEB框架依赖于简单的线程策略:每一个请求绑定一个线程,这个线程处理这个请求直到返回响应或失去连接,这种同步I/O模型虽然易于理解,但不仅增加了系统内核调度线程的开销,且各类I/O的阻 Read More