自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(72)
  • 资源 (2)
  • 收藏
  • 关注

原创 TCP三次握手、四次挥手详解

三次握手、四次挥手详解符号梳理:序列号seq:占4个字节,用来标记数据段的顺序,TCP把连接中发送的所有数据字节都编上一个序号,第一个字节的编号由本地随机产生;给字节编上序号后,就给每一个报文段指派一个序号;序列号seq就是这个报文段中的第一个字节的数据编号。确认号ack:占4个字节,期待收到对方下一个报文段的第一个数据字节的序号;序列号表示报文段携带数据的第一个字节的编号;而确认号指的是期...

2019-12-07 01:25:17 151

原创 Helm介绍(基本使用、架构简介、Hook机制)

Helm 是 Kubernetes 的包管理器。包管理器类似于我们在 Ubuntu 中使用的apt、Centos中使用的yum 或者Python中的 pip 一样,能快速查找、下载和安装软件包。Helm 由客户端组件 helm 和服务端组件 Tiller 组成, 能够将一组K8S资源打包统一管理, 是查找、共享和使用为Kubernetes构建的软件的最佳方式。解决问题:能对多个模板文件(yaml文件)进行统一管理,设想一下,如果没有helm,如何执行多个模板文件呢?那就得一个个的执行kubectl appl

2022-07-07 16:11:27 11884

原创 k8s之StatefulSet绑定headlessService实现域名解析

k8s学习之StatefulSet实现域名解析简单demo

2022-02-07 21:51:10 2483

原创 ETCD------Raft算法

背景Raft 算法在斯坦福 Diego Ongaro 和 John Ousterhout 于 2013 年发表的《In Search of an Understandable Consensus Algorithm》中提出。相较于 Paxos,Raft 通过逻辑分离使其更容易理解和实现,目前,已经有十多种语言的 Raft 算法实现框架,较为出名的有 etcd、Consul 。角色Raft 角色根据官方文档解释,一个 Raft 集群包含若干节点,Raft 把这些节点分为三种状态:Leader、 Fol

2022-01-08 15:05:47 445

原创 golang中的切片

前言golang里面有个数据类型叫切片,这在java里面是没有对应的数据结构,发现还挺有意思的,也有一些要注意的点,特此记录一下。首先,切片在golang中是属于引用数据类型,其结构相当于一个可变数组,其中有容量和长度的概念,长度则是我们所理解的储存数据的大小,而容量则是该数组所能容纳的最大数据量。那么有人可能会说,不是说是可变数组吗?怎么还会有容量的限制?记录首先我们要知道,在golang|中,给切片追加数据使用的是append函数,当我们使用make函数创建一个切片时,实际上底层为我们引用了一

2021-10-27 22:33:07 339

原创 Rust安装配置手把手教程

https://www.rust-lang.org/tools/install选择1查看版本命令:rustc --version安装配置编译器https://www.jianshu.com/p/1aa989808e15

2021-10-24 23:03:46 2157

原创 sudo和su命令的联系和区别详解

sudo和su命令sudosudo是一种权限管理机制,依赖于/etc/sudoers,其定义了授权给哪个用户可以以管理员的身份能够执行什么样的管理命令。默认情况下,系统只有root用户可以执行sudo命令。需要root用户通过使用visudo命令编辑sudo的配置文件/etc/sudoers,才可以授权其他普通用户执行sudo命令。sudo的运行有这样一个流程:1).当用户运行sudo时,系统于/etc/sudoers文件里查找该用户是否有运行sudo的权限;2).若用户具有可运行sudo的权限

2021-10-01 15:15:48 1465

原创 Linux中单引号和双引号在命令、文件名使用详解

前言近期在公司做了一个需求,主要都是涉及shell脚本的修改和编写,发现自身对Linux中的单双引号的作用很不熟练,导致在一些嵌套使用单双引号的情景下发生了误用。为此,写一篇博客来从最基本的单层运用到嵌套运用的情景进行总结。基本介绍和使用单引号:​ 单引号的作用会忽略所有的命令和特殊字符,让引号中的内容按字符串输出。双引号:​ 双引号中的内容,系统扫描其中的命令和特殊字符,让参数以实际的值进行输出。例子:​ 在该例子中,定义一个变量a,分别通过单引号和双引号进行输出,可以看到单引号下,以该变

