自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

BIGBAI的博客

分享成长,交流进步!

  • 博客(165)
  • 收藏
  • 关注

原创 CPU深度解析

即cpu的运行是一个频繁的从内存中读写数据和指令的过程。假设cpu严格顺序执行,如果连续的三条指令,第一条指令执行完后需要从内存获取数据,那么cpu需要等99个时间周期来等待内存数据读取(这里假设:cpu的速度是内存的100倍)。则在一个cpu的情况下,有一个线程的时候cpu只有50%的时间被利用上。线程:线程是动态的概念,是可执行的计算任务。进程:进程是静态的概念,程序进入内存,分配对应资源,内存空间,进程进入内存,同时产生一个主线程。操作系统的cpu多线程分时系统,线程的切换需要保存现存,保存上下文。

2023-08-27 16:51:36 155

原创 Kubernetes关于cpu资源分配的设计

例如:两个容 器 A、B 的 CPU 份额分别为 1000 和 500,在CPU进行时间片分配的时候,容器A比容器B多一倍的机会获得 CPU 的时间片。比如容器A的进程一直是空闲的,那么容器B是可以获取比容器A更多的CPU时间片的。根据上述,我们知道2核2线程的CPU,可被系统识别为4个逻辑CPU,在K8s中对CPU的分配限制是通过cgroup对逻辑CPU做分片限制的。cpu核心是CPU的重要组成部件,在内核频率、缓存大小等条件相同的情况下,CPU核心数量越多,CPU的整体性能越强。

2023-08-06 12:18:16 660

原创 NUMA架构在kubernetes中的应用

对于cpu来说,这种分配方式并不会有太大问题,因为cpu可以灵活调度,numa调度时我们只计算绑定了numa cpu的pod是可以接受的,但是对于内存来说,numa node上申请了的内存无法做到随时迁移,这就会导致调度器视角numa node的mem资源足够,但是等到pod真正使用时,由于没有绑定numa node的pod申请的内存,导致numa node的mem资源不足,造成swap中断或者远端内存申请,这会对绑定mem的pod来带来性能损耗。忽略了没有绑定numa node的pod资源。

2023-07-30 12:45:12 963

原创 Linux NUMA架构(非统一内存访问)

在这种情况下cpu仍然可以访问所有的内存,但速度是不一样的,访问自己的内存位比访问连接到其它cpu的内存位会更快。在云计算环境中云服务拥有大量的的服务器和内存,这些资源是聚合的可供用户使用,当部署工作负载时,cpu和内存通常时随机分配的,在基础架构级别内存和cpu可以从同一台或者多台服务器分配。缺点:多个cpu通过单一的总线连接到一个大内存,该总线显然会成为cpu的性能瓶颈,会出现cpu等待数据的情况。通过NUMA架构,并提供NUMA微调,可以根据工作负载的NUMA拓扑来分配工作负载的cpu、内存。

2023-07-30 10:57:48 1542

原创 Mybatis逻辑分页原理解析RowBounds

