![](https://img-blog.csdnimg.cn/0691227ff1de4f6b91bab8c751eca5db.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
后端天梯成长之路
文章平均质量分 91
nginx高并发优化
妖怪喜欢风
现在的工作重点是操作系统(如Linux、QNX、Android)BSP层开发和虚拟化技术研究方向
展开
-
C++11特性:std::lock_guard是否会引起死锁?
今天在评审代码的时候,因为位于两个不同的线程中(一个是周期性事件线程,一个是触发式事件线程),需要对一个资源类的某些属性进行互斥的访问,因此采用lock_guard互斥量包装器,但是在升级的过程中,因为整个系统太大,所以在询问了某位同事后,得到的答案是在两个不同的地方加上lock_guard有一定的可能性会导致死锁,但是后面在测试的过程中又没有问题,真的如此吗?本文针对lock_guard来做阐述和延申。原创 2024-03-24 11:07:12 · 1200 阅读 · 0 评论 -
23种设计模式的深入浅出(更新中)
目录创建型模式工厂方法模式单例模式结构型模式适配器模式装饰器模式代理模式行为型模式设计模式好复杂,面向对象真烦……不过还是要学,要不然写代码真的是shit山,第一遍学设计模式的时候真的直接被劝退了,因为感觉很多设计模式的代码都是类似的,只有微小的差异,而再一次学习的时候我放慢了我急躁的心情而稳步前进。也是要准备考研了,一边学设计模式一边回忆数据结构,一种是OOP-mode,一种是OPP-mode,真的不要是太折磨。本篇文章使用的是Java语言(感觉Java比C++更加适合面向对象,但是符合工程规范也更原创 2022-04-15 19:43:04 · 1206 阅读 · 0 评论 -
Elasticsearch学习笔记
Elasticsearch概述The Elastic Stack,包括Elasticsearch、Kibana、Beats和Logstash(也称为ELK Stack)。能够安全可靠地获取任何来源、任何格式的数据,然后实时地对数据进行搜索、分析和可视化。Elaticsearch,简称为ES,ES是一个开源的高扩展的分布式全文搜索引擎,是整个ElasticStack技术栈的核心。它可以近乎实时的存储、检索数据;本身扩展性很好,可以扩展到上百台服务器,处理PB级别的数据。9200端口:web端9300原创 2022-03-07 22:06:52 · 2234 阅读 · 0 评论 -
RabbitMQ学习笔记和AMQP协议浅析
目录RabbitMQMQ的相关概念消息队列协议消息持久化消息的分发策略docker安装RabbitMQAMQP协议RabbitMQ的几种模式简单simple模式发布/订阅fanout模式路由direct模式主题topic模式工作work模式参数header模式MQ的使用场景SpringBoot整合RabbitMQTTL过期时间死信队列内存磁盘的监控内存警告内存换页磁盘预警分布式事务分布式事务的方式生产可靠性消费可靠性RabbitMQMQ的相关概念什么是MQMQ(message queue),从字面意原创 2022-03-04 06:15:55 · 427 阅读 · 0 评论 -
并发编程的一些解决方法和解决方法案例
CAS算法Compare & Set/Compare & Swap,CAS是解决多线程并行情况下使用锁造成性能损耗的一种机制。假设内存中的原数据V,旧的预期值A,需要修改的新值B比较 A 与 V 是否相等如果比较相等,将 B 写入 V返回操作是否成功代码示例bool compare_and_swap (int *accum, int *dest, int newval){ if ( *accum == *dest ) {原创 2022-02-23 19:19:09 · 346 阅读 · 0 评论 -
Java集成开发系统:SpringBoot
目录原创 2022-02-14 20:28:46 · 1604 阅读 · 0 评论 -
SSM框架中项目逻辑层:SpringMVC
目录SpringMVCSpringMVC概述DispatcherServletSpringMVC请求处理过程SpringMVC的MVC组件SpringMVC注解式开发@RequestMapping处理器方法的参数处理器方法的返回值解读url-patternSSM整合SpringMVC前言:SSM框架快告一段落了,感觉SSM被誉为Java这种极度符合软件工程开发思想和OOP的入门框架果然有他的一套。“高内聚,低耦合”这六个字表现的淋漓尽致了真的是。希望Java越来越好,希望大家越学越好。SSM-Spr原创 2022-02-13 20:13:25 · 1519 阅读 · 0 评论 -
SSM框架中项目持久层:MyBatis
目录MyBatisMyBatis简介和配置MyBatis的XML配置MyBatis日志MyBatis基础MyBatis对象分析工具类和模板实现接口和实现类的组合MyBatis代理MyBatis代理实现方式深入理解参数封装MyBatis输出结果MyBatisMyBatis本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation迁移到了google code,并且改名为MyBatis。MyBatis解决的主要问题:减轻JDBC的复杂性,不用编写原创 2022-02-10 21:05:09 · 1569 阅读 · 0 评论 -
SSM框架中项目核心层:Spring
目录SpringSpring简介Ioc控制反转Ioc的概念Spring的配置文件Spring容器创建对象的特点DI(依赖注入)基于注解的DISpringSpring框架由Rod Johnson开发,2004年发布了Spring框架的第一版。Spring是一个从实际开发中抽取出来的框架,因此它完成了大量开发中的通用步骤,留给开发者的仅仅是与特定应用相关的部分,从而大大提高了企业应用的开发效率。Spring简介作用:为代码“解耦合”,降低代码间的耦合度(符合软件工程中的高内聚、低耦合的特点),让对象和对原创 2022-02-04 23:29:07 · 2131 阅读 · 0 评论 -
C/C++项目实战:高性能社交平台(SPP2)
高性能社交平台项目简述性能采集后期构思前言:要和C/C++短暂地说再见啦,暂时用不到了,等几个月后我再来重回辉煌,这个项目就权且作为我的一个收官之作吧,也不算辜负这两年的C/C++学习了。Github repository:SSP-0.2项目简述基于均衡模型的C/S架构。在前端,客户端采用QtCreator,客户端和服务器使用消息机制进行通信,并采用protobuf协议进行收发包。在服务器方面,采取epoll的io多路复用的主从反应堆,运用one thread one loop的模式接收消息,对原创 2022-02-04 00:42:06 · 1850 阅读 · 0 评论 -
Java项目管理神器:Maven
Maven刚开始打算学Java框架,项目管理就来了,Spring视频的第一个就是Maven,我就来了基本概念概念:基于Java平台的自动化构建工具maven的作用管理jar包增加第三方jar包管理jar之间的依赖关系:自动关联下载所有依赖的jar包将项目拆分为若干个模块maven构建步骤:清理:删除编译的结果,为重新编译做准备编译:生成字节码文件(.class)测试:针对于项目中的关键点进行测试报告:将测试的结果进行显示打包:将项目中包含的多个文件,压缩成一个文件原创 2021-12-28 14:44:17 · 508 阅读 · 1 评论 -
高并发之索引、事物与锁机制、主从复制和读写分离
目录索引事物与锁机制主从复制读写分离索引先略事物与锁机制事物的四个特性如果某个数据库声称支持事务,那么该数据库必须具备ACID四个特性,即Atomicity(原子性)、Consistency (一致性)、Isolation(隔离性)和Durability(持久性)。事物并发带来的问题脏读:事务A可以读取到事务B未提交的执行结果,即读取未提交的数据。幻读:事务A读取不到事务B未提交、已提交的执行结果。这会产生一个新的问题,即事务B插入一条数据并提交,事务A查询不到事务B提交的数据,也无法插原创 2021-11-08 05:36:52 · 1146 阅读 · 0 评论 -
MySQL高级及索引优化
MySQL高级MySQL基础查看字符集(默认的server和client采用的是Latin,写中文会乱码)mysql> show variables like '%character%';mysql> show variables like '%char%';存储引擎对比项myisaminnodb主外键不支持支持事务不支持支持行表锁表锁,即使操作一条记录也会所著整个表,不适合高并发操作行锁,适合高并发操作缓存只缓存索引,不缓存真原创 2021-08-19 21:42:15 · 228 阅读 · 0 评论 -
Redis单机数据库的实现原理
目录数据结构与对象Redis对象单机数据库数据库RDB持久化AOF持久化事件Redis作为一个单线程NoSql数据库,基于内存存储数据,有了内存和单线程的强大的特性,其功能无疑也是极其强大的,且其网络模型使用了io多用复用模型,用四个字形容就是:高端顶配!Redis基本操作和基本概念:Redis应用学习笔记数据结构与对象本篇文章中对于Redis的数据结构和构造对象不作过多的讲解,详情可见官方文档Redis对象类型检查与命令多态Redis中用于操作键的命令基本.上可以分为两种类型。其中原创 2021-12-13 19:26:00 · 778 阅读 · 0 评论 -
kafka消息队列框架基础知识入门
目录消息系统kafka简介消息系统消息队列:消息Message:网络中的两台计算机或者两个通讯设备之间传递的数据,如:文本、音频、视频等。队列Queue:一种特殊的线性表,特殊之处在于它只允许在首部删除元素(队首) ,在尾部添加元素(队尾)。消息队列MQ:保存消息的队列,是消息在传输过程中的容器。主要提供生产和消费接口供外部调用,进行数据的存储和获取。MQ分类:主要分为两类:点对点( Peer-to-Peer)、发布订阅(Publish/Subscribe)共同点:消息生产者(Produ原创 2021-12-01 17:44:03 · 2089 阅读 · 0 评论 -
Docker基础学习笔记
Docker你知道的越多,你知道的越少实践出真知参考:docker官方文档docker基础篇docker高级篇docker概述名词解释镜像:image。docker镜像就好比是一个模板,可以通过这个模板来创建容器服务,通过这个镜像可以创建多个容器(最终服务运行或者项目运行就是在容器中的)容器:container。Docker利用容器技术,独立运行一个或者一个组应用 ,通过镜像来创建的。启动,停止,删除,基本命令。目前就可以把这个容器理解为就是一个简易的linux系统仓库:r原创 2021-12-25 20:14:49 · 661 阅读 · 0 评论 -
架构的管理者:ZooKeeper
目录ZooKepper简介ZooKepper数据保存Paxos算法ZooKeeper安装和配置节点操作C++操作zookeeper分布式锁实现概述相关链接:ZooKeeper下载地址C++操作zookeeperZooKepper简介ZooKepper可以实现在服务器集群中节点出现问题后及时处理操作,是一个协调一致性组件工具。ZooKeeper是一一个分布式的, 开放源码的分布式应用程序协调服务,是Google的Chubby-个 开源的实现,是Hadoop和Hbase的重要组件。它是一一个为原创 2021-12-02 17:36:39 · 1593 阅读 · 0 评论 -
Git基础知识整合及其使用
目录版本控制系统Git工作流程安装GitGit常用命令远程仓库分支Branch版本控制系统简介Version Control System,简称为VCS,版本控制系统是一种记录一个或多个文件的内容变化,以便将来查阅特定版本的内容变化情况的系统。简单来说,就是用来保存文件内容变更记录的系统,可以将文件回退到过去某个时间点的状态。作用查阅文件的修改记录,如∶修改者、修改时间、修改的文件内容等·对比不同版本中文件的变化细节将文件回溯到之前的某个状态版本控制系统的种类︰本地版本控制系统原创 2021-10-28 19:57:25 · 256 阅读 · 0 评论 -
高并发下的Nginx性能优化总结
目录安装和命令配置文件代理模式和配置反向代理动静分离日志管理日志格式日志切割高并发架构分析限制连接流限制请求流(限速)后台服务限制安全配置Nginx优化Nginx同Apache一样都是一种WEB服务器。基于REST架构风格,以统一资源描述符(UniformResources ldentifier)URl或者统一资源定位符(Uniform Resources Locator)URL作为沟通依据,通过HTTP协议提供各种网络服务。Apache的发展时期很长,而且是毫无争议的世界第一大服务器。它有着很多优点:原创 2021-10-27 22:14:58 · 2295 阅读 · 0 评论