2021-10-01 14:52:02 5488

原创 Antd实现弹框编辑表单功能

问题:在使用Antd实现表单的编辑功能时,我们需要将数据回显到弹窗中的表单例如:但是当我们使用Antd的表单时会发现一下问题:1.当使用initialValue只能显示一开始选择的值,无法更改。也就是当我们第一次选择时,能正常显示,但是当我们接着去选择其他数据时,还是回显第一次选择的数据。2.当使用最小控件的value,解决了第一点问题。但是当表单提交时,后端无法辨别表单项,从而无法更改。解决方法:还是使用initialValue,但是在Modal中增加destroyOnClose={tru

2021-05-20 15:39:39 2815 1

原创 Antd+Spring Security关于Form Data的调用问题

Antd中的Form表单,默认以json模式提交信息。而SpringSecurity关于用户名的读取要求的是以Form Data的形式解决方法:import qs from 'qs'const data = qs.stringify(values)axios.post('http://localhost:8090/chat/login',data)...

2021-05-06 23:20:05 222

原创 IDEA报错Failed to execute goal org.apache.maven.

1.查看设置中的Maven,看setting.xml和resposity是否路径正确2.到maven中降低maven-plugin版本

2021-05-06 15:28:25 262

原创 Spring Security的介绍和简单使用

前言Spring Security作为基于Spring的安全框架,具有身份认证,权限判别的功能。一般而言,当你选用的是SSM,则选用shiro框架;选用Spring Boot,则使用Spring Security。接口从Spring Security的使用层面,下面介绍几大接口和类1.类WebSecurityConfigurerAdapter从名字上看,我们知道这是一个配置类,当我们需要使用Spring Security的各项功能时,我们需要继承该类,通过该类中的configure方法去配置程序

2021-04-15 15:42:34 278

原创 idea报错Can‘t find catalina.jar解决方法

虽然现在大多直接使用Spring框架,其内置tomcat,能减少很多配置。但我们从网上找的项目,很多还是以前使用tomcat的项目。而且有时在本地编译器上跑会出现can‘t find catalina.jar错误。出现该错误,大部分原因是由配置出现了问题,尤其是tomcat的配置。

2021-04-08 15:58:03 25851 2

原创 Antd中Form表单输入组件的动态赋值

Antd:需求根据选择获取对应值,并将该值回显到表单的输入框中。解决方法首先使用createRef()获取formformRef = React.createRef()然后再Form表单上绑定该formRef <Form name="normal_login" className="register-form" onFinish={this.onFinish}

2021-03-27 20:02:24 2341

原创 react如何修改标签页名

前言React默认打开的标签页名为React App,那么我们如何根据我们的项目来全局更改标签页名呢?方法找到项目中的public文件夹,再找到下面的index.html文件,修改其中的<title>React App</title>将其中的React App改为自己想要的名字即可如果要修改图标,同样在该文件中查找相关的标签进行更改。...

2021-03-25 16:10:05 1570

原创 常用于用户认证的方式之JWT(Json Web Token)理解

JWT,全称Json Web Token;是为了在网络应用环境间传递声明而执行的一种**基于JSON**的开放标准((RFC 7519)。该token被设计为紧凑且安全的,特别适用于分布式站点的单点登录(SSO)场景。(如果不知道何为单点登录,请往下拉查看)。JWT的声明一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息,以便于从资源服务器获取资源,也可以增加一些额外的其它业务逻辑所必须的声明信息,该token也可直接被用于认证,也可被加密。

2021-03-15 23:41:43 520 1

原创 Netty学习之Netty模型的模块组件

前言上一篇博客介绍了Netty模型是如何一步步演化的,以及该模型由哪些模块组件所构成,而这篇博客则详细讲述下,该模型中各个模块组件的具体功能。Netty的模块组件首先来回顾下Netty的模型图:模块组件:1.【NioEventLoop】:NioEventLoop 中维护了一个线程和任务队列,支持异步提交执行任务,线程启动时会调用 NioEventLoop 的 run 方法,执行 I/O 任务和非 I/O 任务。I/O 任务,即 selectionKey 中 ready 的事件,如 accep

2021-03-09 23:03:17 217

原创 Netty学习之Netty模型和Reactor模式

Reactor单线程模型Reactor单线程模型,指的是所有的I/O操作都在同一个NIO线程上面完成,Reactor线程是个多面手,负责多路分离套接字,使用Acceptor建立新连接,并分派请求到处理器链中。该模型 适用于处理器链中业务处理组件能快速完成的场景。不过,这种单线程模型不能充分利用多核资源,所以实际使用的不多。单Reactor多线程单Reactor多线程通过使用一个专门的NIO线程–acceptor新城用于监听服务端,接收客户端的TCP连接请求并且处理请求的Handler使用多线程进

2020-12-02 23:51:56 438

原创 Netty学习之零拷贝

一、零拷贝所谓零拷贝,即不经过CPU的拷贝方式。1.传统IO在传统的IO中,拷贝经过以下几个步骤:拷贝:硬盘->(DMA)内核->(CPU)用户buffer->(CPU)socket buffer->(DMA拷贝)协议引擎对应的切换模式如下:切换:用户->内核->用户->内核图解如下,上图是切换模式,下图是拷贝所需要经过的过程:其中DMA copy即直接内存拷贝,不经过CPU2.mmap——内存映射优化为了减少CPU拷贝,后面提出了MMAP模式

2020-12-02 23:11:18 237

原创 关于React部署服务器中有关BrowserRouter和HashRouter的使用

前言在新版本的React中,Router组件被拆分为BrowserRouter,HashRouter,createMemoryHistory,虽然更加的规范,但也带来了更多的问题。问题本来项目开始我用的是BrowserRouter做路由跳转,在开发环境下完全没有问题。但当部署到服务器上时,只有首页加载正常,当跳转路由时,便找不到路径,报404。Browserhistory ,Hashhistory 介绍BrowserRouter使用的是Browserhistory ,而HashRouter使用的是

2020-11-24 14:45:54 1708

原创 如何在一个sql语句中得到多个count函数的值

记一下在项目中出现的一个小问题,由于之前没用过case when函数,所以还是费了不少时间问题:在一个项目中,有个需求是需要分别统计周一到周日出现的次数,表如下:解决方案:使用case when 函数SELECT count(case when(day="Mon") then 1 else null end)as Mon , count(case when(day="Tue") then 1 else null end)as Tue, count(case when

2020-11-09 15:48:21 5393

原创 React修改图片大小

一、CSS在css文件中设置样式名和设置调整大小的参数.login-img{ width: 100%; height: 720px;}二、使用classNameimport logo from '../../images/login.jpg';<img src={logo} alt="logo" className="login-img"/>三、导入该css(不导入不生效!!)import './login.css';完成上述步骤即可通过css调整图片大

2020-11-07 22:20:44 2958

原创 [Err] 1055 - Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated c

报错:1055 - Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated column ‘information_schema.PROFILING.SEQ’ which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode解决方案:找到my.cnf文

2020-10-24 17:32:54 177

原创 React使用axios的post方式和后端进行数据交互

一、以下的例子是通过Antd的Form表单提交数据,和后台进行数据交互。该方法通过axios的post方法,将value通过定义好的接口传递给后台,并获得响应体。<Form {...layout} name="nest-messages" onFinish={onFinish} validateMessages={validateMessages}>const onFinish = values => { console.log("values: ", val

2020-10-05 21:55:44 4712 1

原创 Antd的Table组件实现自定义分页数据条数

在项目中遇到这个问题,因为Antd的Table组件默认一页显示10行,而项目中只需要5行。看了很多博客,都是什么先将pagination设置为false,然后再自定义分页组件,而且很多博客都是照搬。本人认为设计者肯定不会设计为了一个条数就得将整个分页属性都重新设计的麻烦操作,后面还是自己去看官网发现有pageSize这个属性,再加上大胆尝试,用一行代码实现自定义分页条数,如下图所示: <Table rowSelection={{

2020-10-05 11:07:46 8648 7

原创 Bitmap和Bloom Filiter(布隆过滤器)

一、BitmapBitmap顾名思义,就是用bit来实现map的存储。底层用map来实现对数据的存储,其使用一个bit位来标记某个元素的value,而key就是该元素。举例:以下的map就表示{1,2,4,6}这四个数我们知道一个字节是8位,那如果要表示的数字超过了7,比如{12,13,15}该如何表示呢?其实只需要再开辟一个字节的map即可,如下图:同理,我们可以用这种类似二维数组的表示法表示任意数字!!!并且,给定任意整数M,那么M/32就得到下标,M%32就知道它在此下标的哪个位置

2020-10-05 01:51:55 594

原创 AQS(abstractqueuedSynchronizer)抽象队列同步器详解

AQS(abstractqueuedSynchronizer)抽象队列同步器,基于模板方法模式,是用来构建锁或者其他同步组件的基础框架。它使用int成员变量(state)来表示同步状态,通过内置的FIFO队列(CLH队列)来完成资源获取线程的排队工作。

2020-09-13 11:21:33 367

原创 PriorityQueue的排序规则

这里先用一个栗子来帮助理解,后续补上源码…public static void main(String[] args) { //小顶堆 PriorityQueue<Integer> pq = new PriorityQueue<Integer>((o1,o2)->o1.compareTo(o2)); pq.add(3); pq.add(1); pq.add(2); pq.add(4); for(Integer t:pq){ System.ou

2020-08-25 22:48:41 1750

原创 React学习一——webstorm环境搭建和React基础语法

React一、环境搭建Node.js+WebStorm+react.js Node.js在rTool上搜索node.js,下载安装包打开安装,除了路径,一路next(1) 修改环境变量计算机->属性->高级系统设置->环境变量->系统变量->path编辑->将安装路径加入其中(2) 测试此时可以执行 node -v 和 npm -v 分别查看node和npm的版本号:(3) 配置npm在安装全局模块时的路径和缓存ca

2020-08-12 17:31:17 2330 1

原创 React学习二——关于前端知识的梳理和React重点知识理解

一、什么是#(hash)?(1) http请求不包含##是用来指导浏览器动作的,对服务器端完全无用。所以,HTTP请求中不包括#。 比如,访问下面的网址,http://www.example.com/index.html#print,浏览器实际发出的请求是这样的:GET /index.html HTTP/1.1Host: www.example.com(2) #后的字符在第一个#后面出现的任何字符,都会被浏览器解读为位置标识符。这意味着,这些字符都不会被发送到服务器端。(3) 改变#不触发网页

2020-08-12 17:10:48 155

原创 MobX——React的数据流方案

Mobx是一种前端数据流方案,相较于redux,它对数据的处理显得更加的简洁,更加符合store增删查改的的操作概念。MobX通过透明的函数响应式编程使得状态管理变得简单和可扩展。(官方)MobX背后的哲学很简单:任何源自应用状态的东西都应该自动地获得。流程图:(接下来将会一一介绍以下功能)一、安装安装: npm install mobx --save。 React 绑定库: npm install mobx-react --save。 要启用 ESNext 的装饰器 (可选), 参见下面。CD

2020-08-10 15:16:25 800

原创 背包问题第二讲--完全背包问题

完全背包问题相对于0-1背包问题其改变在于我们对每个物品的可选次数不再是一次,而是无限次,那么我们很容易想到在0-1背包问题的基础上(还不知道0-1背包问题的请看这篇博客),多加一层关于物品次数的循环就好了。

2020-08-08 11:21:11 333

原创 JQuery——一个快速、简洁的JavaScript库

JQueryjQuery是一个快速、简洁的JavaScript库,极大地简化了 JavaScript 编程。jQuery设计的宗旨是“write Less,Do More”,即倡导写更少的代码,做更多的事情。它封装JavaScript常用的功能代码,提供一种简便的JavaScript设计模式,优化HTML文档操作、事件处理、动画设计和Ajax交互。一、 语法和选择器jQuery 语法是通过选取 HTML 元素,并对选取的元素执行某些操作。基础语法: $(selector).action()美元符号

2020-08-05 11:15:23 1347

原创 0-1背包问题第一讲

问题描述:给定 3 件物品,物品的重量为 weight[]={1,3,1},对应的价值为 value[]={15,30,20}。现挑选物品放入背包中,假定背包能承受的最大重量 W 为 4,问应该如何选择装入背包中的物品,使得装入背包中物品的总价值最大?令 dp[i][w] 表示前 i 件物品放入容量为 w 的背包中可获得的最大价值。为了方便处理,我们约定下标从 1 开始。初始时,网格如下:根据之前已经引出的状态转移方程,我们再来理解一遍,对于编号为 i 的物品:如果选择它,那么,当前背包的最大价值

2020-07-19 16:03:45 99

原创 Bootstrap入门学习

Bootstrap入门学习Bootstrap简介Bootstrap是美国Twitter公司的设计师Mark Otto和Jacob Thornton合作基于HTML、CSS、 JavaScript开发的简洁、直观、强悍的前端开发框架,使得 Web 开发更加快捷。Bootstrap提供了优雅的HTML和CSS规范,它即是由动态CSS语言Less写成。附:Less即CSS预处理语言,简单来说就是对原来的CSS进行扩充,使其能使用变量、混合、函数等,让CSS更易维护学习资料:官网 http://lessc

2020-07-17 20:04:14 168

原创 Java泛型、泛型类、泛型方法详解

一、泛型泛型是Java 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。 Java泛型被引入的好处是安全简单。在Java SE 1.5之前,没有泛型的情况的下,通过对类型Object的引用来实现参数的“任意化”,“任意化”带来的缺点是要做显式的强制类型转换,而这种转换是要求开发者对实际参数类型可以预知的情况下进行的。对于强制类型转换错误的情况,编译器可能不提示错误,在运行的时候才出现异常,这是

2020-05-22 16:52:10 2884 1

原创 Redis详解和学习(二)

Redis是单线程的,底层通过**IO多路复用(NIO)实现**对多个文件描述符的监控,是基于epoll实现。其优点除了epoll本身不用让客户端去轮询所有的IO操作外,还在于:1. epoll 没有最大并发连接的限制,上限是最大可以打开文件的数目,这个数字一般远大于 2048, 一般来说这个数目和系统内存关系很大 ,具体数目可以 cat /proc/sys/fs/file-max 察看。2. 效率提升, Epoll 最大的优点就在于它只管你“活跃”的连接 ,而跟连接总数无关,因此在实际的网络环境中,

2020-05-11 21:14:31 125

原创 Redis详解和学习(一)

Redis的使用场景,基本类型,持久化等介绍

2020-05-01 00:18:57 269

原创 Mysql的锁以及MVCC解决事务隔离级别

本文不再阐述数据库的ACID,请了解后再来阅读此文!一、Mysql中的锁首先我们要知道mysql锁,锁住的是索引,当不设置索引的时候会将隐藏字段设置为索引,且隐藏字段默认走全表扫描,所以当不设置主键索引,且表中无其他索引(不包括隐藏字段)时,会锁全表。下面,我们具体来了解一下Mysql中具体有哪些锁以及锁的作用:Shared Locks(共享锁/S锁)若事务T对数据对象A加上S锁,则事务...

2020-04-14 19:14:34 491

原创 Java的异常类以及异常处理机制

一、异常类首先,废话不多说,先上图,根据图,我们再来慢慢讲解由上图我们可以知道,在java中,所有的异常类都继承自Throwable类。而Throwable类有两个实现类,分别是Error类和Exception类1.Error程序在执行过程中所遇到的硬件或操作系统的错误。错误对程序而言是致命的,将导致程序无法运行。是程序无法处理的错误,表示运行应用程序中较严重问题。常见的错误有内存溢出(...

2020-04-09 18:28:25 617

Netty_chatroom.zip

Springboot+Netty聊天实战项目 功能: 私聊,群聊,文件发送,表情发送,登录验证

2021-03-15

Dormitory3.zip

一个使用SSM框架进行开发的宿舍管理系统,使用SpringAOP进行日志存储,连接Mysql数据库,可以根据需求进行数据库的增删查改,非常方便,而且有登录界面,进行数据验证等功能。

2020-05-16

空空如也

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

TA关注的人

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