自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 ThreadLocal深入调研

目录1.什么是ThreadLocal?2.基本使用2.1.常用方法2.2.ThreadLocal类与Synchronized关键字的区别3.ThreadLocal的内部结构4.ThreadLocalMap中hash冲突的解决1.什么是ThreadLocal?提供线程内部的的局部变量;不同的线程之间不会干扰,也就是线程隔离;在该线程的生命周期中起作用,线程结束,ThreadLocal也随着消亡;总结:线程并发:在多线程并发的场景 传递数据:ThreadLoca

2021-07-16 11:13:37 114

原创 Dubbo从入门到放弃(二)------直连,注册中心

目录1.序章2.引入dubbo和zookeep依赖2.1.普通maven项目依赖引用2.2.springboot项目依赖引用3.配置provider和consumer3.1.provider项目配置3.1.1.application.yml配置3.1.2.接口实现类3.2.consumer项目配置3.2.1.直连方式的配置3.2.2.注册中心方式的配置1.序章接着上一章内容,搭建好maven多模块项目之后,开始dubbo框架的入门代码先贴一张大图

2021-06-29 15:39:48 259

原创 Vue前端之路(四)---Vue Router

目录1.Vue Router概述2.安装和引用3.基础路由使用3.1.一级路由3.2.动态路由传参(基础写法)3.3.重定向路由和404路由3.4.嵌套路由3.5.声明式导航和编程式导航4.命名路由和命名视图4.1.命名路由4.2.命名视图5.动态路由传参(改进写法)6.导航守卫6.1.全局前置守卫6.2.全局后置钩子6.3.路由独享的守卫7.路由元信息1.Vue Router概述Vue Router是vue官方的路由管..

2021-06-23 15:55:32 206

原创 撩小姐姐的小程序(三)----动态画出爱心和文字

