创建线程池时通过设置线程池各项参数可以创建性能各异的线程池 new ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAlive ...
【消息队列】RabbitMQ如何处理消息丢失
首先明确一点 一条消息的传送流程:生产者->MQ->消费者 所以有三个地方都会丢失数据: 生产者发送给MQ的途中出现网络问题 MQ自己没保管好弄丢了 消费者拿到数据后出错了没有最终完成任务依次分析 1)生产者弄丢了数据 生产者将数据发送到rabbitmq的时候,可能因为 ...
dubbo 配置文件详解
dubbo 配置文件详解一、dubbo常用配置<dubbo:service/> 服务配置,用于暴露一个服务,定义服务的元信息,一个服务可以用多个协议暴露,一个服务也可以注册到多个注册中心。eg、<dubbo:service ref="demoService" interface=" ...
Redis知识点总结
简单来说 redis 就是一个数据库,不过与传统数据库不同的是 redis 的数据是存在内存中的,所以读写速度非常快,因此 redis 被广泛应用于缓存方向。另外,redis 也经常用来做分布式锁。redis 提供了多种数据类型来支持不同的业务场景。除此之外,redis 支持事务 、持久化、LUA脚 ...
让 hexo 博客在后台跑起来
让 hexo 博客在后台跑起来 前几天利用 hexo 搭建了一个博客,于是很高兴地用 $ hexo server 在我的 Linux 服务器上跑了起来。 但是发现,只要关闭了进程,博客也就跟着关闭了。想着,这样的博客给谁看啊,总不能我本地一直开着进程吧。 于是我开始搜索相关 h ...
后端程序员必备的Linux基础知识
一 从认识操作系统开始 1.1 操作系统简介 1.2 操作系统简单分类 二 初探Linux 2.1 Linux简介 2.2 Linux诞生简介 2.3 Linux的分类 三 Linux文件系统概览 3.1 Linux文件系统简介 3.2 文件类型与目录结构 四 Linux基本命令 ...
《深入理解计算机系统》 day01
预处理阶段预处理器(cpp)识别以#字符开头的指令 修改源程序,比如#iclude<stdio.h>告诉预处理器读取系统头文件stdio.h的内容并把它插入程序文本中就得到另一个C程序,以 .i 为文件扩展名 编译阶段编译器(ccl)将hello.i翻译成文本文件hello.s,它包含一 ...
HashMap为什么不是线程安全的?
当Hashmap的容量不够时,需要扩容扩容包含扩容和ReHash两个步骤,ReHash在并发的情况下可能会形成链表环。具体细节参考:漫画:高并发下的HashMap(https://mp.weixin.qq.com/s/dzNq50zBQ4iDrOAhM4a70A) 程序员小灰
数据库事务的隔离级别
事务 就是要保证一组数据库操作,要么全部成功,要么全部失败。 在MySQL中,事务支持是在引擎层实现的 MySQL是一个支持多引擎的系统,但并不是所有的引擎都支持事务。比如MySQL原生的MyISAM引擎就不支持事务,这也是MyISAM被InnoDB取代的重要原因之一。事务的四大特性:ACID(At ...