自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 收藏
  • 关注

原创 TCP/IP协议应用层-HTTP协议

一、HTTP是什么HTTP:请求响应机制。用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)。同时属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。HTTP客户端通过URL向HTTP服务端发送所有请求。Web服务器根据接收到的请求后,向客户端发送响应信息。HTTP底层协议:TCP 协议主要特点1、简单快速:客户向服务器请求..

2021-03-28 23:12:51 122

原创 TCP/IP协议传输层-TCP和UDP

一、TCPTCP是一种可靠的、面向连接的字节流服务。源主机在传送数据前需要先和目标主机建立连接。然后,在此连接上,被编号的数据段按序收发。同时,要求对每个数据段进行确认,保证了可靠性。如果在指定的时间内没有收到目标主机对所发数据段的确认,源主机将再次发送该数据段。源、目标端口号字段:占16比特。TCP协议通过使用"端口"来标识源端和目标端的应用进程。端口号可以使用0到65535之间的任何数字。在收到服务请求时,操作系统动态地为客户端的应用程序分配端口号。在服务器端,每种服务在"众所周知的.

2021-03-28 22:57:10 53

原创 TCP/IP协议网络互联层-IP协议

IP头部格式:IP协议是TCP/IP协议族中最为核心的协议。它提供不可靠、无连接的服务,也即依赖其他层的协议进行差错控制。在局域网环境,IP协议往往被封装在以太网帧中传送。而所有的TCP、UDP、ICMP、IGMP数据都被封装在IP数据报中传送。 版本(Version)字段:占4比特。 用来表明IP协议实现的版本号,当前一般为IPv4,即0100。 报头长度(Internet Header Length,IHL)字段:占4比特。是头部占32比特的数字,包括可选项。 普通IP.

2021-03-28 22:48:35 179

原创 TCP/IP协议模型

