夏之七
码龄7年
  • 99,648
    被访问
  • 120
    原创
  • 17,270
    排名
  • 149
    粉丝
关注
提问 私信

个人简介:不硬碰,巧转身,换思路,开新局。

  • 加入CSDN时间: 2015-03-24
博客简介:

locahuang的博客

查看详细资料
  • 3
    领奖
    总分 447 当月 40
个人成就
  • 获得77次点赞
  • 内容获得81次评论
  • 获得393次收藏
创作历程
  • 6篇
    2022年
  • 74篇
    2021年
  • 40篇
    2020年
成就勋章
TA的专栏
  • MySQL
    21篇
  • 软件架构
    5篇
  • MongoDB
    2篇
  • C++
    23篇
  • linux
    10篇
  • 智能网联汽车
    5篇
  • 音视频
    14篇
  • Redis
    5篇
  • Nginx
    3篇
  • 算法
    9篇
  • Golang
  • 后端服务
    17篇
  • Qt
    8篇
兴趣领域 设置
  • 大数据
    mysqlredis
  • 后端
    架构
  • 搜索
    elasticsearch
  • 服务器
    linux
  • 最近
  • 文章
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

SQL存储过程编程笔记

1、引言最近写了一个存储过程用于统计数据。由于好长时间没有写存储过程,重新捡起来还是花费了一点时间。这里做个笔记,将此次存储过程用到的一些基础知识点做个简单的小结。(注意:这里数据库用的是postgresql)2、背景表1:第三方服务每10分钟会写一次数据到表1,每次写入都是在表中插入一条新的数据,因此一个设备一天在表中有多条数据。CREATE TABLE tb_check ( id serial NOT NULL, --自增ID devicecode text NULL, ..
原创
发布博客 2022.05.09 ·
97 阅读 ·
0 点赞 ·
0 评论

熔断机制:预防一个服务故障导致整个系统崩掉

一、引言一个系统通常包含多个服务,服务之间的数据顺利交互,是整个系统能够正常工作的基本要求。但实际应用中,不少人会经常遇到某个服务异常工作后,整个系统随之崩掉的情况,这种情况我们应该如何预防和处理呢?本章节的内容希望能够给你带来些启发。二、场景介绍2.1 接口简述一个新零售架构系统中 ,有一个通用用户服务,很多页面都会使用,它包含两个接口。第一个接口:用户态接口接口功能:返回用户车辆所在位置。使用业务:在用户信息展示页面会使用到,比如客服系统中的用户信息页面。数据来源:对接第三方系统,
原创
发布博客 2022.04.03 ·
1156 阅读 ·
0 点赞 ·
0 评论

Elasticsearch: 这些坑你踩了吗?

一、引言本文罗列多数人使用Elasticsearch时可能会遇到的一些坑点,供大家参考、讨论、补充。二、坑1:ES是准实时的?为了验证这个坑是否是真坑,大家可以自己手动测试一下:当更到数据到ES并且返回提示成功这一瞬间,立马通过ES查询,查看返回的数据是不是最新的。思考:若查询到的数据是最新的,这个坑不算坑,可以填土了;而如果不是最新的数据,那么背后的原因是什么?如果你还没有做验证,不要紧,我们一起来看下ES数据索引的整个过程,也许你从中也会找到蛛丝马迹。|| 数据索引整个过程数据
原创
发布博客 2022.03.18 ·
2246 阅读 ·
0 点赞 ·
0 评论

Elasticsearch: 如何设计表结构

一、 引言全文搜索属于最常见的需求,开源的 Elasticsearch (以下简称 Elastic)是目前全文搜索引擎的首选。它可以快速地储存、搜索和分析海量数据。维基百科、Stack Overflow、Github 都采用它。Elastic 的底层是开源库 Lucene。但是,你没法直接用 Lucene,必须自己写代码去调用它的接口。Elastic 是 Lucene 的封装,提供了 REST API 的操作接口,开箱即用。Elasticsearch 在分布式开源搜索和分析引擎中处于领先地位,能在短
原创
发布博客 2022.03.17 ·
2864 阅读 ·
1 点赞 ·
0 评论

读缓存:如何减少数据库读操作压力

一、引言一个电商系统,存放了10万多条商品数据,每次用户浏览商品详情页时,需要先从数据库读取数据,再进行数据拼装和计算,,耗费的时间有时长达1s。从而导致页面打开速度慢。面对这种问题,我们应该如何解决?二、本地缓存关于缓存问题,最简单的实现方法是使用本地缓存。在Google Guava中有一个cache内存缓存模型,它把所有商品的ID与商品详情信息一对一缓存在JVM内存中,用户获取商品详情数据时,系统会根据商品ID直接从缓存中读取数据,大大提升了用户界面访问速度。咋一看,实现流程似乎简单、实用
原创
发布博客 2022.03.15 ·
1537 阅读 ·
1 点赞 ·
0 评论

分库分表:如何解决数据量大读写缓慢

一、 引言一个系统,目前订单数据量已达上亿,并且每日以百万级别的速度增长,甚至之后还可能是千万级。面对如此庞大的数据量,那么一旦数据量疯狂增长,必然造成读写缓慢。那么,为了使系统能够抗住千万级数据量的压力,都有哪些解决方案呢?二、 分表分库当数据库表读写缓慢的时候,我们第一时间考虑到的是优化程序读写模块,调整软件架构;不过,对于单库单表而言,一旦数据量疯狂增长,无论是IO还是会CPU都会扛不住,单单从软件上来解决优化效果有限。我们这里要介绍的解决方案是:分表分库,即先将表进行拆分,再进行分布
原创
发布博客 2022.03.15 ·
4426 阅读 ·
4 点赞 ·
2 评论

点击QPushButton上方弹出QMenu菜单源码实现

一、效果图二、源码1、菜单列表void InitMenuAction(void){ m_pSetMenu=new QMenu(this); // ui->otherToolBarBtn->setStyleSheet("QPushButton::menu-indicator{image:none}"); //去掉按键箭头 QAction *pActLight = new QAction(QStringLiteral(" 灯光"), this); ..
原创
发布博客 2021.11.08 ·
252 阅读 ·
1 点赞 ·
0 评论

简单易懂!手把手:从安装部署VMWare&Ubuntu,到编写、编译、运行、调试程序

一、安装VMWareVMWare下载网址:https://www.vmware.com/cn/products/workstation-pro.html本文VMware采用的版本是10.0.7 bulid-2844087序列号:1Z0G9-67285-FZG78-ZL3Q2-234JG虚拟机的安装比较简单,按照安装向导依次点击下一步安装就可以了,这里不再做详细介绍。二、安装UbuntuUbuntu镜像下载网址:http://www.ubuntu.com1)打开VMWare,然后点击“..
原创
发布博客 2021.09.30 ·
451 阅读 ·
0 点赞 ·
0 评论

如何在VMWare虚拟机里把DPDK跑起来?

一、环境准备VMware + Ubuntu 16.04 Server版本二、DPDK环境搭建2.1 vmware 添加两块网卡要把DPDK运行起来,需要两块网卡,因此我们需要查看我们的虚拟机是否已经有了两块网卡,如果没有则添加;添加网卡的时候建议把网卡网络连接设置为“桥接模式(B)”。桥接网卡作为 DPDK运行的网卡。NAT网卡作为ssh连接的网卡。2.2 修改网卡配置信息1)找到我们虚拟机上的.vmx文件,并打开文件;2)把ethernet0.virtualDev由e1..
原创
发布博客 2021.09.17 ·
556 阅读 ·
0 点赞 ·
0 评论