Mybatis提供了一个简单的逻辑分页使用类RowBounds(物理分页当然就是我们在sql语句中指定limit和offset值),在DefaultSqlSession提供的某些查询接口中我们可以看到RowBounds是作为参数用来进行分页的,如下接口: public <E> List<E> selectList(String statement, Object pa...

2019-09-26 16:05:09 495

原创 prim算法

class minMgraphTree { public void createMgraph(MGraph graph, int vertes, char[] vertex, int[][] weight) { for (int i = 0; i < vertes; i++) { graph.vertex[i] = vertex[i]; ...

2019-09-21 21:51:10 265

原创 Synchronized的原理及自旋锁,偏向锁,轻量级锁,重量级锁的区别

在多线程并发编程中Synchronized一直是元老级角色,很多人都会称呼它为重量级锁,但是随着Java SE1.6对Synchronized进行了各种优化之后,有些情况下它并不那么重了,Java SE1.6中为了减少获得锁和释放锁带来的性能消耗而引入的偏向锁和轻量级锁,以及锁的存储结构和升级过程。锁从宏观上分类,分为悲观锁与乐观锁。乐观锁乐观锁是一种乐观思想,即认为读多写少,遇...

2019-09-17 17:37:17 807

原创 AVL树

AVL树给你一个数列{1,2,3,4,5,6},要求创建一颗二叉排序树(BST), 并分析问题所在上面BST(二叉排序树) 存在的问题分析:左子树全部为空,从形式上看,更像一个单链表. 插入速度没有影响 查询速度明显降低(因为需要依次比较), 不能发挥BST的优势,因为每次还需要比较左子树,其查询速度比单链表还慢 解决方案-平衡二叉树(AVL)平衡二叉树:(平衡二叉树的前提...

2019-09-15 09:31:40 209

原创 redis分布式锁(高并发)

redis分布式锁(高并发)redis是天生单线程特性,的内存缓存服务器,当有多个线程同时访问一台redis服务器时,redis会在内部对线程进行排队。所以redis可以用此特性进行分布式锁。 高并发的场景下,redis分布式锁很可能永久失效。 redis分布式锁使用了cas算法原理。 synchronized时jvm级别的锁,当项目采用集群部署的时候必须采用分布式锁。才能保证线程安全。...

2019-09-14 21:10:17 1514

原创 哈夫曼树

哈夫曼树wpl带权路径长度最小的树二叉树树的思想:创建节点,创建二叉树,其中二叉树的操作都定义在节点类里面,二叉树类里调用这些方法,其中定义方法的时候以一个节点为二叉树递归定义。因为一个节点就是一颗二叉树。package binaryTree.huffmanTree;import java.util.*;/** * @Author: 白雄雄 * @Date: 20...

2019-09-14 21:00:44 115

原创 Java中==和equals的区别(详细)

要想充分了解==和equals的区别需要对java的内存有所了解:Java内存模型中存在这两种内存区域:一种是栈内存,一种是堆内存。(注:程序计数器,运行时数据区,永久代,直接内存这里不讨论,因为java对象保存在栈内存(基本数据类型)和堆内存(引用数据类型和包装类)中)  在函数中定义的一些基本类型的变量和对象的引用变量(变量名)都在函数的栈内存中分配。  当在一段代码块定义一个...

2019-09-12 21:16:48 215

原创 堆排序

1:堆毫无疑问,排序两个字没必要去死磕,这里的重点,在于排序的方式,堆排序,就是以堆的形式去排序,毫无疑问,了解堆很重要。那么,什么是堆呢?这里,必须引入一个完全二叉树的概念,然后过渡到堆的概念。上图,就是一个完全二叉树,其特点在于:从作为第一层的根开始,除了最后一层之外,第N层的元素个数都必须是2的N次方;第一层2个元素,第二层4个,第三层8个,以此类推。 而最后一行的...

2019-09-10 15:52:20 144

原创 关于synchronized、wait、notify已经notifyAll的使用

前言:关于synchronized、wait、notify已经notifyAll大家应该不陌生,现在我大致说一下我的理解。一:synchronizedsynchronized中文解释是同步,那么什么是同步呢,解释就是程序中用于控制不同线程间操作发生相对顺序的机制,通俗来讲就是2点,第一要有多线程,第二当多个线程同时竞争某个资源的时候会有先后顺序。在java中有三种写synchroniz...

2019-08-04 16:19:59 256

原创 java单例模式

单例模式的五种实现方式1、饿汉式(线程安全,调用效率高,但是不能延时加载): 1 2 3 4 5 6 7 publicclassImageLoader{ privatestaticImageLoader instance =newImageLoader; priv...

2019-08-04 15:30:21 105

原创 springSecurity原理

最近在公司的项目中使用了springsecurity框架,所以有机会来学习一下,公司的项目是使用springboot搭建springBoot版本1.59spring security版本4.2.3(个人理解可能会有偏差,希望有不正确之处,大家能够指出来,共同探讨交流。)一、Spring security框架简介1、简介一个能够为基于Spr...

2019-05-16 14:07:26 2191

原创 浏览器存储(cookie、localStorage、sessionStorage)

互联网早期浏览器是没有状态维护,这个就导致一个问题就是服务器不知道浏览器的状态,无法判断是否是同一个浏览器。这样用户登录、购物车功能都无法实现,Lou Montulli在1994年引入到web中最终纳入W3C规范 RFC6265中。区别 cookie在浏览器请求中每次都会附加请求头中发送给服务器。大小不能超过4k localStorage保存数据会一直保存没有过期时间,不...

2019-05-15 13:45:08 172

原创 OAuth 2.0

The OAuth 2.0 Authorization FrameworkOAuth 2.0授权框架支持第三方支持访问有限的HTTP服务,通过在资源所有者和HTTP服务之间进行一个批准交互来代表资源者去访问这些资源,或者通过允许第三方应用程序以自己的名义获取访问权限。为了方便理解,可以想象OAuth2.0就是在用户资源和第三方应用之间的一个中间层,它把资源和第三方应用隔开,使得第三方应用无...

2019-05-12 19:14:52 210

原创 Spring Security OAuth 2.0

续·前一篇《OAuth 2.0》OAuth 2.0 Provider 实现在OAuth 2.0中,provider角色事实上是把授权服务和资源服务分开,有时候它们也可能在同一个应用中,用Spring Security OAuth你可以选择把它们分成两个应用,当然多个资源服务可以共享同一个授权服务。获取token的请求由Spring MVC的控制端点处理,访问受保护的资源由标准的Spri...

2019-05-12 19:12:38 260

原创 ssi include 命令 路径问题

ssi (server side include),将内容发送到浏览器之前,可以使用“服务器端包含 (SSI)”指令将文本、图形或应用程序信息包含到网页中Include 命令可以把其它文档中的文字或图片插入到当前被解析的文档中,这是整个SSI的关键所在。通过Include命令只需要改动一个文件就可以瞬间更新整个站点!Include 命令具有两个不同的参数:Virtual:给出到服务器端某...

2019-04-26 11:41:01 529

原创 FastDFS测试

上传测试/usr/bin/fdfs_upload_file /etc/fdfs/client.conf 100sh.jpg1上传成功后返回group1/M00/00/00/rBBNW1sJCvCAHgH7AAVGh5jPYok707.jpg1返回的文件ID由group、存储目录、两级子目录、fileid、文件后缀名(由客户端指定,主要用于区分文件类型)拼接而成。7、安装Ngin...

2019-04-22 17:02:50 2509

原创 Nginx的location规则:优先级和路径替换

Nginx是反向代理和负载均衡的首选工具,nginx的location配置有许多细节内容在网上不容易找到资料,或者解释不清。本文对locaiton的常见特性进行介绍。location的优先级locaiton有四中类型的匹配规则,分别为完全匹配(=)、前缀普通匹配(^~)、正则表达式匹配(~或者~*)、普通匹配规则等号类型(=)的优先级最高。一旦匹配成功,则不再查找其他匹配项...

2019-04-22 17:00:04 3024 1

原创 FastDFS

、简介FastDFS 是一个开源的高性能分布式文件系统(DFS)。 它的主要功能包括:文件存储,文件同步和文件访问,以及高容量和负载平衡。主要解决了海量数据存储问题,特别适合以中小文件(建议范围:4KB < file_size <500MB)为载体的在线服务。FastDFS 系统有三个角色:跟踪服务器(Tracker Server)、存储服务器(Storage Server)和...

2019-04-22 14:40:47 353

原创 Nginx详解(正向代理、反向代理、负载均衡原理)

Nginx配置详解nginx概述nginx是一款自由的、开源的、高性能的HTTP服务器和反向代理服务器;同时也是一个IMAP、POP3、SMTP代理服务器;nginx可以作为一个HTTP服务器进行网站的发布处理,另外nginx可以作为反向代理进行负载均衡的实现。这里主要通过三个方面简单介绍nginx反向代理 负载均衡 nginx特点1. 反向代理关于代理说到代理,首先...

2019-04-19 11:27:54 191

原创 vue-Cli

1. 避坑前言其实这次使用vue-cli的过程并不顺利,反复尝试几次都遇到以下这个报错:创建vue-cli工程项目时的报错在网上查了很多资料才发现原来是node版本过低的问题,虽然没有找到官方对这个“过低”问题的解释,但是根据国外网友的经验之谈,应该是至少使用node6,我将node4更新至node8之后确实没有报错了,顺利搭建。相关答疑帖:https://github.com/...

2019-04-17 12:50:12 94

原创 Angular Cli-webpack

一、引言Angular从开发再到生产环境部署都离不开Angular Cli工具集,而Angular Cli本质上是使用 Webpack(当前使用版本为2) 来打包资源。Webpack 本身并不复杂,略用过一点都清楚,只需要创建一个 webpack.config.js 的文件并简单的配置,就可以把一个复杂的应用所有文件全部打包成若干静态资源文件。然而一个复杂的应用免不了使用到第三方类库,...

2019-04-17 11:12:48 1653

原创 全局安装 Angular CLI

网上关于Angular CLI的安装指南有很多,但总是缺一些细节,而这些细节总是导致各种各样的错误。现将安装过程记录如下。安装前提:Nodejs已安装!Nodejs中包含npm,可用来下载各种工具插件。安装步骤(1)若之前安装过Angular CLI,则需要卸载,并清空缓存。npm uninstall -g angular-clinpm cache clean --force若...

2019-04-16 11:01:12 838

原创 SpringBoot整合Swagger2

相信各位在公司写API文档数量应该不少,当然如果你还处在自己一个人开发前后台的年代,当我没说,如今为了前后台更好的对接,还是为了以后交接方便,都有要求写API文档。手写Api文档的几个痛点:文档需要更新的时候,需要再次发送一份给前端,也就是文档更新交流不及时。 接口返回结果不明确 不能直接在线测试接口,通常需要使用工具,比如postman 接口文档太多,不好管理Swagg...

2019-04-14 20:35:46 136

原创 Lombo使用

1 Lombok背景介绍官方介绍如下:Project Lombok makes java a spicier language by adding 'handlers' that know how to build and compile simple, boilerplate-free, not-quite-java code.大致意思是Lombok通过增加一些“处理程序”,可以让...

2019-04-14 12:46:06 1418

原创 Spring cloud 2下使用Feign找不到@EnableFeignClients的解决办法

最近在实践Spring Boot 2+Spring Cloud(Finchley.M9),在用到Feign的时候发现@EnableFeignClients注解开不了,独立使用Feign是可以的,但就是开启不了Spring对Feign的支持.经过一番摸索终于把问题解决了,在这里分享一下解决方案和思路.解决思路写得较繁琐,可以选择性阅读,结论和解决方案写在前面0. 结论和解决方案Spring C...

2019-04-12 16:32:58 784

原创 TCP和UDP的区别和优缺点

1、TCP与UDP区别总结:1、TCP面向连接(如打电话要先拨号建立连接);UDP是无连接的,即发送数据之前不需要建立连接2、TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保证可靠交付Tcp通过校验和,重传控制,序号标识,滑动窗口、确认应答实现可靠传输。如丢包时的重发控制,还可以对次序乱掉的分包进行顺序控制。3、...

2019-04-09 10:16:35 161

原创 socket,tcp,http三者之间的区别和原理

http、TCP/IP协议与socket之间的区别下面的图表试图显示不同的TCP/IP和其他的协议在最初OSI模型中的位置:7 应用层 例如HTTP、SMTP、SNMP、FTP、Telnet、SIP、SSH、NFS、RTSP、XMPP、Whois、ENRP 6 表示层 例如XDR、ASN.1、SMB、AFP、NCP 5 会话层 例如ASAP、TL...

2019-04-07 17:22:11 156

原创 RabbitMQ Connection Channel 详解

首先展示网络上的两种图:AMQP :Rabbit各关键组件交换流程:Rabbit 内部线程图:1.ConnectionFactory、Connection、ChannelConnectionFactory、Connection、Channel都是RabbitMQ对外提供的API中最基本的对象。Connection是RabbitMQ的socket链接,...

2019-04-07 17:10:58 16457

原创 Redis 持久化之RDB和AOF

Redis 持久化之RDB和AOFRedis 持久化之RDB和AOFRedis 有两种持久化方案,RDB (Redis DataBase)和 AOF (Append Only File)。如果你想快速了解和使用RDB和AOF,可以直接跳到文章底部看总结。本章节通过配置文件,触发快照的方式,恢复数据的操作,命令操作演示,优缺点来学习 Redis 的重点知识持久化。RDB 详解RDB ...

2019-04-02 10:02:12 135

原创 centos7下安装redis

一、安装redis第一步:下载redis安装包wget http://download.redis.io/releases/redis-4.0.6.tar.gz[root@iZwz991stxdwj560bfmadtZ local]# wget http://download.redis.io/releases/redis-4.0.6.tar.gz--2017-12-13 12...

2019-03-31 16:46:46 96

原创 CAP原则(CAP定理)、BASE理论

 CAP原则又称CAP定理,指的是在一个分布式系统中, Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性),三者不可得兼。  CAP原则是NOSQL数据库的基石。Consistency(一致性)。 Availability(可用性)。Partition tolerance(分区容错性)。分布式系统的CAP理论:理论首...

2019-03-30 15:30:32 305

原创 cJSON在STM32中的应用

写在前面:将JSON应用在STM32上面已经很普遍了,但还是有很多问题在网上找不到答案,毕竟自己造轮子和找轮子造车还是有点差别。今天就总结一下最近在STM32上使用cJSON所遇到的一些问题。-------------------------------------------正文开始线-----------------------------------------------什么...

2019-03-28 21:52:44 767

原创 cJSON的构造和解析

1.JSON格式简述JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写,同时也易于机器解析和生成。它基于JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#...

2019-03-28 21:50:29 1094

原创 【UCOSIII】UCOSIII的任务调度和切换

UCOSIII任务调度可剥夺型任务调度任务调度就是中止当前正在运行的任务转而去执行其他的任务。UCOSIII是可剥夺型内核,因此当一个高优先级的任务准备就绪,并且此时发生了任务调度,那么这个高优先级的任务就会获得CPU的使用权!UCOSIII中的任务调度是由任务调度器来完成的,任务调度器有2种:任务级调度器和中断级调度器。任务级调度器为函数OSSched();中断级调度器为函数O...

2019-03-22 17:21:32 558

原创 安装docker

Docker从1.13版本之后采用时间线的方式作为版本号,分为社区版CE和企业版EE。社区版是免费提供给个人开发者和小型团体使用的,企业版会提供额外的收费服务,比如经过官方测试认证过的基础设施、容器、插件等。社区版按照stable和edge两种方式发布,每个季度更新stable版本,如17.06,17.09;每个月份更新edge版本,如17.09,17.10。一、安装docker...

2019-03-19 14:09:55 87

原创 Java 多线程 并发编程

1、操作系统有两个容易混淆的概念,进程和线程。进程:一个计算机程序的运行实例,包含了需要执行的指令;有自己的独立地址空间,包含程序内容和数据;不同进程的地址空间是互相隔离的;进程拥有各种资源和状态信息,包括打开的文件、子进程和信号处理。线程:表示程序的执行流程,是CPU调度执行的基本单位;线程有自己的程序计数器、寄存器、堆栈和帧。同一进程中的线程共用相同的地址空间,同时共享进进程锁拥有的内...

2019-03-18 20:14:45 122

空空如也

空空如也

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

TA关注的人

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