- 博客(162)
- 收藏
- 关注
原创 springboot 自动装配和bean注入原理及实现
Spring Boot 的自动装配机制使得模块化和复用化更加便捷和高效。开发者可以根据项目的需求选择性地引入功能模块,同时也可以将常用的功能封装成 Starter,以供其他项目复用。SpringBoot 这种模块化和复用化的设计理念使得 Spring Boot 在开发中得到了广泛的应用和认可。基本的结构图自定义步骤如下,一般是一个新建的module1、新建 SpringBoot 项目,引入 SpringBoot 相关依赖。
2024-11-03 01:28:33 970
原创 docker安装mysql、redis、clickhouse、oracle等各种数据库汇总
(e64682f1b276)安装 :https://www.zhihu.com/question/54602953/answer/3047452434?安装:https://blog.csdn.net/weixin_46603727/article/details/131300046。安装2:https://www.duidaima.com/Group/Topic/ArchitecturedDesign/9182。官网:https://www.mongodb.com/docs/manual/
2023-09-05 15:02:57 1103
原创 clickhouse简介与实战
ClickHouse是一个用于联机分析(OLAP)的**列式数据库管理系统**(DBMS)。clickhouse以下简称CH。
2023-05-31 15:46:42 2253 1
原创 OLAP和OLTP
从产品上看,有专门面向OLTP的数据库,例如MySQL、PostgreSQL、Oracle等,也有专门面向OLAP的数据库,例如Hive、Greenplum、HBase、ClickHouse等。OLTP一般是基于三大范式进行数据库设计,所以查询时候会导致多表join关联查询,产生查询慢,不利于数据分析的问题。所以OLAP在设计时不是基于三大范式设计的,允许一定的冗余,基于数据仓库建模设计,为了更好的进行数据查询分析。4、对于读取,从数据库中提取相当多的行,但只提取列的一小部分。除了他以外,其他的都很小。
2023-05-31 11:23:14 2032
原创 DATAX数据同步工具
1、DataX完成单个数据同步的作业,我们称之为Job,DataX接受到一个Job之后,将启动一个进程来完成整个作业同步过程。DataX Job模块是单个作业的中枢管理节点,承担了数据清理、子任务切分(将单一作业计算转化为多个子Task)、TaskGroup管理等功能。2、DataXJob启动后,会根据不同的源端切分策略,将Job切分成多个小的Task(子任务),以便于并发执行。Task便是DataX作业的最小单元,每一个Task都会负责一部分数据的同步工作。
2023-05-30 17:33:51 2310
原创 mysql介绍及实操
数据库性能取决于数据库级别的多个因素,例如表、查询和配置设置。这些软件结构会导致硬件级别的 CPU 和 I/O 操作,您必须将其最小化并尽可能提高效率。在处理数据库性能时,您首先要学习软件方面的高级规则和指南,并使用挂钟时间测量性能。当您成为专家时,您会更多地了解内部发生的事情,并开始衡量诸如 CPU 周期和 I/O 操作之类的事情。典型用户的目标是从他们现有的软件和硬件配置中获得最佳的数据库性能。高级用户寻找机会改进 MySQL 软件本身,或开发自己的存储引擎和硬件设备以扩展 MySQL 生态系统。
2023-03-16 17:44:51 933
原创 数据中台及数据仓库设计
主题:即高层次的互不折叠的数据分类,用于管理其下一级的业务对象数据标准:基于公司或者一具体的业务线制定的需要公司共同遵守的属性层数据含义和业务规则,描述了公司对某个数据的共同理解,这些理解确定后就应该作为标准在企业内被共同遵守。数据仓库-ODS层:存储源数据的简单落地数据仓库-DWI层:又称为数据整合层,DWI层是对多个源系统数据的整合,清洗,基于数据建模三范式建模(个人理解属于从数据治理得来的数据)。数据仓库-DWR层:数据报告层,基于数据维度,和DWI层数据粒度基本保持一致。
2023-03-16 17:44:24 4691
原创 java原理4:java的io网络模型
当数据准备好后,将数据从内核空间拷贝到用户空间,完成IO函数的调用。当应用程序调用一个 IO 函数,其底层会委托操作系统的recvfrom()去完成,当数据还没有准备好时,revfrom会一直阻塞,等待数据准备好。内核开始复制数据,它会将数据从内核缓冲区复制到用户缓冲区(用户空间的内存),然后内核返回结果(例如返回复制到的用户缓冲区的字节数)。Redis网络模型是采用I/O多路复用器,对key的处理是单线程 避免了多线程之间的竞争,省去了线程切换带来的时间和空间上的性能开销,而且也不会导致死锁的问题。
2023-02-24 17:11:35 521
原创 hadoop简介
Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。主要解决海量数据的存储和海量数据的分析计算问题并行计算的架构分而治之,先分后和。
2023-01-16 11:03:49 4301
原创 (二)hadoop面试
Hadoop是一个由Apache基金会所开发的分布式系统基础架构, 是一个存储系统+计算框架的软件框架。主要解决海量数据存储与计算的问题,是大数据技术中的基石。Hadoop以一种可靠、高效、可伸缩的方式进行数据处理,用户可以在不了解分布式底层细节的情况下,开发分布式程序,用户可以轻松地在Hadoop上开发和运行处理海量数据的应用程序。
2023-01-14 10:50:28 1067
原创 (十)hive面试指南
自定义UDF:继承UDF,重写evaluate方法自定义UDTF:继承GenericUDTF,重写3个方法,initialize(自定义输出的列名和类型),process(将结果返回forward(result)),close。
2022-11-21 16:55:39 257
原创 (二)kafka的事务性和幂等性
Exactly-Once,仅仅靠 Kafka 是无法做到的,还需要应用本身做相应的容错设计,以 Flink 为例,其容错设计就是 checkpoint 机制,作业保证在每次 checkpoint 成功时,它之前的处理都是 Exactly-Once 的,如果中间作业出现了故障,恢复之后,只需要接着上次 checkpoint 的记录做恢复即可,对于失败前那个未完成的事务执行回滚操作(abort)就可以了,这样的话就是实现了 Flink + Kafka 端到端的 Exactly-Once。...
2022-08-04 14:42:38 1073
原创 (5.2)kafka消费者源码——Fetcher类
Fetcher类的主要功能是发送Fetcher请求,获取指定消息集合,处理FetchResponse,更新消息位置。fetchedRecords处理已经获取的每个分区的记录,清空记录缓冲区并更新消耗位置。向分配分区的所在节点发送fetch请求,拉取数据sendFetches。此类管理broker上的的提取过程。...
2022-07-28 17:22:40 991
原创 软考考试信息(中级软件设计师)
软考官网路线初级(程序员),中级(软件设计师)1初级教材程序员教程(第5版)岗位职责参加系统设计开发组,在软件设计师的指导下,按照给定的程序设计规格要求,编写、测试程序模块,写出程序模块有关的文档。能力要求熟悉软件工程与计算机技术基础知识,熟练掌握常用的程序设计语言,具有必要的逻辑思维能力;能根据软件开发项目管理和软件工程的要求,按照程序设计规格说明书编制并调试程序,写出程序的相应文档,产生符合标准规范的、实现设计要求的、能正确可靠运行的程序。2中级教材软件设计师教程(第5版)......
2022-07-15 16:41:36 678
原创 (4.4)kafka生产者源码——Sender线程类
独立于KafkaProducer的线程,符合条件时被唤醒启动用于发送数据。处理向Kafka集群发送生产请求的后台线程。此线程发出元数据请求以更新集群信息,然后将生产请求发送到相应的节点。1.2:方法主要使用的两个方法创建ClientRequest客户端请求,用于networkClient向Selector发送请求.........
2022-07-12 17:12:17 450
转载 (3.4)client源码——Kafka 网络层实现机制之 Selector 多路复用器
org.apache.kafka.common.network.Selector,该类是 Kafka 网络层最重要最核心的实现,也是非常经典的工业级通信框架实现转发自 图解 Kafka 网络层实现机制之 Selector 多路复用器
2022-07-12 15:23:25 443
原创 (3.3)client源码——kafka网络通信客户端-NetworkClient类
位置:org.apache.kafka.clients;作用:用于异步请求/响应网络i/o的网络客户端。这是一个内部类,用于实现面向用户的生产者和消费者客户端,也就是说我们的生产请求和消费请求最后都会交给NetworkClient类处理。在sender线程中run时调用去。用于发送请求通过连接处理实际的读写操作............
2022-07-10 19:00:00 1106
原创 (4.3)kafka生产者源码——Partitioner分区器,决定消息发送的分区
通过类图查看默认的Partitioner接口只有一个实现类DefaultPartitioner,也可以自己实现接口自定义每个topic都有一个固定的随机数作为开头,用于hash计算。
2022-07-09 10:30:00 447
原创 (四)kafka生产者源码——全流程解析
废话少说,直接上总结。1:KafkaProducer类,详细源码解析见:作用:用于发送数据而提供的kafka 客户端,进行发送数据前的,集群连接配置,网络连接配置,用于向RecordAccumulator写数据。2:RecordAccumulator消息累加器,用于数据缓存,内存管理3:Sender独立于KafkaProducer的线程,负责发送RecordAccumulator数据前的准备工作,创建网络io请求,操作网络io层NetworkClient。4:NetworkClient是封装的一层网
2022-07-08 17:25:51 1935 2
原创 计算机中级《软件设计师》考试分析
官网:https://bm.ruankao.org.cn/sign/welcome2004-2020年软考软件设计师考试试题真题解析:链接:https://pan.baidu.com/s/1jvKDSrEKg9Tx3aurJd69OA提取码:2jck考试时间:前半年3月报名5月左右考试,后半年9月报名11月左右程序员进阶路线:初级(程序员)-中级(软件设计师)1:初级:2:中级:中级软件设计师考试题型分布...
2022-07-08 11:33:08 444
原创 (4.2)kafka生产者源码——RecordAccumulator类
位置:org.apache.kafka.clients.producer.internals作用:内存缓冲区,用于存储数据用来发送给server,作为一个消息累加器1.2:方法主要的追加数据的方法判断batch是否需要被发送的算法实现,获取已经可以发送分区数据对应的leader所在的node节点。创建或者得到分区对应的Deque队列...
2022-07-07 16:59:52 424
原创 (4.1)kafka生产者源码——KafkaProducer类
位置:org.apache.kafka.clients.producer;作用:kafka提供的进行数据发送的客户端,进行数据发送前的配置,网络连接配置等主要属性和方法如下1.2:方法发送初始化时,进行初始化发送数据真正调用的方法send 在0.9版本后只有异步发送了......
2022-07-07 16:40:00 668
原创 (二)kafka架构以及源码结构介绍
Kafka集群中生产者将消息发送给以Topic命名的消息队列Queue中,消费者订阅发往以某个Topic命名的消息队列Queue中的消息。其中Kafka集群由若干个Broker组成,Topic由若干个Partition组成,每个Partition里的消息通过Offset来获取。基本组成包括:Kafka内部各个Broker之间的角色并不是完全相等的,Broker内部负责管理分区和副本状态以及异常情况下分区的重新分片等这些功能的模块称为KafkaController。每个Kafka集群中有且只有一个Leader
2022-06-22 10:01:29 840
原创 (一)kafka源码阅读环境搭建
1:提前安装scala,JDK,gradle查看是否安装,安装的版本尽量和源码中要求的版本保持一致,详见README.md和gradle.properties文件中说明gradle下载地址:https://gradle.org/releases/ 下载解压配置环境变量即可。scala下载地址:https://www.scala-lang.org/download/2.11.12.html,下载.msi安装一直next完成即可,不用配环境变量。......
2022-06-22 09:09:34 1503
原创 (5.1)kafka消费者源码——消费者demo及源码解析
消费者分为高级和简单两种消费者高级:消费者组形式消费,更加简单高效可以使用shell命名消费topic使用客户端消费2:源码解析主要类介绍消费数据时最终调用发起消费的请求。下面进入分析消费者和分区的消费订阅关系在处实现。............
2022-06-21 15:51:08 1289
原创 (5.4)kafka消费者源码——ConsumerCoordinator类和GroupCoordinator类
其主要是对AbstractCoordinator的实现,ConsumerCoordinator负责和GroupCoordinator通信,利用ConsumerNetworkClient完成与Kafka节点的通信,发出请求、制定异步响应流程例如在leader选举,入组,分区分配等过程。类图如下主要变量如下2:方法方法中定义了大量xxResponseHandler,制定了收到响应后的行为。比如JoinGroupResponseHandler描述了发出join group请求并收到响应后的行为。主要的方法-
2022-06-21 15:29:26 560
原创 (5.3)kafka消费者源码——SubscriptionState类
SubscriptionState是KafkaConsumer用来追踪TopicPartition和offset的对应关系。
2022-06-21 14:35:39 279
原创 kubernetes使用学习(k8s)
官方定义k8s能够对容器化软件进行部署管理,在不停机的前提下提供简单快速的发布和更新方式。如果你们的项目使用多机器节点的微服务架构,并且采用Docker image(镜像)进行容器化部署,那么就可以使用k8s。一个k8s集群由一个master和多个worker节点组成。Master 负责管理集群 负责协调集群中的所有活动,例如调度应用程序,维护应用程序的状态,扩展和更新应用程序。Worker节点(即图中的Node)是VM(虚拟机)或物理计算机,充当k8s集群中的工作计算机。...
2022-06-17 15:51:47 1090
原创 (3.2)broker源码——kafka如何rebalance重平衡
rebalance是重新进行负载均衡的过程。包括集群的rebalance,消费和生产者的rebalance 。broker的rebalance:每个broker上的分区leader个数尽量保持一致,从而保证生产或者消费时节点的cpu,io,磁盘等保持基本一致。默认每个broker上的leader差异超过10%此时会触发broker上的leader迁移。它本质上是一组协议,它规定了一个 consumer group 是如何达成一致来分配订阅 topic 的所有分区的。...............
2022-06-15 16:12:14 701
原创 java实战2:利用Spring boot开发Restful 接口
利用Spring boot开发Restful 接口1:Spring boot1.1:SpringBoot框架SpringBoot框架一般分为View层、Controller层、Service层、Mapper层、pojo层。View层:视图层,根据接到的数据展示页面给用户Controller层:响应用户需求,决定用什么视图,需要准备什么数据来显示。Controller层负责前后端交互,接收前端请求,调用Service层,接收Service层返回的数据,最后返回具体的数据和页面到客户端Service
2022-05-11 17:58:13 16279 4
原创 linux或者windows系统离线安装nginx和jenkins实现vue前端代码自动化部署
1:安装dockerdocker安装以及使用安装成功后docker verion检查是否安装成功1:启动docker systemctl start docker2:检查docker运行状态systemctl status docker3:利用docker部署nigex2:linux部署nigexNginx相关地址源码:https://trac.nginx.org/nginx/browser官网:http://www.nginx.org/2.1:nginx介绍Nginx功能丰富,可作为
2022-03-10 19:41:10 6512
原创 数据结构之线性表和树
1:线性表具有同一数据类型的有限数据序列。线性表主要由顺序存储结构或链式存储结构(链表又包括单链表、循环链表、双向链表。)表示。在实际应用中,常以栈、队列、字符串等特殊形式使用。在线性表中数据有前驱元素和后继元素(除第一个和最后一个元素外),每个元素都有自己的位置(简单理解为下标,可以通过get(i)获取)。所以线性表结构的数据对于随机插入、删除、移动时间复杂度为O(n)。修改一条元素,元素其后面的元素都要改变位置。顺序存储结构:具有连续的物理地址,数据连续在一起结构类似于数组。随机插入删除效率低
2022-02-21 12:08:30 1976
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人