04 2018 档案
摘要:原因: 假如有10000个连接,4核CPU ,那么bio 就需要一万个线程,而nio大概就需要5个线程(一个接收请求,四个处理请求)。如果这10000个连接同时请求,那么bio就有10000个线程抢四个CPU ,几乎每个CPU 平均执行2500次上下文切换,而nio 四个处理线程,几乎每个线程都对应
阅读全文
摘要:原文:https://blog.csdn.net/ggibenben1314/article/details/47752661 缓存的应用非常广泛,为了提高数据访问的速度。Dubbo也不例外,它提供了声明式缓存,以减少用户加缓存的工作量。 一、Dubbo中缓存策略 lru 基于最近最少使用原则删除多
阅读全文
摘要:countdownlatch是java多线程包concurrent里的一个常见工具类,通过使用它可以借助线程能力极大提升处理响应速度,且实现方式非常优雅。今天我们用一个实际案例和大家来讲解一下如何使用以及需要特别注意的点。 由于线程类的东西都比较抽象,我们换一种讲解思路,先讲解决问题的案例,然后再解
阅读全文
摘要:原文地址:http://zhuanlan.51cto.com/art/201704/536407.htm 一、缘起 一切脱离业务的架构设计与新技术引入都是耍流氓。 引入一个技术之前,首先应该解答的问题是,这个技术解决什么问题。 就像微服务分层架构之前,应该首先回答,为什么要引入微服务,微服务究竟解决
阅读全文
摘要:背景 最近项目有很多业务场景涉及到先查DB,DB没数据则再查Redis,并且类似的业务重复性的代码比较多,为了方便后期的维护,打算基于这个场景写一套通用的查询和转换方案。 项目是采用Spring Boot框架搭建的,我主要实现的思想是基于责任链的模式,大致流程是自定义一个@Redis注解在服务层,当
阅读全文
摘要:Java线程:概念与原理 一、操作系统中线程和进程的概念 现在的操作系统是多任务操作系统。多线程是实现多任务的一种方式。 进程是指一个内存中运行的应用程序,每个进程都有自己独立的一块内存空间,一个进程中可以启动多个线程。比如在Windows系统中,一个运行的exe就是一个进程。 线程是指进程中的一个
阅读全文
摘要:背景 更加理解熟悉抽象类在我们实际开发过程中的具体使用场景,以及使用抽象类能给我们开发过程中带来哪些好处 设计流程: 大致流程是从Service层获取数据,先经过Redis,如果Redis没有数据再去查询db,最后把数据塞回到Redis,看似很简单的一个步骤,实际可以写出不同风格的方式。一般来说首先
阅读全文