C++内存池设计

一、什么是内存池?为什么要使用内存池?一次性分配好,使用的时候直接调用,对外提供的是API接口,应用软件直接调用API接口就可以获取到需要的内存空间。在做服务端开发的时候都可以使用内存池。频繁的对内存进行malloc/free,会产生内存碎片。不断的malloc和free也会影响性能,因为内存操作需要在用户态和内核态之间不断切换。内存数据也可以用,为什么还要使用内存池?如果是通过消息队列,把数据push到另外一个线程处理业务的时候,定义的数组是用不了的。此时我们就可以使用内存池传递指针过去。..
原创
发布博客 2021.09.16 ·
254 阅读 ·
0 点赞 ·
0 评论

Mongo 文档操作详谈

一、MongoDB 插入文档文档的数据结构和JSON 基本一样。 所有存储在集合中的数据都是 BSON 格式。 BSON 是一种类似 JSON 的二进制形式的存储格式, 是 Binary JSON 的简称。1.1 MongoDB 使用 insert() 或 save() 方法向集合中插入文档db.COLLECTION_NAME.insert(document)以下文档可以存储在MongoDB的test数据库中的col集合中:> db.col.insert({title:'Mongo..
原创
发布博客 2021.09.15 ·
34 阅读 ·
0 点赞 ·
0 评论

MySQL Explain关键字分析性能瓶颈

1、Explain关键字作用Explain关键字:使用Explain关键字可以模拟优化器执行SQL查询语句,从而知道MySQL是如何处理SQL语句的,分析查询语句或是表结构的性能瓶颈。2、Explain使用方式用explain命令查看SQL语句的执行计划,查看SQL语句有没有使用索引,有没有作全表扫描。-- 实际 SQL, 查找用户名为 milo 的员工select * from mytest3 where id = 1;-- 查看 SQL 是否使用索引, 前面加上 explain 即可..
原创
发布博客 2021.09.14 ·
49 阅读 ·
0 点赞 ·
0 评论

MySQL乱码解决方案

1、问题引出客户端应用程序查询数据库数据,显示乱码,如何解决?2、解决方案一般来说,可以下面几个方面进行排查:1)首先要明确客户端使用何种编码格式,这是最重要的(IE6一般使用utf8,命令行一般是gbk,程序一般时gb2312)。2)确保你的数据库使用utf8格式,所有编码通吃。3)一定要保证connection字符集大于等于client字符集,不然就会信息丢失。比如:latin1 < gb2312 < gbk < utf8;若设置set character_s..
原创
发布博客 2021.09.14 ·
23 阅读 ·
0 点赞 ·
0 评论

