自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(40)
  • 问答 (2)
  • 收藏
  • 关注

原创 Reactor线程模型

单个线程负责处理连接请求,一个或者多个线程负责处理读写请求,业务处理会提交到线程池进行处理。客户端与服务器进行通信需要经过建立连接、请求、返回、关闭连接等步骤,而服务器需要监听客户端发起的创建连接、读取数据、业务处理、返回数据、关闭连接等步骤。主从Reactor模型主要是利用一个主Reactor监控连接请求就绪、一个或者多个子Reactor监控读请求就绪,业务请求还是通过线程池处理。一个线程需要处理连接请求、读写请求、业务处理,处理业务请求会想对较慢。需要等待业务处理完成,才能对其他请求进行处理。

2024-03-19 17:00:20 911

原创 浅谈零拷贝

零拷贝主要是Linux的不同函数,在数据读取和发送过程中,减少CPU参与的数据拷贝次数和上下文切换。

2024-03-13 19:32:07 869

原创 网络通信与IO多路复用

网络IO通信涉及到硬件网卡以及操作系统内核态与用户态。其中网卡与内核态数据交互主要是通过DMA来进行传输并且由内核进行控制。用户态不需要感知网卡数据的情况,用户态主要是需要知晓内核态socket缓冲区数据是否就绪、并且将数据复制到用户缓冲区。IO模型是指用户态和内核态对IO数据交互处理方式。模型共有5种方式,可以根据连接数量和系统资源进行IO模型的选择,选择合适的IO模型可以加快系统效率节约资源。

2024-03-11 23:44:03 894 1

原创 RocketMQ-存储与弹性伸缩

主要是对RocketMQ的存储与弹性伸缩做一个学习和总结、加深印象。内容参考RocketMQ官方文档。RocketMQ采用的是混合存储,将Broker上的所有Topic信息主体保存到同一个文件中。特别适合内部消息队列的场景,即Topic数量多、但是每个Topic的消息量较少的场景。采用多种集群部署模式,可以适用多种可靠性场景。具有很强的弹性伸缩能力来满足业务波动的场景。

2024-03-09 22:32:17 952

原创 RocketMQ-架构与设计

RocketMQ是阿里巴巴开发的纯Java的分布式、队列模型的开源消息中间件,其架构简单、业务场景丰富,支持分布式事务、是一款金融级别可靠业务消息中间件。

2024-02-21 20:17:27 1173

原创 Pulsar-架构与设计

下一代云原生分布式消息流平台单实例支持多集群,支持跨机房在集群间消息复制,极低的发布延迟和端到端延迟支持超过百万的消息主题

2024-02-18 20:04:58 1452 3

原创 消息队列-简介与基础概念

消息队列是一个常用的中间件。目前有很多常用的消息队列可供选择,本文仅仅是罗列了消息队列的一些特性,可以根据以上特性和具体业务场景来进行消息队列的选型。

2024-02-17 13:49:59 899

原创 浅谈电商场景中的扣除库存问题

电商场景中扣库存需要考虑秒杀高并发、事务一致性等场景,需要根据业务和场景来选择不同的方案。

2024-02-17 00:02:22 1136

原创 QT-通信编码格式问题

客户端采用HTTP协议进行通信,服务端利用Zip和GZipInputStream解压报错。

2024-02-15 23:50:38 758

原创 Json-序列化字符串时间格式问题

自定义时间格式进行json序列化

2024-02-15 19:37:12 598

原创 浅谈设计模式

设计模式就是面对一些问题的最佳解决方案。众多软件开发人员在软件的开发过程中面临一些常见问题给出的解决方案,经过长期的验证和总结修正,形成了相对比较固定并且具有广泛适用性的解决模式。设计模式主要是为了提高代码的重用性、让代码跟容易理解、保证代码的可靠性。设计模式的原则是面向接口编程而不是面向实现编程,优先使用组合对象而不是继承,尽可能复用已有类和对象。设计模式是在代码实践过程中总结出来应对特定问题的最佳解决方案。这些模式可以帮助开发者实现代码的复用、解耦和易于理解。

2024-02-15 17:30:11 1381 1

原创 浅谈业务场景中缓存的使用

缓存是提高系统响应和吞吐量的一个方法,但是使用过程中需要解决缓存穿透、缓存击穿、缓存雪崩等问题,并且需要考虑缓存和数据库的数据一致性问题。如果考虑到程序的可靠性,建议程序对缓存是弱依赖,也就是即使缓存系统完全不可用,也可以保证程序在响应速度和吞吐量降低的情况下,运行的正确性和数据的完整性。

2024-02-14 23:21:59 1272

原创 Impala-架构与设计

