草庐IT

一文搞懂MQTT,如何在SpringBoot中使用MQTT实现消息的订阅和发布

一、MQTT介绍1.1什么是MQTT?MQTT(MessageQueuingTelemetryTransport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的“轻量级”通讯协议,该协议构建于TCP/IP协议上,由IBM在1999年发布。MQTT最大优点在于用极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务。MQTT具有协议简洁、轻巧、可扩展性强、低开销、低带宽占用等优点,已经有PHP,JAVA,Python,C,C#,Go等多个语言版本,基本可以使用在任何平台上。在物联网、小型设备、移动应用等方面有较广泛的应用,特别适合用来当做物联网的通

Nginx详解(一文搞懂Nginx)以及Linux版本下安装

一、Nginx是什么?        Nginx(发音为"engineX")是一个流行的开源Web服务器软件。它最初由IgorSysoev开发,并于2004年首次发布。Nginx的目标是提供高性能、高可靠性和低内存消耗的Web服务器,同时也可以用作反向代理服务器和负载均衡器。        Nginx以其优越的性能和高度可扩展性而闻名。相对于传统的Web服务器软件(如Apache),Nginx采用了一种事件驱动的架构,能够处理大量并发连接,而且在高负载下表现出色。它也具有较低的内存消耗,使得它能够高效地处理大规模的并发请求。        除了作为Web服务器,Nginx还可以用作反向代理服务

15000字、6个代码案例、5个原理图让你彻底搞懂Synchronized

Synchronized本篇文章将围绕synchronized关键字,使用大量图片、案例深入浅出的描述CAS、synchronizedJava层面和C++层面的实现、锁升级的原理、源码等大概观看时间17分钟可以带着几个问题去查看本文,如果认真看完,问题都会迎刃而解:1、synchronized是怎么使用的?在Java层面是如何实现?2、CAS是什么?能带来什么好处?又有什么缺点?3、markword是什么?跟synchronized有啥关系?4、synchronized的锁升级优化是什么?在C++层面如何实现?5、JDK8中轻量级锁CAS失败到底会不会自旋?6、什么是objectmonitor

终于搞懂AutoCAD/SOLIDWORKS Electrical/Eplan之间的区别了,拿走不谢~

在电气设计日常工作中,往往不知道使用什么软件,设计工作可以更高效地完成,为此,小编给大家总结了主流电气软件功能对比表,看完后总能找到你需要的款.对比内容CADSOLIDWORKSElectricalEplan标准化设计标准化程度较低,不同工程师画的原理因差大可以以不同标准的模板快速建立项目属性,以及文件和设备的分类推行标准化理念,依靠符号、图框、表格、部件库、字典及各种规则设置实现紧跟国际步伐的标准化文件符号手动绘制,不标准不统一可新建符号库以及新建符号名称并添加符号属性,符号的新建可从其它文档导入DWG格式标准符号库,直接调用绘图连线手动绘制可新建符号库以及新建符号名称并添加符号属性,符号的

c++病毒/恶搞代码大全( 下 )

注:以下代码应勿用于非法(Dev-c++5.11实测可用)警告:以下为危险/永久性程序,请慎重使用8.效果:禁用任务管理器提示:可能被杀毒软件拦截#include#includeintmain(){HKEYhkey;DWORDvalue=1;RegCreateKey(HKEY_CURRENT_USER,"Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\System",&hkey);RegSetValueEx(hkey,"DisableTaskMgr",NULL,REG_DWORD,(LPBYTE)&value,sizeof(DWO

到底什么是Java AIO?为什么Netty会移除AIO?一文搞懂AIO的本质!

1、引言关于Java网络编程中的同步IO和异步IO的区别及原理的文章非常的多,具体来说主要还是在讨论JavaBIO和JavaNIO这两者,而关于JavaAIO的文章就少之又少了(即使用也只是介绍了一下概念和代码示例)。在深入了解AIO之前,我注意到以下几个现象:1)2011年Java7发布,它增加了AIO(号称异步IO网络编程模型),但12年过去了,平时使用的开发框架和中间件却还是以NIO为主(例如网络框架Netty、Mina,Web容器Tomcat、Undertow),这是为什么?2)JavaAIO又称为NIO2.0,难道它也是基于NIO来实现的?3)Netty为什么会舍去了AIO的支持?4

10分钟从源码级别搞懂AQS(AbstractQueuedSynchronizer)

10分钟从源码级别搞懂AQS(AbstractQueuedSynchronizer)前言上篇文章15000字、6个代码案例、5个原理图让你彻底搞懂Synchronized有说到synchronized由objectmonitor实现的objectmonitor中由cxq栈和entrylist来实现阻塞队列,waitset实现等待队列,从而实现synchronized的等待/通知模式而JDK中的JUC并发包也通过类似的阻塞队列和等待队列实现等待/通知模式这篇文章就来讲讲JUC的基石AQS(AbstractQueuedSynchronizer)需要了解的前置知识:CAS、volatile如果不了解

【拯救C盘】一文搞懂Windows修改Anaconda默认的虚拟环境存放路径及其原理

在安装了Anaconda之后,创建的虚拟环境可能会默认保存在C:\ProgramData\Anaconda3\envs或C:\Users\用户名\.conda\envs路径下,但C盘的存储空间很宝贵,由于每个虚拟环境的大小可能达到n个GB,稍不注意就会遇到C盘红色警告。解决思路方案1:每次创建虚拟环境时手动指定存放路径方案2:修改Anaconda默认的虚拟环境存放路径很显然,方案2更讨喜。经分析(如下图所示),可以知道在Anaconda目录下主要是envs和pkgs这两个文件夹占用了空间,这正是虚拟环境的目录和包目录,若可以把这两个文件夹放到其他盘,则问题可得以解决。修改配置前在未进行任何配置

一文搞懂 Ingress Controller 本质

今天我们来聊一下云原生生态核心技术之流量管理——KubernetesIngressController。什么是IngressController?在云原生生态中,通常来讲,入口控制器(IngressController)是Kubernetes中的一个关键组件,用于管理入口资源对象。Ingress资源对象用于定义来自外网的HTTP和HTTPS规则,以控制进入集群内服务的流量。而IngressController则是真正实现Ingress规则的组件。从更为准确的角度而言,入口控制器(IngressController)管理L4和L7层请求的南北向流量,也就是我们所说的从集群外部进入或离开集群的流程

SQL之优化篇:一文搞懂如何优化线上任务性能,增效降本!

继上一篇文章:SQL优化之诊断篇:快速定位生产性能问题实践。本文将从优化运行时间和优化资源消耗这两个方面,介绍可以提升作业性能的常用方法。1.优化运行时间在优化运行时间这个维度上,我们重点关注时间上的加速,单位时间内可能会消耗更多的计算资源。总成本有可能上升,也可能降低。为了缩短作业运行时间,可以从作业并行度,数据倾斜等角度进行优化。1.1 调整并行度task并行度不合理有很多时候是因为数据从上游task计算后,数据膨胀得很厉害。我们第一步应该做的是去检查自己的业务逻辑有没有问题,是否有数据膨胀。并行度是衡量并行计算并行程度的一个指标,从执行计划上来看,比如M1,用1000个instance来