博客
分类
标签
归档
关于
博客
分类
标签
归档
关于
Tau的博客
文章
分类
标签
归档
关于
分享一个RabbitMQ MQTT插件的“坑”
背景知识RabbitMQRabbitMQ是一个基于高级消息队列协议 (Advanced Message Queue Protocal, AMQP) 的消息中间件,使用erlang开发,整体架构分为生产者(producer), 交换机(exchange), 队列(queue)和消费者(consumer),整体结构如下: 和常见消息队列不同,RabbitMQ中没有topic的概念,而是使用一个...
2024-05-25
中间件
中间件
Read More
换行业&换工作,聊聊过去的一年
是的,我换工作了。其实距离换工作已经过去大半年了,从一家互联网大厂换到了一个制造业外企,这篇文章主要想简单聊聊换工作前后的一些感受。 为什么换工作作者之前是在上海的一家互联网厂工作,由于家境贫寒,无法在上海定居,加之这两年行业不景气(跳槽之后发现新的行业也不景气…),又加之去年年初迎来了组织架构调整,于是在各种buff加成下,我选择了离职,离开了上海,去了家外企工作。 互联网厂 vs 外企和...
2024-02-17
总结
总结
Read More
分享一个python进程池的“坑”
背景最近线上运行的一个python任务负责处理一批数据,为提高处理效率,使用了python进程池,并会打印log。最近发现,任务时常会出现夯住的情况,当查看现场时发现,夯住时通常会有几个子进程打印了相关错误日志,然后整个任务就停滞在那里了。 原因夯住的原因正是由于一行不起眼的log导致,简而言之,Python的logging模块在写文件模式下,是不支持多进程的,强行使用可能会导致死锁。 问题...
2023-12-16
python
python
Read More
创建进程的时候到底发生了什么
进程作为操作系统中的基本管理单位,起着重要作用,那么进程到底是怎么被创建的,创建进程时到底都发生了些什么,本文将会讨论这些问题。 进程是如何被创建的从现象上看,当我们执行一个main方法时,会创建一个进程,当我们执行一条linux命令时,也会创建一个进程。要说进程究竟是如何被创建的,这里给出两个回答: 进程是被它的父进程创建的 进程是被fork出来的 这两个回答都对,只是从不同层面回答了...
2023-11-14
操作系统
操作系统
Read More
【git篇】聊一聊git rebase和git checkout
前言git作为日常开发中的必备工具,这篇文章主要介绍git的基本原理和一些常见的git使用场景。 git 分区介绍在 Git 中,有三个主要的区域:工作区(Working Directory)、暂存区(Staging Area)和仓库(Repository)。工作区是当前正在编辑和修改的项目目录。 暂存区是 Git 仓库中的一个临时存储区域,当我们执行 git add 命令时,工作区中的文件...
2023-08-05
git
git
Read More
聊一聊linux中的tc命令
最近杂事太多,又是组织架构调整,又是换工作,最近终于有空能写下这边文章了。 tc (Traffic Controll) 作为linux中的流量控制工具,功能非常强大,可以对网络流量的速率、延迟、带宽等进行控制。本文主要介绍tc命令的结构和使用,多数内容来自于对参考文章的翻译和整理,并增加了一些解释和说明,帮助大家在工作中能够快速理解和使用该命令。 什么是tc命令?一言以蔽之,tc是lin...
2023-05-25
Linux
Linux
Read More
【基本功】如何理解Java线程中断
什么是线程中断从广义上讲,就是中断一个正在工作或sleep的线程,从代码上讲, 所谓的线程中断,就是设置某个线程的中断标志位,当我想要中断某个线程的时候,就将这个线程的中断标志位设置为true, 但是至于是否响应中断,全凭JVM或这个线程自己决定。 为什么要有中断 一种常见的用途是用于线程池的shutdown方法, 如果你去查看ThreadPoolExecutor的shutdown方法方法...
2023-03-12
Java
Java
Read More
如何在Java中优雅地使用异常
本文会简单介绍Java异常的分类, 以及在使用异常过程中的一些注意事项。 异常的分类Java异常是JVM应对错误的一种方式,无论是编译时错误、运行时错误、还是JVM内部错误,它的分类如下: Java的Exception和Error都继承自Throwable, Exeception包括CheckedExeception和UncheckedException,其中CheckedExcept...
2023-03-05
Java
Java
Read More
一次由ip封禁引起的问题分析
问题背景 前两天有同事咨询:机器A上有个业务客户端,机器B上为服务端,服务端要定期探活客户端,当客户端访问不通时服务端应当摘除这个客户端节点。现在要验证下当客户端访问不通时服务端能否正常摘除节点,于是使用了iptables的ip封禁功能。在机器A上封禁机器B的ip后,在封禁期间服务B无法请求服务A,但是当取消机器A上的ip封禁后,服务B尽然收到了来自服务A的响应! ...
2023-02-10
网络
网络
Read More
聊一聊限流之guava限流器
前言限流是微服务应用中一个老生常谈的话题,当A调B时,为了防止A的流量过大把B打垮,需要为B配置限流,限制上游应用对B的调用频率。关于限流算法,有漏桶算法、令牌桶算法、计数器算法、滑动窗口算法,本文不再赘述。本文主要讲解guava中的限流算法。 用法guava限流算法实现的是令牌桶算法,依赖于包 12345<dependency> <groupId>com.go...
2022-10-22
Java
Java
Read More
1 / 10
Next