1.准备工作老规矩,写之前再吆喝一嗓子:需要撩妹子的,表白女朋友或者老婆的,走过路过不要错过呀IDE使用Vscode工具2.开始学习2.1.建立目录结构新建一个文件夹mygirl2,在mygirl2文件夹中分别新建2个文件夹:css,js以及一个index.html文件如下图所示:2.2.编写css样式在css文件夹中新建default.css样式文件,内容如下:body{margin:0;padding:0;background:#ffe;font-size:12

2021-06-08 10:25:03 2119 7

原创 撩小姐姐的小程序(二)----旋转3D八音盒

1.准备工作写之前先吆喝一嗓子:需要撩妹子的,表白女朋友或者老婆的,走过路过不要错过呀IDE使用Vscode工具2.开始学习2.1.建立目录结构新建一个文件夹mygirl,在mygirl文件夹中分别新建3个文件夹:css,images,video以及一个index.html文件如下图所示:2.2.编写css样式在css文件夹中新建program.css样式文件,内容如下:* { margin: 0px; padding: 0px;}html {

2021-06-08 10:05:30 233

转载 解决xshell6或者xftp6强制更新版本,但又无法下载文件的问题

今天又遇到下载安装了Xshell 6 提示软件必须更新最新版否则不让使用!但是下载更新又提示下载文件失败?这是为啥呢主要原因:今年NetSarang官网针对免费版和评估版,仅提供软件的最新版和上一个版本的官网下载!其他版本均无法从官网下载!商业版不影响均可下载!...

2021-05-28 15:15:56 3314 6

原创 Vue前端之路(三)---Vuex的入门

1.Vuex概述是实现组件全局状态数据管理的一种机制,可以方便的实现组件之间数据的共享好处管理共享的数据,易于开发和后期维护 共享高效率,能够提高开发效率 存储在vuex中的数据都是响应式的,能够实时保持数据与页面的同步2.组件之间共享数据的方式Vue.js为最常用的两个指令v-bind和v-on提供了缩写方式。v-bind指令可以缩写为一个冒号。v-on指令可以缩写为@符号父组件向子组件传值:v-bind属性绑定子组件向父组件传值:v-on 事件绑定2.

2021-05-25 17:43:57 205 3

原创 Java集合基础知识(HashMap,ConcurrentHashMap)

1..HashMap底层原理(JDK1.7)底层:哈希表(数组+单向链表),数组类型Entry[]Entry对象包含了4个元素hashcode,key,value,下一个节点的地址构造器默认构造器,初始化数组长度赋值16,负载因子赋值0.75(扩容阈值threshold是16*0.75=12)带参构造器,初始化数组长度是2的指数倍(例如,传递24,实际上是32),负载因子是传递的值threshold,扩容阈值是2的指数倍*thresholdput方法(头插法)小知识点

2021-05-10 15:34:57 89

原创 Java集合基础知识(List,Set)

1.数组和集合数组数组和集合都是对多个数据进行内存存储操作,不是持久化存储,简称容器。数组的特点一旦指定长度,就不可以更改 申明了同一类型数据就只能存放该类型的数据数组的缺点数组长度确定了就不可更改 删除,增加元素,都效率低下 数组中实际元素的数量没有提供对应的方法或者属性来获取 数组存储:有序,可重复,对无序,不可重复的数组不能满足要求针对上诉缺点,就引入了新的存储数据结构-----集合不同的集合数据结构不一样,集合不一样,特点也不一样集合集合分两类

2021-04-29 11:03:10 153

原创 布隆过滤器

1.布隆过滤器1.1.简介本质是一种数据结构,本质是一个很长的二进制向量和一系列随机映射函数,可以简单理解成一个二进制数组。二进制的特点:不是0就是1。充分利用了数组的快速查询功能主要用于判断一个元素是否在一个集合中,0代表不存在,1代表存在,有一点的误判率1.2.场景(解决大规模数据下不需要精确过滤的场景)检查垃圾邮件地址 爬虫URL地址去重 redis缓存穿透问题(需要预先把需要查询的过滤条件放入布隆过滤器,先查布隆过滤器,如果没有则返回没有,如果有,查redis缓存,缓存没有,

2021-04-25 13:39:41 66

原创 linux下安装Redis最新版本,搭建多哨兵,搭建分布式Cluster集群,springboot2.x集成和封装

目录1.下载并解压Redis linux版本2.安装C++ 环境3.安装redis1.下载并解压Redis linux版本在redis官网下载最新的版本,我这里是6.0.6版本,http://download.redis.io/releases/redis-6.0.6.tar.gz,一般上传到/opt目录下解压redis-6.0.6.tar.gz:tar -zxvfredis-6.0.6.tar.gz2.安装C++ 环境#安装gcc套装(如果是新系统gcc通常安装不.

2021-04-20 13:48:31 204

原创 Redis从通俗到易懂(下)

目录1.Redis哨兵模式1.1.单哨兵模型1.2.多哨兵模型2.Redis缓存穿透和雪崩2.1.缓存穿透(查不到)2.2.缓存击穿(一个key,访问量太大,缓存过期的空档)2.3.缓存雪崩1.Redis哨兵模式概述当主服务器宕机后,需要手动把一台服务器切换成主服务器,这需要人工干预,费时费力。造成一段时间内服务不可用,Redis2.8开始提供了Sentinel(哨兵)架构来解决这个问题。也就是上一章层层链路的自动版,如果故障了根据投票数将从库转换成主库哨

2021-04-19 16:43:26 91 2

原创 Redis从通俗到易懂(中)

1.事务Redis事务本质:一组命令集合,一个事务中所有命令都会被序列化,在事务执行过程中,会被顺序执行一次性 顺序性 排他性Redis单条命令是保证原子性,但是Redis的事务不保证原子性的所有的命令在事务中并不是直接执行,只有发起执行命令的时候,才会执行redis事务:开启事务(multi) 命令入队(......) 执行事务(exec)放弃事务(discard)编译型异常(命令有错误),事务中所有命令都不会执行运行时异常(1/0),如

2021-04-19 14:43:24 83 1

原创 Redis从通俗到易懂(上)

1.先聊Nosql概述为什么要用Nosql,不用mysql呢?1.1.单机mysql的时代90年代,一个基本的网站访问量一般不会太大,单个数据库完全足够,那个时候基本都是静态网页,服务端无压力。大数据时代的当下,网站的瓶颈是什么?数据量太大,一个msql放不下 数据量太大,数据库索引(B+ Tree),一个服务器内存也放不下 访问量读写混合,一个服务器也承受不了1.2.Memcached(缓存)+Mysql+垂直拆分(读写分离+缓存)网站80%的情况都是读,每次都去查询数据.

2021-04-16 14:52:56 78

原创 maven本地仓库--各种好玩的配置

目录前提1.自定义配置本地仓库目录2.设置maven依赖的jdk版本3.使用指定的阿里云maven中央仓库4.配置私有仓库(假如所有的maven项目都使用私服,例如nexus3)5.使用本地仓库的jar包,禁止从远端(有可能是外网的中央仓库,有可能是私服nexus3)下载6.将本地jar包导入本地仓库前提下载并解压maven客户端apache-maven-3.6.3-bin.zip1.自定义配置本地仓库目录打开apache-maven-3.6.3\conf\s

2021-04-12 17:45:57 446

原创 大白话梳理JVM基础知识

1.JVM闲聊jdk很大,不做开发编译环境的话,jre就够了jre很小,包含了jvm环境,jvm有很多,常用的是Java HotSpotJVM在整个计算机架构的地位,还是属于很上层的2.JVM体系结构整个都是JVM内容,从大的方向上划分如下:类加载器子系统 运行时数据区(包括了方法区,堆,java栈,本地方法栈,程序计数器) 执行引擎(解释器,垃圾回收器) 本地Native接口(JNI)和本地库(library)所有的垃圾回收都在方法区和堆区上了画了个草图:

2021-04-09 14:39:03 86

原创 kubernetes集群核心技术----配置管理Secret和ConfigMap(八)

目录1.什么是Secret?2.创建secret加密数据3.Secret以变量的形式挂载到Pod容器中4.Secret以Volume的形式挂载到pod容器中5.什么是ConfigMap?6.创建ConfigMap文件7.ConfigMap以Volume的形式挂载到pod容器中8.ConfigMap以变量的形式挂载到Pod容器中1.什么是Secret?将加密数据存在etcd里面,让Pod容器以挂载Volume的方式进行访问场景:凭证(一般是base64编码(echo

2021-04-07 14:32:37 106

原创 Java多线程进阶知识梳理(下)

1.线程池(重点)3大方法,7大参数,4大策略池化技术的本质:占用系统资源,优化资源的使用线程池,连接池,内存池,常量池创建,销毁,十分的浪费资源线程池的好处:降低资源的消耗搞高响应的速度三大方法://Executors 线程池的工具类,阿里巴巴开发手册禁止使用//可以伸缩的线程池,最大21亿ExecutorService newCachedThreadPool = Executors.newCachedThreadPool();//指定线程数的线程池Execu

2021-04-06 15:00:17 134 2

原创 Java多线程进阶知识梳理(上)

1.什么是JUC并发编程全称:java.util.conconcurrent2.线程和进程进程:一个程序,一个进程往往包含多个线程,至少包含一个Java默认有几个线程?2个,main,GC线程:Thread,Runnable,CallableJava真的能开启线程吗?开不了,start()方法底层直接调用的是C++(native方法)并发和并行并发:多个线程操作同一个资源。一核CPU,多线程快速交替执行并行(多个人一起行走)多核CPU,多线程可以同时执行;线程.

2021-03-31 16:10:32 215

原创 kubernetes集群核心技术---Controller(StatefulSet,DaemonSet,Job和Cronjob)(七)

1.无状态和有状态无状态:认为pod都是一样的 没有顺序的要求 不用考虑在哪个node上运行 随意进行伸缩和扩展有状态:上面的因素都需要考虑到 让每个pod都是独立的,保持pod的启动顺序和唯一性(唯一的网络标识符,持久存储,有序,比如mysql主从,先主后从)2.部署有状态应用(SatefulSet)无头service:ClusterIP:none1)satefulSet:部署有状态的应用,需要一个无头的service#部署kubectl apply -f

2021-03-26 17:16:36 143

原创 kubernetes集群核心技术----service和ingress(六)

目录1.什么是service2.pod和service关系3.常用的service类型1.什么是service1) 定义一组pod的访问规则2) 防止pod失联(服务发现),pod的重新创建,滚动升级等操作时,pod的ip地址会发生改变,因此,每一个pod的ip发生变化的时候,都会注册到service中,进行服务发现3) 定义一组pod访问策略(负载均衡)2.pod和service关系根据label和selector标签建立关联通过service实现pod

2021-03-26 16:21:31 565

原创 kubernetes集群核心技术---Controller(Deployment)(五)

目录1.什么是controller2.pod和controller关系3.deployment控制器应用场景4.使用deployment部署应用(yaml)4.1.导出deployment部署yaml文件4.2.运行deployment部署文件4.3.导出deployment发布yaml文件,对外发布该服务,暴露ip和端口5.应用升级回滚和弹性伸缩1.什么是controller在集群上管理和运行容器的对象 确保预期的pod副本数量,确保所有的node运行同一个pod

2021-03-26 14:22:18 217 2

原创 kubernetes集群核心技术----pod(四)

目录1.基本概念2.pod和docker3.pod实现机制4.pod镜像拉取策略(imagePullPolicy)5.pod资源限制6.pod重启策略(restartPolicy)7.pod状态8.pod健康检查9.pod调度,影响调度的4大因素9.1.资源限制和节点选择器9.2.节点亲和性9.3.污点和污点容忍1.基本概念pod是k8s系统中可以创建和管理的最小单元 pod包含一个或者多个容器(一组容器的集合) pod容器共享网络命名空间,每一个

2021-03-25 17:46:34 142

原创 kubernetes集群---yaml文件(三)

1.概述 yaml文件也叫资源清单文件,资源编排文件,通过 kubectl 命令直接使用资源清单文件就可以实现对大量的资源对象进行编排部署了。2.语法格式使用空格做为缩进 缩进的空格数目不重要,只要相同层级的元素左侧对齐即可 低版本缩进时不允许使用 Tab 键,只允许使用空格 使用#标识注释,从这个字符一直到行尾,都会被解释器忽略3.yaml文件组成部分最基本的两大组成部分:控制器和被控制对象控制器的定义内容,如下: 2.被控制的对象,如下:4...

2021-03-25 15:54:53 144

原创 Java多线程基础知识梳理

线程是程序中执行的线程,Java虚拟机允许应用程序同时执行多个执行线程每个线程都有优先权,具有较高优先级的线程优先于优先级较低的线程执行一.线程创建1.继承Thread类,重写run方法,编写线程执行体,创建线程对象,调用start()方法启动线程。(由于类单一继承,不建议使用)public class TestDemo extends Thread{ @Override public void run() { System.out.println(Thread.current

2021-03-24 16:00:57 107

原创 二进制安装kubernetes集群(二)

目录1.安装要求1.1.硬件要求1.2.软件要求1.3安装前的准备1.4.整体搭建规划1.4.1.证书规划1.4.2.各个组件规划2.docker安装2.1.下载解压2.2.配置docker.service文件(systemd管理)2.3.配置镜像加速器3.etcd集群安装3.1.安装生成证书工具cfssl(在master节点上)3.2.生成etcd证书(在master节点上)3.2.1.创建证书的工作目录3.2.2.生成ca根证书3.2.

2021-03-22 16:57:23 415

原创 kubeadm搭建Kubernetes集群(新版本)(一)

目录1.安装前的准备2.安装流程2.1.环境准备2.2.docker安装2.3.安装kubelet、kubeadm、kubectl2.4.下载所需的镜像(master)2.5.初始化Kubernetes Master2.6.部署扁平化CNI网络插件2.7.加入Kubernetes Node节点3.常见命令1.安装前的准备1.准备3台,2G或更大内存,2核或以上CPU,30G以上硬盘 物理机或云主机或虚拟机2.系统centos 7.x,内核版本3.1以上的.

2021-03-05 14:04:21 278 1

原创 Vue前端之路(二)---组件库element

序言网上各式各样的组件库,眼花缭乱,这里选择了饿了吗推出的element,网站地址:https://element.eleme.cn/#/zh-CN1.element集成1.1.npm安装element打开vscode和项目,在终端下执行安装命令,命令如下:npm i element-ui -S1.2.完整引入element在 main.js 中写入以下内容import Vue from 'vue';import ElementUI from 'element-ui

2021-02-24 10:47:24 693

原创 Vue前端之路(一)---入坑前的准备

目录1.序言2.准备工作2.1.安装运行环境2.1.1.nodejs安装(必做)2.1.2.npm淘宝源配置(选做)2.1.3.vue的安装(必做)2.2.vue-cli3脚手快速架构建vue项目2.3.开发环境(IDE)的安装前端常用插件 (ps: 必备 > 推荐 > 了解)1.序言 最近由于工作需要加上没有前端工程师,本着兴趣广泛,开始了小白踏上前端vue入坑之旅,自从出现前后端分离的流行趋势之后,很久不再写js+css了,都说vue...

2021-02-23 17:03:15 2459

原创 Java中SnakeYAML解析yaml格式文件

目录序言1.引入SnakeYAML库2.读YML文件3.写YML文件序言 Yml是一种“是一个可读性高并且容易被人类阅读,容易和脚本语言交互,用来表达资料序列的编程语言。”类似于XML但比XML更简洁在JAVA中也有相关的类库可以进行解析YML举个例子,springboot下的application.yml文件,内容如下:spring: datasource: driver-class-name: com.xxx.jdbc.Driver...

2021-02-22 14:25:21 495

原创 撩小姐姐的小程序(一)----python GUI编程Tkinter

目录1.准备工作2.开始学习2.1 构建窗体2.2 在窗体中增加组件元素和布局2.3 针对按钮增加触发事假函数3.编译打包成exe可执行文件3.1 需要先安装pyinstaller3.2 执行打包命令3.3 生成的exe文件位置4.截图1.准备工作1前提需要安装python开发环境IDE使用pycharm64工具,打开后,新建一个project,在该工程下建立一个tkinter.py文件2.开始学习2.1 构建窗体# 导入模块,并去别名im

2021-02-20 14:44:34 394 1

原创 搭建CAS协议的SSO单点登录系统

概念:单点登录( Single Sign-On , 简称 SSO)是目前较为流行的服务于企业业务整合的解决方案之一,在多个应用系统中,用户只需要登录一次,就可以访问所有相互信任的应用系统。主要包括两部分:CAS Server和CAS Client如何搭建CAS Server服务端?,如下所示:1.windows系统下,修改hosts 文件的方法添加域名,建立自定义域名和IP之前映射关系。 具体文件位置:C:\Windows\System32\drivers\etc\hos...

2020-08-31 13:53:53 781

原创 Springboot 应用中过滤器修改response的header和body内容的问题

springboot添加过滤器,继承Filter接口,实现doFilter方法方法一,实现类增加注解@WebFilter,注解参数filterName表示过滤器名称,urlPatterns表示要过滤的url路径,在启动类增加注解@ServletComponentScan,表示能扫描到该类。当有多个过滤器时,通过注解@Order,注解参数大小表示过滤器执行的县厚顺序,越小越先执行@We...

2019-12-13 13:47:01 6094

原创 搭建kafka安全认证SASL/PLAIN以及和springBoot整合

1.kafka拓扑图kafka是依赖zookeeper集群的,扑图如下,分三层:1.Producers:消息生产者,push消息给Brokers.发送时根据不同topic选择不同分区(在Broker上)。2.Brokers:注册在zookeeper节点上。3.Consumers:消息消费者,从brokers上根据订阅的topic选择不同分区,poll数据,执行消费。...

2019-05-30 14:14:58 1456

原创 分布式websocket实时通讯的session共享问题

Bean@Autowired@[email protected](collectionName) // 需要监听的集合名// 过滤需要监听的操作类型,可以根据需求指定过滤条件// 不设置时,文档更新时,只会发送变更字段的信息,设置UPDATE_LOOKUP会返回文档的全部信息.build();

2024-05-15 11:14:26 455

原创 深入docker-swarm overlay网络模型

overlay网络也被称为重叠网络或覆盖网络,是一种基于underlay网络之上的逻辑网络,既在物理网络的基础之上,通过节点间的单播隧道机制将主机两两相连形成的虚拟的,独立的网络。Docker swarm集群中的overlay网络主要是通过iptables,ipvs,vxlan等技术实现的,基于本身通信需求的网络模型。

2024-04-22 15:58:24 813 2

原创 Docker Swarm集群的深度总结

docker三剑客之一,多节点docker swarm集群使用

2023-12-20 15:00:42 1127

原创 linux脚本笔记

新建dctl,不用带文件后缀# 显示帮助提示# 处理参数函数case $1 instart)# 处理启动逻辑;;stop)# 处理停止逻辑;;restart)# 处理重启逻辑;;build)# 处理构建逻辑;;ps)# 处理构建逻辑;;*)# 未知参数show_help;;

2023-09-26 15:26:00 168

原创 docker-compose方式部署高可用多节点keepalived+nginx集群

keepalived+nginx高负载均衡集群是常见的组合,是一个标准负载均衡方式。在docker环境下可以很方便的构建统一镜像,运行服务,实现keepalived多节点的高可用,nginx的负载均衡和反向代理功能。

2023-08-21 15:14:23 975

原创 Websocket备忘录

springboot对websocket的集成,上层逻辑封装,采用了策略模式,spring事件监听,前端vite的反向代理

2023-07-19 17:48:45 865

websocket协议基础知识介绍,通信原理以及实战代码

websocket协议使用场景,优点和基础知识介绍 websocket一次握手,TCP三次握手以及数据帧传输 websocket对象,属性,方法,事件 websocket在前后端的实战应用级代码示例

2023-07-12

VOIP领域,SIP协议入门,Freeswitch基础

SIP名称解释,SIP注册流程分析,SIP呼叫流程分析,Freeswitch中SIP模块sofia-sip和模块常用命令以及相关资料推荐

2023-06-07

空空如也

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

TA关注的人

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