第一章 转换思路 向麦肯锡学习逻辑思维 解决问题的根本就是逻辑思考力。 逻辑思考力不是依赖经验,以前怎么做可以成功,现在也怎么做。 逻辑思考是依靠数据观察现象,提出假设,然后再求证。 不要把假设和结论混为一谈。分析数据整理出来的是现象,是假设,而不是结论。要透过现象看到本质的原因。能解决问题的才是结论,否则是现象。 “全方位努力”的想法是错的。大部…
焦油坑 过去几十年的大型系统开发就犹如这样一个焦油坑,很多大型和强壮的动物在其中剧烈地挣扎。 它们挣扎得越是猛烈,焦油纠缠得越紧,没有任何猛兽足够强壮或具有足够的技巧,能够挣脱束缚,它们最后都沉到了坑底。 人月神话 缺乏合理的时间进度是造成项目滞后的最主要原因: 对估算技术缺乏有效的研究 隐含地假设人和月可以互换 没有持续进行估算工作 对进度缺少跟…
第二章 潜意识 任何痛苦事件都不会自动消失,哪怕再小的事情也是如此。要想不受其困扰,唯一的办法就是正视它、看清它、拆解它、化解它,不给它进入潜意识的机会,不给它变模糊的机会;即使已经进入潜意识,也要想办法将它挖出来。所以,当你感到心里有说不清、道不明的难受的感觉时,赶紧坐下来,向自己提问 。 到底是什么让自己烦躁不安?是上台演讲、会见某人,还是思绪…
前言 MQ(Message Queue)就是消息队列,其有点有很多:解耦、异步、削峰等等,本文来聊一下RabbitMQ的一些概念以及使用。 RabbitMq 案例 Springboot整合RabbitMQ简单案例 基本概念 Exchange:消息交换机,它指定消息按什么规则,路由到哪个队列。 Queue:消息队列载体,每个消息都会被投入到一个或多个…
1. pom.xml引入jar包 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-amqp</artifactId> </dependency> 2…
前言 我在上一篇文章聊了Redisson的可重入锁,这次继续来聊聊Redisson的公平锁。下面是官方原话: 它保证了当多个Redisson客户端线程同时请求加锁时,优先分配给先发出请求的线程。所有请求线程会在一个队列中排队,当某个线程出现宕机时,Redisson会等待5秒后继续下一个线程,也就是说如果前面有5个线程都处于等待状态,那么后面的线程会…
前言 Redisson是一个在Redis的基础上实现的Java驻内存数据网格(In-Memory Data Grid)。Redisson有一样功能是可重入的分布式锁。本文来讨论一下这个功能的特点以及源码分析。 前置知识 在讲Redisson,咱们先来聊聊分布式锁的特点以及Redis的发布/订阅机制,磨刀不误砍柴工。 分布式锁的思考 首先思考下,如果…
前言 如果你有自己的云服务器,并且需要用到内网穿透,那么可以考虑使用FRP搭建自己的内网穿透服务。 常用的内网穿透工具有:cpolar、natapp、向日葵…… 但是以上介绍的工具,如果使用免费版,都有诸多限制(毕竟要恰饭的嘛)。所以,干脆自己弄一个吧。 安装 我使用的版本是 V0.43.0,下面以 http 穿透举例。 下载 在Github的 R…
添加远程连接配置 启动远程服务器上的Java项目 在上一个步骤,我们复制了这一串东西 -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 这是jvm的启动参数,当我们启动java项目时添加上这串参数,就可以开启远程调试。下面以启动jar包为例: java -jar -…
前言 最近在写东西部署到服务器,结构是springboot工程配合docker部署。 但是每次部署都3个步骤: 本地构建jar 复制jar到远程服务器 用DockerFile构建镜像 部署次数一多,我就怀疑人生了。就在找有没有IDEA远程部署Docker的方案,于是就有本篇博客。 环境: 本地IP:192.168.1.5 Docker远程主机:19…