MySQL 中 UTF8和UTF8mb4的区别

1、我们先来看一个问题在utf8字符集中插入数据:mysql> insert into `user` values (4,'a楞', 0);ERROR 1366 (HY000): Incorrect string value: '\xE6\xA5\x9E' for column 'name' at row 1可以看到上诉的插入语句执行失败。思考下,这是什么原因导致的?2、UTF8和UTF8mb41)在MySQL 5.5.3之后,增加了UTF8mb4的编码mb4就是most by..
原创
发布博客 2021.09.14 ·
25 阅读 ·
0 点赞 ·
0 评论

自动驾驶的纯视觉路线是否靠谱?

(一)文章素材摘参考数据参考|汽车ECU开发 微信公众号(二)正文1、自动驾驶分级目前公认的自动驾驶分级标准由SAE(SAE International,Society of Automotive Engineers国际自动机工程师学会,原译为美国汽车工程师学会)制定。按照SAE的分级,自动驾驶技术分为L0-L5共六个等级。L0代表没有自动驾驶加入的传统人类驾驶,而L1-L5则随自动驾驶的技术配置进行了分级。Level 0(无自动化):由人类驾驶者全权操作汽车,在行驶过程中可以得到警告..
原创
发布博客 2021.07.29 ·
406 阅读 ·
0 点赞 ·
0 评论

FFmpeg filter过滤器使用详解

1、FFmpeg过滤器简介FFmpeg filter 提供了很多音视频特效处理功能,比如视频缩放、截取、翻转、叠加等。FFmpeg有很多已经实现好的滤波器,这些滤波器的实现位于libavfilter目录之下,用户需要可以调用这些滤波器实现滤波。我们可以通过ffmpeg -filters命令查看FFmpeg支持的过滤器。FFmpeg常用的filter包括:scale:视频/图像的缩放;overlay:视频/图片的叠加;crop:视频/图像的裁剪;trim:截取视频的片段;rotate:以..
原创
发布博客 2021.07.29 ·
1344 阅读 ·
0 点赞 ·
0 评论

视频编码流程详解

1、视频编码整体流程2、FFmpeg视频编码详细流程从本地读取YUV数据编码为H264格式的数据,然后再存入到本地,编码后的数据有带startcode。与FFmpeg示例音频编码的流程基本一致。3、关键函数说明(1)avcodec_find_encoder_by_name:根据指定的编码器名称查找注册的编码器。(2)avcodec_alloc_context3:为AVCodecContext分配内存。(3)avcodec_open2:打开编码器。(4)avcodec_send..
原创
发布博客 2021.07.28 ·
1548 阅读 ·
0 点赞 ·
0 评论

音频编码流程详解

1、音频编码整体流程2、FFmpeg音频编码详细流程3、关键函数说明(1)avcodec_find_encoder:根据指定的AVCodecID查找注册的编码器。(2)avcodec_alloc_context3:为AVCodecContext分配内存。(3)avcodec_open2:打开编码器。(4)avcodec_send_frame:将AVFrame非压缩数据给编码器。(5)avcodec_receive_packet:获取到编码后的AVPacket数据,收到的pack..
原创
发布博客 2021.07.28 ·
2042 阅读 ·
4 点赞 ·
1 评论

音视频解码流程详解

1、解码整体流程(1) 音频解码整体流程(2)视频解码整体流程2、FFmpeg音视频解码详细流程3、关键数据结构AVCodecParser:⽤于解析输⼊的数据流并把它分成⼀帧⼀帧的压缩编码数据。⽐较形象的说法就是把⻓⻓的⼀段连续的数据“切割”成⼀段段的数据。比如:ffmpeg-4.2.1\libavcodec\aac_parser.c AVCodecParser ff_aac_parser = { codec_ids = { AV_CODEC_ID_AAC }, pri..
原创
发布博客 2021.07.26 ·
1238 阅读 ·
2 点赞 ·
1 评论

C++设计模式--Observer观察者模式

1、动机在软件构建过程中,我们需要为某些对象建立一种“通知依赖关系”–一个对象(目标对象)的状态发生变化,所有依赖对象(观察者对象)都将得到通知。如果这样的依赖过于紧密,将使软件不能很好的抵御变化。使用面向对象技术,可以将这种依赖关系弱化,并形成一种文档的依赖关系。从而实现软件体系结构中的松耦合。2、模式定义定义对象间的一种一对多(变化 )的依赖关系, 以便当一个对象(Subject)的状态发生改变时,所有依赖于它的对象都得到通知并自动更新。实例源码:红色模块为改良前,蓝色代码为改良后c..
原创
发布博客 2021.07.24 ·
47 阅读 ·
0 点赞 ·
0 评论
加载更多