摘要: 什么是2-8法则? 比较容易想到的就是地球上80%的财富掌握在20%的人手里。从另一个角度来解读2-8法则是:大部分事情,你只需要花20%精力就能够做到80分,而如果你想突破到90分,则至少需要花80%的精力。 想想我们在学校里学习的时候,只要你上课认真听课不开小差,认真完成家庭作业,其他时间该玩玩 阅读全文
posted @ 2019-09-17 00:05 无恨之都 阅读(2119) 评论(10) 推荐(11) 编辑
摘要: 在上一章中,我们完善了我们的日志系统,用direct交换器替换了fanout交换器,使得我们可以有选择性地接收消息。尽管如此,仍然还有限制:不能基于多个标准进行路由。在我们的日志系统中,我们可能不仅希望根据日志等级订阅日志,还希望根据日志来源订阅日志。这个概念来自于unix工具syslog,它不仅可 阅读全文
posted @ 2019-05-02 17:19 无恨之都 阅读(6498) 评论(0) 推荐(0) 编辑
摘要: 在上一章中,我们构建了一个简单的日志系统,我们可以把消息广播给很多的消费者。在本章中我们将增加一个特性:我们可以订阅这些信息中的一些信息。例如,我们希望只将error级别的错误存储到硬盘中,同时可以将所有级别(error、info、warning等)的日志都打印在控制台上。 1、绑定(Binding 阅读全文
posted @ 2019-05-02 10:38 无恨之都 阅读(5465) 评论(0) 推荐(0) 编辑
摘要: 在上一章中,我们创建了一个工作队列,工作队列模式的设想是每一条消息只会被转发给一个消费者。本章将会讲解完全不一样的场景: 我们会把一个消息转发给多个消费者,这种模式称之为发布-订阅模式。 为了阐述这个模式,我们将会搭建一个简单的日志系统,它包含两种程序:一种发送日志消息,另一种接收并打印日志消息。在 阅读全文
posted @ 2019-05-01 17:32 无恨之都 阅读(31016) 评论(2) 推荐(2) 编辑
摘要: 在上一章的指南中,我们写了一个命名队列:生产者往该命名队列发送消息、消费从从该命名队列中消费消息。在本章中,我们将创建一个工作队列,用于在多个工作者之间分配耗时的任务。工作队列(即任务队列)的主要思想是避免立即执行那些需要等他们执行完成的资源密集型任务。相反,我们将任务安排在稍后完成。我们将任务封装 阅读全文
posted @ 2019-04-30 23:25 无恨之都 阅读(3390) 评论(0) 推荐(0) 编辑
摘要: 为什么要使用MQ消息中间件?它解决了什么问题?关于为什么要使用消息中间件?消息中间件是如何做到同步变异步、流量削锋、应用解耦的?网上已经有很多说明,我这里就不再说明了,读者可以参考(https://www.jianshu.com/p/2820561158c4)。我在接下来的RabbitMq系列博客里 阅读全文
posted @ 2019-04-27 23:40 无恨之都 阅读(2981) 评论(4) 推荐(6) 编辑
摘要: NullPointerException相信每个JAVA程序员都不陌生,是JAVA应用程序中最常见的异常。之前,Google Guava项目曾提出用Optional类来包装对象从而解决NullPointerException。受此影响,JDK8的类中也引入了Optional类,在新版的SpringD 阅读全文
posted @ 2019-04-27 18:11 无恨之都 阅读(12362) 评论(4) 推荐(4) 编辑
摘要: 在JDK1.8以前,接口(interface)没有提供任何具体的实现,在《JAVA编程思想》中是这样描述的:“interface这个关键字产生了一个完全抽象的类,它根本就没有提供任何具体的实现。它允许创建者确定方法名、参数列表和返回类型,但是没有任何方法体。接口只提供了形式,而未提供任何具体实现”。 阅读全文
posted @ 2019-04-22 22:11 无恨之都 阅读(5656) 评论(0) 推荐(0) 编辑
摘要: Java8的两个重大改变,一个是Lambda表达式,另一个就是本节要讲的Stream API表达式。Stream 是Java8中处理集合的关键抽象概念,它可以对集合进行非常复杂的查找、过滤、筛选等操作,在新版的JPA中,也已经加入了Stream。如: Stream API给我们操作集合带来了强大的功 阅读全文
posted @ 2019-04-20 13:18 无恨之都 阅读(42137) 评论(11) 推荐(16) 编辑
摘要: 上一节介绍了Java8新特性中的Lambda表达式,本小节继续讲解Java8的新特性之二:方法引用。方法引用其实也离不开Lambda表达式。 1、方法引用的使用场景 我们用Lambda表达式来实现匿名方法。但有些情况下,我们用Lambda表达式仅仅是调用一些已经存在的方法,除了调用动作外,没有其他任 阅读全文
posted @ 2019-04-17 23:39 无恨之都 阅读(28411) 评论(2) 推荐(8) 编辑