Impala是一款基于Hive的大数据分析查询引擎,直接使用Hive的元数据Metastore,因此如果使用Impala需要先安装Hive并启动Metastore服务。Impala不依赖MapReduce而是将执行计划树进行并行计算,使用拉的方式获取结果数据,把结果数据按执行树流是传递汇集,减少中间结果落盘。Impala是大数据进行实时交互式分析查询的一个工具,没有依赖MapReduce执行任务,而是将任务分配到各个Impala节点进行计算和汇总,从而避免了MapReduce的启动时间。

2024-02-12 20:16:46 1328

原创 Hive-架构与设计

支持通过SQL对数据仓库中数据进行访问,比如提取、转化、加工、分析等支持将不同数据格式添加数据结构可以直接访问大数据存储系统中的文件,比如HDFS、HBase等Hive是一个基于Hadoop的数仓分析工具,将分布式系统中的数据映射成结构化数据。提供丰富的SQL查询方式对数仓中的数据进行访问。一般不会存储数据、只会保存元数据到Hive中。Hive根据元数据信息将查询语句转化成执行计划,此执行计划由stage组成的DAG图,调用Hadoop中的MapReduce运行执行计划得到对应结果。

2024-02-10 23:16:00 1761 2

原创 Kudu-架构与设计

Apache Kudu是由Cloudera开源的存储引擎,是一个满足随机读写、又支持OLAP分析的大数据存储引擎,同时避免上述组合架构缺点。Kudu是一个满足随机读写又满足大规模数据分析的大数据存储引擎,是HDFS和HBase两者性能的一个中和。一个引擎就可以满足之前需要HDFS和HBase两个组合的场景。架构采用极简模式没有引入其他组件,主要采用Raft进行协调,采用多副本保证可靠性。数据更新和修改时会在原有DiskRowSet中操作,并采用定期合并减少文件个数,提高读性能。

2023-12-11 11:37:47 1127

原创 HBase-架构与设计

HBase的底层存储引擎是基于LSM-Tree数据结构设计的,存储是基于HDFS。而针对数据的更新和删除,不是修改原有记录而是新增一条记录,这样可以充分发挥顺序写的性能,但是查询的时候就需要查询磁盘中的文件和内存中的操作,读取所有数据版本。因此HBase写性能比读性能提高了两个数量级。HBase是基于分布式文件系统HDFS构建的一个大数据、NoSQL、可拓展分布式数据库。采用Master/Slave架构、用Zookeeper进行元数据保存和协调工作。

2023-12-06 19:47:00 1294

原创 Flink-状态流与容错

主要介绍了flink算子分为有状态算子和无状态算子。状态存储实现一个是直接保存对象,另一个保存字节数组。容错机制主要是将实时流逻辑分段进行所有算子的状态保存和恢复来实现容错。

2023-12-04 15:48:15 1302

原创 Flink-时间流与水印

主要是对时间流和水印产生背景和作用进行了介绍,对窗口分类和窗口函数进行初步了解。

2023-11-29 19:22:07 1309

原创 Flink-执行拓扑图与作业调度

主要介绍Flink执行模式以及Flink作业提交过程中拓扑图的生产和优化,还有作业调度和其中涉及的数据结构。

2023-11-28 19:52:25 1392

原创 Flink-简介与基础

主要介绍了Flink背景和以流处理为主的设计理念,Flink的运行时架构、Flink作业的编程以及Flink的高级特性。

2023-11-24 15:51:10 1304

原创 大数据-计算框架选型与对比

以上对大数据平台组成、计算框架需要提供哪些功能、常用计算框架对比。

2023-11-23 17:22:56 260

原创 Maven-自定义插件

主要介绍Maven自定义插件开发、通过命令行执行maven自定义插件、并且将自定义插件与构建周期进行绑定。

2023-11-21 17:23:44 281

原创 Git-概念与架构

主要介绍版本控制系统起源,git和svn简单对比,git的整体架构和开发工作流程。

2023-11-16 16:48:45 1082 1

原创 Hadoop-HDFS架构与设计

硬件错误是比软件异常更容易出现的情况,HDFS由成千上百台廉价服务器组成、每个保存整个文件系统的部分数据。如果任意一台服务器出现硬件错误都会导致HDFS部分不可用,所以针对错误的快速检测和自动修复是HDFS框架需要解决核心问题。本文对Hadoop中的HDFS分布式文件系统的架构设计进行了解。hdfs采用常见的主从架构,由集中元数据存储Namenode和分散的数据存储Datanode节点组成,支持高可靠性高吞吐量的批量读取大文件海量数据。

2023-11-14 20:25:19 789

原创 Git-团队协作工作流

开发人员通过Git可以记录和追踪代码的变化,包括添加、删除和修改文件。如果是单人进行开发,可以很方便进行研发和发布等工作。但是实际工作中都是团队协作进行多功能点并行开发,还涉及测试环境、集成环境和生产环境的打包发布,以及线上bug修复等,如何将以上工作进行协调,这就需要一套完整的代码管理和版本控制的流程规范。而在团队中使用Git进行协作开发时,各个成员遵循的一套代码管理和版本控制的规范流程就是Git工作流。