TCP/IP参考模型分为四个层次:应用层、传输层、网络互连层和主机到网络层。(1)主机到网络层:实际上TCP/IP参考模型没有真正描述这一层的实现,只是要求能够提供给其上层-网络互连层一个访问接口,以便在其上传递IP分组。(2)网络互连层:网络互连层是整个TCP/IP协议栈的核心。它的功能是把分组发往目标网络或主机。(3)传输层:在TCP/IP模型中,传输层的功能是使源端主机和目标端主机上的对等实体可以进行会话。在传输层定义了两种服务质量不同的协议。即:传输控制协议TCP(transmiss

2021-03-28 22:43:17 39

原创 最详细的RabbitMQ介绍

一、RabbitMQ是什么 RabbitMQ是一个由erlang语言编写的、开源的、在AMQP基础上完整的、可复用的企业消息系统。支持多种语言,包括java、Python、ruby、PHP、C/C++等。 备注:(1)MQ:MQ是 message queue 的简称,是应用程序和应用程序之间通信的方法。(2)AMQP:advanced message queuing protocol ,一个提供统一消息服务的应用层标准高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设.

2021-03-28 22:38:53 94

原创 ActiveMQ、RabbitMQ、RocketMQ、kafka中间件对比

特性 ActiveMQ RabbitMQ RocketMQ kafka 开发语言 java erlang java scala 单机吞吐量 万级 万级 10万级 10万级 时效性...

2021-03-27 16:35:29 35

原创 RabbitMQ如何保证消息的可靠性

一、首先看一下RabbitMQ为什么不可靠RabbitMQ丢失的以下3种情况:(1)生产者方面:生产者发送消息至MQ的数据丢失(2)RabbitMQ方面:MQ收到消息,暂存内存中,还没消费,自己挂掉,数据会都丢失(3)消费者方面:消费者刚拿到消息,还没处理,挂掉了,MQ又以为消费者处理完二、针对不可靠问题的解决方案通过上诉我们知道RabbitMQ共有3处不可靠问题。(1)生产者方面:生产者发送消息至MQ的数据丢失(2)RabbitMQ方面:MQ收到消息,暂存内..

2021-03-27 16:07:51 57

原创 使用限流方式限制流量,完美应对高并发中请求暴涨难题

前言:在大量并发的环境下,为了防止由于请求暴涨,导致系统崩溃从而引起雪崩,一般会对流量做一定的限制操作。比如等待、排队、降级、拒绝服务、限流等。我们这节主要讲的是限流,限流的措施有很多,我这里分为单机限流和集群限流。(1)单机限流:在java中我们可以使用AtomicInteger,RateLimiter或Semaphore来实现,但是上述方案都不支持集群限流。(2)集群限流:集群限流的应用场景有两个。一个是网关限流:常用的方案有Nginx限流和Lua+Redis(如:Spring.

2021-03-20 17:59:10 152

原创 IDEA项目中有多个配置文件时,指定使用某个配置文件方法

我们项目中针对不同的环境有不同的配置文件,比如我的application-local.properties就是当地开发的配置文件、application-test.properties是测试环境的配置文件等。有时候我们需要对其配置环境进行切换,我们需要怎么做呢?其实很简单,我们点击Edit Configurations。然后找到自己对应的Spring项目最后在Spring项目中的Active profiles输入框中输入你想要配置的文件,比如我想用application-local.

2021-03-18 23:12:11 256

原创 使用DBeaver导入数据到hive慢?试一下直接指令导数据文件进去

对于大数据中的一些特殊维表,有时候需要导入文档数据进去。对于批量导入数据,我们建议用指令导进去,这样速度可以非常快。我们一般会有这样的流程:(1)首先我们在execl中处理相关数据,每个字段的顺序都要一一与数仓中的表对应。整理好后导出为csv文件。(2)将导出的csv文件使用类似NotePad++的工具进行编辑,将“,”替换成数仓中设置的隔开符(比如/t)。如果有中文,还需要另存utf-8格式。(3)将修改后的csv文件另存为txt文件格式。(4)将该txt文件放置到服务器某个路径,然后

2021-03-18 22:54:30 123

原创 完美解决前后端交互中后端返回树形结构数据

在我们开发中,前端有些树形组件需要的数据类型更多是树形类型,比如Element中的树节点:前端需要补充的数据类型是:[{ id: 1, label: '一级 1', children: [{ id: 4, label: '二级 1-1', children: [{ id: 9, label: '三级 1-1-1' },

2021-03-17 22:36:53 236

原创 如何给postman中给接口传入基本类型的集合

我们希望前端传过来一个Integer类型的集合,方便我进行处理操作。在写接口的时候,会写成这样@RequestMapping(value = "/user",method=RequestMethod.GET)public @ResponseBody String select(@RequestParam(value = "ids",required = false) List<Integer> ids){ ... .... }但我们在调试的时候,使用postman不知道怎么

2021-03-17 22:01:20 292

原创 idea下载依赖包慢?试一下给你的idea配置阿里云配置仓库

一、前言我们在开发的时候,往往会遇到过下载依赖包慢的问题。主要原因是maven的中央仓库在国外,再加上某些原因,导致下载速度非常慢。有没有一种办法,让我们的依赖包下载速度快起来呢,还真有,把maven的中央仓库地址换成阿里云的maven仓库地址,这样就不会慢了,而且速度还非常快。二、配置idea的maven仓库地址首先我们打开我们idea的setting配置在指定目录下settings.xml文件,并在settings.xml中找到<mirrors>标签,并在里面加入以.

2021-03-16 23:05:31 22

原创 使用Mybatis遇到需要拼接/复用sql问题?快来试试Mybatis的动态sql吧

一、前言我们在使用mybatis的时候,很多时候我们需要自定义sql。通常我们会在mapper文件上写上如下操作。<select id="findSuncat" resultType="Suncat"> SELECT * FROM table left table1 on table.id = table.tq_id WHERE state = ‘SHOW’</select>假设现在增加一个条件,当业务有传时间参数的时候,我们就在后面加上and crea

2021-03-16 22:51:40 50

原创 解决前后端分离中文件传输跨域失败问题

笔者在之前的开发中就遇到过这种情况:给与后端的文件下载接口,我在浏览器在postman上试过都是可以的,但在前端上就报这种错误:看上面的介绍是说前后端跨域问题,可是后端代码中明明配置了放行所有请求,其他接口也没有报这种CORS跨域问题,偏偏这个传输文件接口报跨域问题。我当时的代码类似是这样的response.reset();response.setHeader("Content-disposition", "attachment; filename="+fileName);response

2021-03-15 22:27:16 136

原创 解决Windows10家庭版系统无法安装Docker Desktop问题

一、无法直接安装运行Docker Desktopwin10家庭版不支持hyper-v功能,只有专业版才有,不能直接安装docker。但我们在docker官网上看到一句话:(https://docs.docker.com/docker-for-windows/install-windows-home/)大概的意思就是说,现在支持在windows上安装运行Docker Desktop,只需要安装WSL2即可。二、安装WSL2我们打开win10自带的Microsoft store微软商城软.

2021-03-15 22:03:41 138

原创 Spring BeanFactory与FactoryBean 区别

一、BeanFactory与FactoryBean分别是什么1.BeanFatory: BeanFactory是个Factory,也就是IOC容器或对象工厂。所有的Bean都是由BeanFactory(也就是IOC容器)来进行管理的。 我们经常用到的是ApplicationContext 接口也是继承BeanFactory的。spring不允许我们直接操作 BeanFactory bean工厂,所以为我们提供了ApplicationContext 这个接口继承BeanFactory 接口,

2021-03-07 12:34:21 35

原创 数据库隔离级别及脏读、不可重复读、幻读

一、数据库隔离级别1.未提交读(Read uncommitted) 未提交读,事务可以读取其他事务未提交的数据,存在脏读问题。 A事务中未提交的内容,在B事务中都可见。如果A事务回滚,B事务读到的数据就是脏数据。2.已提交读(Read committed) 事务只能看到其他事务已经提交的修改。 解决了脏读问题,但有不可重复读的问题,即同一个事务多次执行同样的查询语句不一样。3.可重复读(Repeatable read) 避免了不可重复读的问题,即能够保证在同..

2021-03-07 11:19:26 97 4

原创 数据库事务的四大特性(ACID)

⑴ 原子性(Atomicity) 原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚。 因此事务的操作如果成功就必须要完全应用到数据库,如果操作失败则不能对数据库有任何影响。⑵ 一致性(Consistency)在事务开始之前和事务结束以后,数据库的完整性没有被破坏。这表示写入的资料必须完全符合所有的预设规则,这包含资料的精确度、串联性以及后续数据库可以自发性地完成预定的工作。拿转账来说,假设用户A和用户B两者的钱加起来一共是5000,那么不管A和B之间如何转账,转几次.

2021-03-06 21:03:03 63

原创 MySQL存储引擎InnoDB和MyISAM区别及使用场景

一、先了解一下InnoDB与MyISAM分别是什么,又因何诞生InnoDB是集聚引擎。它设计之初就是为了处理大量数据时提供高性能的服务,因此在运行时会在内存中建立缓冲池,用于缓冲数据和索引。 MyISAM是非集聚引擎。它设计之初就是为了快速读取。二、InnoDB与MyISAM的区别我们通过上述知道,InnoDB设计之初就是处理大量数据时提供高性能的服务。那么大量数据处理过程中,我们肯定会一些问题:事务问题:在大规模数据中,就意味着有可能大规模的修改,遇到事务问题也是很常见,因此肯定会添.

2021-03-06 20:31:16 76 1

原创 Apache DolphinScheduler 海豚调度器自定义时间参数

在Apache DolphinScheduler 海豚调度器(本文简称:小海豚) 官网中,我们看到其自定义时间的参数是这样介绍的1.支持代码中自定义变量名,声明方式:${变量名}。可以是引用 "系统参数" 或指定 "常量"。2.我们定义这种基准变量为 [...] 格式的,[yyyyMMddHHmmss] 是可以任意分解组合的,比如:$[yyyyMMdd], $[HHmmss], $[yyyy-MM-dd] 等3.也可以使用以下格式:* 后 N 年:$[add_months(yyyyMMdd

2021-03-03 21:41:35 1030 1

原创 sql 优化

一、首先要分析你的sql分析sql语句:在你的sql语句前添加explain 或者点击Navicat中的解释工具会出现以下表头字段:现在说一下每个表头的字段代表什么意思(1)id : select查询的序列号,包含一组数字,表示查询中执行select子句或操作表的顺序 id相同 执行顺序由上至下 id不同 如果是子查询,id的序号会递增,id值越大优先级越高,越先被执行 id相同又不同(两.

2021-03-01 23:24:15 42 1

空空如也

空空如也

空空如也

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

TA关注的人 TA的粉丝

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