baihongyu.com
博客
关于我
MQ——Kafka日志存储原理
摘要本文将介绍Kafka日志存储系统的核心机制,包括文件目录布局、日志格式演变、消息压缩机制、日志索引以及日志清理策略等内容。文件目录布局Kafka以主题为基本单位管理消息,主题可以划分为多个分区。每个分区中的消息都有唯一的偏移量(offset),用于标识消息的位置和顺序。Kafka通过日志分段(LogSegment)将大文件平均分配为多个小文件,以便于日志的维护和清理。活跃的日志分段被称为act......
阅读量:
797 次
2023-03-28
Nacos——docker构建Nacos集群服务
摘要本文将介绍如何利用MySQL、Nacos和Nginx构建Nacos集群服务,重点讲述如何通过Docker进行容器化部署。一、Docker的Nacos服务配置在Docker环境中配置Nacos服务需要遵循以下步骤:1.首先需要安装必要的依赖包,确保Nacos服务能够正常运行。2.配置Nacos的配置中心,通常需要将其与MySQL数据库集成,以便管理集群配置。3.通过Nginx反向代理将Nacos......
阅读量:
797 次
2023-03-28
Docker——docker构建Mysq5.7集群环境
Docker构建MySQL高可用环境1.Docker构建主从环境在生产环境中构建MySQL主从架构是一种常见的高可用解决方案。本文将使用Docker的方式快速构建MySQL主从环境。1.1环境配置准备安装Docker(版本2.0或3.0)。下载MySQL5.7镜像:dockerpullmysql:5.7。配置DockerCompose:创建docker-compose.yml文件。配置相关MySQ......
阅读量:
797 次
2023-03-28
Devops——基于容器化平台的devops设计
摘要敏捷开发已经流行了很长时间,如今有越来越多的传统企业开始践行敏捷开发所提倡的以人为中心、迭代、循序渐进的开发理念。在这样的场景下引入Docker技术,首要目的就是通过虚拟化方式,为开发团队建立一套可以复用的开发环境,让开发环境可以通过Image的形式分享给项目的所有开发成员,以简化开发环境的搭建。然而,在没有Docker技术之前就已经有类似Vagrant的开发环境分发技术,因此在本地开发环境方......
阅读量:
797 次
2023-03-28
Devops——Jenkis持续集成的安装测试教程
Jenkins安装与配置及持续集成流程详解Jenkins是一款流行的开源持续集成工具,广泛应用于软件开发中的自动化构建、测试及部署。通过Jenkins,可以实现代码自动化集成,减少开发过程中的重复劳动,提升效率。本文将详细介绍Jenkins的安装配置、项目构建流程以及结合Docker和SpringCloud微服务的持续集成方案。Jenkins安装与环境配置1.安装Jenkins在CentOS系统上......
阅读量:
797 次
2023-03-28
剑指 Offer 30. 包含min函数的栈
最小栈与两栈实现技术探讨在软件开发中,栈数据结构因其先进后出特性,广泛应用于多个场景。其中,最小栈的概念近年来引起了广泛关注。最小栈的核心目标是,每次从栈中获取的数据都是最小的。通过深入分析,我们可以了解如何利用两栈实现这一目标。栈解析栈是一种Last-In-First-Out(LIFO)的数据结构,具有先进后出的特性。栈中的元素插入和删除操作都是O(1)时间复杂度。最小栈的核心逻辑在于每次插入时......
阅读量:
797 次
2023-03-28
微服务系统设计(03)——系统微子服务项目构建设计
SpringBoot项目构建与会员子服务开发经过前期的需求分析和模型设计与系统架构设计,我们对项目的整体结构有了更清晰的认识。接下来将基于设计好的项目架构,逐步构建项目骨架,并为各子模块注入业务逻辑,完成系统的核心功能开发。一、项目架构概述本项目采用SpringBoot框架构建微服务架构,整体项目结构分为多个子模块,每个子模块负责特定的业务功能。项目根目录为parking-project,采用Ma......
阅读量:
797 次
2023-03-28
并发编程——Fork/Join原理与实战
Fork/Join框架详细解析摘要Fork/Join框架是Java7引入的用于并行执行任务的强大工具。通过将大任务分割成多个小任务并行执行,然后合并各小任务结果,Fork/Join框架实现了对多核CPU资源的高效利用。本文将深入探讨Fork/Join框架的工作原理、工作窃取算法以及如何在实际开发中使用该框架。Fork/Join框架原理Fork/Join框架的核心组件包括ForkJoinTask和F......
阅读量:
797 次
2023-03-28
(十)Python中的省略号Ellipsis
解释器中的辅助提示符在学习Python的过程中,我们有时会遇到需要快速验证某些代码逻辑是否正确的情况。这时候,解释器中的辅助提示符可以提供一个即时的验证环境,帮助我们快速验证代码的逻辑和功能。例如,在Python解释器中,我们可以直接输入代码片段,观察其执行结果和返回值。这种方式非常适合在没有实际环境的情况下,快速验证某个函数的逻辑是否正确。In[1]:defadd(x,y):...returnx......
阅读量:
797 次
2023-03-28
(六)基于霍夫变换的直线和圆检测
霍夫变换是一种强大的图像处理技术,广泛应用于直线和圆的检测。了解其工作原理和OpenCV的实现方法,可以帮助我们高效地解决实际问题。1.霍夫变换概述霍夫变换最初由PaulHough提出,后由RichardDuda和PeterHart推广。其核心思想是将图像中的直线转换为极坐标系下的曲线,从而通过曲线交点的特性来识别直线。这种方法在图像处理领域具有重要地位。2.霍夫线检测2.1标准霍夫线检测Open......
阅读量:
797 次
2023-03-28
(八)HS角点检测
基础理论在处理适用于多幅图像的特征描述子时,主要有两种特征检测方法:一种是基于角的检测,另一种是处理图像中的所有区域。这里主要讨论一下基于角的检测。1988年,Harris和Stephens提出了一种角检测算法——HS角检测器。这一算法通过数学公式来区分三种情况:各个方向上灰度均不变化。在某个方向上变化,但在另一个方向灰度不变。两个方向都发生变化。HS角检测器通过计算每个像素点周围邻域的灰度变化量......
阅读量:
797 次
2023-03-28
(五)基于matchTemplate的图像区域匹配
模板匹配技术概述模板匹配是一种图像处理技术,旨在在给定图像中找到与模板图像最相似的区域。这种方法在图像分析、图像识别等领域有广泛应用。以下将详细介绍模板匹配的基础理论、实现方法以及使用OpenCV库进行模板匹配的具体操作。模板匹配的原理模板匹配通过将模板图像在目标图像上滑动,逐像素计算匹配度,找到最相似区域。匹配度的计算基于不同基准方法,常见的包括平方差(SQDIFF)、归一化平方差(SQDIFF......
阅读量:
797 次
2023-03-28
(二)匈牙利算法简介
匈牙利算法是一种用于解决指派问题(也称为任务分配问题)的有效方法。该算法由美国数学家哈罗德·库恩于1955年提出,得名于匈牙利数学家DénesKőnig和JenőEgerváry的贡献。该算法广泛应用于运筹学领域,主要目标是找到一种任务分配方案,使得完成任务的总效率最低。匈牙利算法的基本步骤匈牙利算法分为四个主要步骤:步骤1:消除最小值在系数矩阵中,每一行和每一列减去对应行列中的最小值。这样,每一......
阅读量:
797 次
2023-03-28
(九)Python中的collections模块
UserDictUserDict是collections库中的一个类,设计用于创建可自定义的字典类,允许用户定义禁止删除字典元素的类。它继承自dict,并通过override方法限制删除操作。fromcollectionsimportUserDict,namedtuple,Counter,ChainMapclassMyDict(UserDict):defpop(self,s=None):raise......
阅读量:
797 次
2023-03-28
(九)OpenCV Canny边缘检测
基础原理边缘检测是根据灰度突变来分割图像的一种常用方法。边缘模型通常分为台阶模型和斜坡模型。在实际图像中,斜坡边缘模型更为常见。在使用二阶梯度获取图像边缘时,二阶导数会产生一个局部极大正值和一个局部极小负值,这在图像上表现为双线性效应。Canny边缘检测Canny边缘检测算法由JohnF.Canny在1986年提出,主要包括以下步骤:高斯核平滑图像:使用高斯核对输入图像进行平滑处理,以去除噪声。计......
阅读量:
797 次
2023-03-28
(三)多目标追踪SORT算法简介
多目标追踪SORT算法简介<h2>背景</h2><p>随着神经网络在目标检测领域的广泛应用,目标追踪问题越来越多地借助检测方法来实现,即<strong>TrackingbyDetection</strong>。SORT算法是由昆士兰科技大学的AlexBewley于2016年在ICIP会议上提出的针对多目标追踪(MultiObjectTra......
阅读量:
797 次
2023-03-28
MySQL——全表查询对数据库的影响
摘要我的主机内存只有100G,现在要对一个200G的大表做全表扫描,会不会把数据库主机的内存用光了?这个问题确实值得担心,被系统OOM(outofmemory)可不是闹着玩的。但是,反过来想想,逻辑备份的时候,可不就是做整库扫描吗?如果这样就会把内存吃光,逻辑备份不是早就挂了?所以说,对大表做全表扫描,看来应该是没问题的。但是,这个流程到底是怎么样的呢?一、全表扫描对server层的影响假设,我们......
阅读量:
798 次
2023-03-28
(一)卡尔曼滤波算法简介
卡尔曼滤波器与非线性系统处理1.卡尔曼滤波器-最优状态估计在自动驾驶汽车比赛中,汽车需要根据GPS测量定位并尽量停靠在1公里终点处。GPS测量具有较大的误差,为了实现更准确的位置估计,卡尔曼滤波器能够有效处理噪声并提供最优状态估计。卡尔曼滤波器的核心思想是通过结合预测值和测量值,逐步优化系统状态。其数学表达式如下:[x_k=Ax_{k-1}+B\mu_k+K_k(y_k-Cx_{k-1})]其中:......
阅读量:
797 次
2023-03-28
(一)函数与指针
函数与指针1.指针作为函数参数指针变量可以作为函数的形参。这种情况下,实参传递的是数据的地址,函数的形参则接收这个地址。由于形参和实参指向同一内存空间,函数对形参进行修改会直接影响到实参所指的数据。尽管被调函数无法修改实参指针的值,但它可以改变实参指针所指的变量。2.返回指针值的函数函数的返回值可以是指针类型。这种函数被称为指针函数。需要注意的是,函数返回的指针不能指向本地局部变量,因为这些变量在......
阅读量:
797 次
2023-03-28
(一)Linux下C++ OpenCV开发环境搭建
安装OpenCV的详细指南安装OpenCV是一个相对简单但需要仔细完成的过程。以下是从下载源码到最终编译并使用OpenCV的完整步骤指南。1.下载OpenCV源码首先,你需要从OpenCV的官方网站或代码镜像站点下载最新版本的源码。确保选择与你的操作系统和硬件兼容的版本。例如,如果你使用的是Ubuntu,可以选择适合Ubuntu的OpenCV版本。2.编译OpenCV在下载源码后,你需要使用CMa......
阅读量:
797 次
2023-03-28
上一页
下一页