- 博客(9)
- 收藏
- 关注
原创 java线程池源码解析
主要介绍线程池相关知识,关于线程池,首先我们思考下为什么要用线程池。如果单纯的使用线程,线程的创建和销毁都是自己来完成,如果并发请求过多,可能造成资源耗尽。线程池可以对线程进行统一分配,调优和监控。本篇文章为《图灵学院》课程笔记降低资源消耗(线程无限制地创建,然后使用完毕后销毁)提高响应速度(无须创建线程)提高线程的可管理性java是如何实现和管理线程池的,jdk5开始把工作单元和任务执行分离,工作单元包括callable、runnable,而执行机制由Executor提供,Executor的实
2020-08-22 17:14:06
158
原创 记一次线上故障处理
前言作为一个开发,肯定会遇到线上问题,遇到线上故障快速的定位解决,是开发者一项必备的能力。工作中可能会遇到各种故障,这边主要记录下之前遇到的一个线上问题问题描述早上到办公室打开钉钉,发现线上应用的一个实例重启了……卧槽感觉情况不妙!!!迅速打开sls看下线上日志情况,一看果然有问题oom了….自己登录系统大致浏览了下,系统比较正常,应该是重启之后,使用过程中没发生异常情况,感觉应该是偶发情况,准备看下代码慢慢定位下问题,再解决。就在这时,系统的用户找过来了于此同时发现,公司内部运维
2020-08-19 08:42:51
267
原创 Redis基础数据结构
Redis 有 5 种基础数据结构,分别为:string (字符串)、list (列表)、set (集合)、hash (哈希) 和 zset (有序集合)。原文地址String(字符串)字符串 string 是 Redis 最简单的数据结构。Redis 所有的数据结构都是以唯一的 key 字符串作为名称,然后通过这个唯一 key 值来获取相应的 value 数据。不同类型的数据结构的差异就在于 value 的结构不一样。字符串结构使用非常广泛,一个常见的用途就是缓存用户信息。我们将用户信息结构体使用
2020-10-31 17:42:08
142
原创 zookeeper伪分布式集群环境搭建
伪分布式集群就是在一台机器部署多个zk应用,部署之前服务器需要有jdk环境 java -version可以显示相关java信息才可以进行zookeeper搭建,本文是基于macOs搭建,原文地址下载下载之后解压tar –zxvf zookeeper-3.4.6.tar.gz 文件夹重命名mv zookeeper-3.4.6 zookeeper 配置step1进入zk中的conf目录下输入cp zoo-sample.cfg zoo1.cfg cp zoo-sample.cfg zoo
2020-09-17 23:36:04
614
原创 消息队列核心-如何保证消息不丢失
使用消息队列,绕不开的一个问题就是如何保证消息不丢失,现在主流的消息中间件都提供了完整的消息可靠性保证机制,可以确保消息的可靠传递,本文以rocketMq为例介绍如何保证消息不丢失,其他消息队列类似。原文地址消息传递过程基本上所有的消息都划分为三个阶段生产、存储、消费,如下图生产阶段: 在这个阶段,从消息在 Producer 创建出来,经过网络传输发送到 Broker 端。存储阶段: 在这个阶段,消息在 Broker 端存储,如果是集群,消息会在这个阶段被复制到其他的副本上。消费阶段: 在这个
2020-09-02 22:24:48
392
原创 消息队列核心-消息模型
目前消息队列有很多种,如kafaka、rocketMq、rabbitMq,所有消息队列的模型都比较类似,基本都包括像队列(Queue)、主题(Topic)或是分区(Partition)等概念。本文详细介绍下消息队列中这些概念的具体含义,文章参考:极客时间-消息队列高手队列模型如上图是最早的消息模型,也是最直观的消息模型,我最先理解消息模型的时候,就是这么理解的,消费者发送消息到队列中,生产者从队列中消费消息,如果只有一个生产者、消费者这种模型应该没啥问题。如果存在多个消费者,在这种模型中每个消费者是竞
2020-08-30 17:26:10
251
原创 hexo d unable to auto-detect email address (got ‘root@localhost.(none)‘)
1、通过GitHub、Gitee搭建个人博客,在更新内容的时候出现了下面的错误;2、在网上找了一下解决办法,一般都是说修项目路径中.git里的confg文件3、我这边修改了没有效果,还是会出现同样的错误仔细看下错误日志,发现其实已经给出了明确的解决方法4、老实的按照提示执行下配置命令,问题完美解决 git config --global user.email "you@example.com" git config --global user.name "Your Name"个人博客
2020-08-22 17:10:27
417
原创 jvm由浅入深
jvm由浅入深JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译。Java语言使用Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。以上是百度对于jvm的介绍jvm的组成jvm主要由类加载器、运行时
2020-08-14 00:12:49
209
原创 rocketMq安装及集群配置
网上关于rocketMq安装、集群配置的文章有很多,作为一个初学者,跟着网上的各种教程安装遇到了各种坑,可谓是一路坎坷。本文记录下rocketMq安装的完整过程。希望对你有一点帮助安装rocketMq基于MacOS10.14.6、jdk1.8下载源码包http://rocketmq.apache.org/dowloading/releases/解压unzip rocketmq-all-4.4.0-source-release.zip项目构建# 进入解压目录cd rocke
2020-08-10 23:15:30
279
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