2023-11-13 17:13:31 153

原创 Maven-依赖管理机制

dependency在同一个dependencies或dependencyManagement中,如果出现相同{groupId,artifactId},则后出现的会覆盖先出现。比如在Project B中dependencies和dependencyManagement中重复定义了依赖a,所以在各自节点中,起作用的都是后定义的版本。按照目前Pom,依赖a会是3.7,如果删除dependencies对依赖a的定义,则依赖a会采用版本2.5。

2023-11-10 18:17:34 523 1

原创 后端开发知识图谱

主要是记录一下作为后端开发需要了解的知识点,作为之后学习的参考。本文主要是介绍了后端开发需要了解的知识点,以供参考和学习。

2023-11-08 15:30:07 286 1

原创 Maven-构建生命周期与插件

如果以上插件不能满足开发者需求,开发者可以通过开发自定义插件来满足需求。自定义插件开发主要介绍了Maven的三种构建生命周期以及每种生命周期phase的组成,maven是通过插件执行具体的操作,将插件与phase进行绑定,来提高整个构建过程的拓展性。用户可以通过maven命令行来启动构建过程,寻找与phase绑定的插件并执行来完成整个构建过程。

2023-11-08 14:41:00 482 1

原创 Maven-构建工具

Maven是一个软件工程的项目管理工具,基于工程对象模型(POM)。Maven可以依据统一的模版对项目进行构建、生成报告和文档等操作

2023-11-07 17:43:49 468

原创 数字营销之CDP

营销的本质是发掘用户需求,促进用户购买产品或服务的过程。

2023-11-03 11:52:03 85

原创 网络安全通信HTTPS原理

HTTPS并不是一个全新的协议,而是为了保证网络通信的数据安全,在HTTP的基础上加上了安全套件SSL的一个数据通信协议。HTTP协议全称为HyperText Transfer Protocol即超文本传输协议,是客户端浏览器与Web服务器之间的应用层通信协议。HTTPS协议全称为HyperText Transfer Protocol over Secure Socket Layer即基于SSL层的超文件传输协议,HTTPS的安全是通过SSL实现的,数据传输是依赖HTTP。

2023-06-05 20:07:59 1481

原创 网络通信与密码相关概念流程

随着科技的发展,人们的通信都转化成电子通信,由于信息需要通过一个公有的网络进行传输,信息在网络传输的过程中很容易被截取篡改。所以对一些重要信息的传递需要保证其安全性,由此需要一系列的机制来保证。系统预制CA证书解决了CA机构的公钥获取问题,数字证书和数字签名解决了对公钥的传递和验证问题【无篡改无伪造】,非对称加密解决了通信中对称加密密钥的传递问题。通过以上机制在互联网中解决了安全通信问题。

2023-04-28 16:57:41 915

原创 大数据-三驾马车与hadoop起源

Google成立于1998年是全球最大的搜索引擎公司,主要业务为搜索、云计算、广告技术等,主要利润来自于广告等服务。在21世纪初互联网刚刚兴起,每个企业保存和生产的数据量并不大,已有的技术对数据的保存和处理完全满足业务上的需求。作为搜索引擎公司,google需要保存爬虫所获取的大量网页数据,还要对海量的数据进行快速的搜索、计算、排名等处理。

2023-04-25 10:41:24 946

原创 大数据-概览

最近由于工作变动,有非常多的关于大数据的知识。针对自己的学习过程进行一下记录,对自己也起到一个督促。针对大数据的来源、作用、价值、概念进行一些初步的了解,对其中一些术语进行介绍,为接下来的学习奠定一点基础。

2023-04-21 19:25:33 685

原创 SpringBoot-配置文件加载

springboot配置文件加载原理解析

2022-10-11 00:11:40 5928 2

原创 mac机本地安装mysql

mac本地安装mysql数据库

2022-09-30 14:31:31 706

原创 SpringBoot-配置使用和加载顺序

配置文件使用和配置项优先级

2022-07-13 16:03:47 583 1

原创 Json-序列化集合异常

json序列化抛Can not write a field name, expecting a value异常

2022-07-08 00:07:31 3389 1

原创 加解密技术

加密与解密

2022-07-05 23:28:29 600 1

原创 Sqlite 防止插入重复数据

在SQLITE中,可以用以下方法防止插入重复数据,1.设置表的联合主键2.在INSERT语句中添加OR IGNORE,即可(重复数据会跳过,且不影响后续数据插入)示例如下:insert OR IGNORE into PDA_Test (DeviceID,MethodName) values('1112','测试原有');

2013-09-24 15:35:03 27906 1

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除