自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

洛阳城下逢公子

长安城外遇卿卿

  • 博客(158)
  • 资源 (1)
  • 收藏
  • 关注

原创 HTTPS原理

HTTP请求都是明文传输的,所谓的明文指的是没有经过加密的信息,如果HTTP请求被黑客拦截,并且里面含有银行卡密码等敏感数据的话,会非常危险。为了解决这个问题,Netscape 公司制定了HTTPS协议,HTTPS可以将数据加密传输,也就是传输的是密文,即便黑客在传输过程中拦截到数据也无法破译,这就保证了网络通信的安全。一.密码学基础明文明文指的是未被加密过的原始数据密文明文被某种加密算法加密之后,会变成密文,从而确保原始数据的安全。密文也可以被解密,得到原始的明文。密钥密钥是一种参数,它是在

2021-07-21 10:40:40 5499 20

原创 实用的一些小工具

https://web.baimiaoapp.com/https://msdn.itellyou.cn/https://www.sojson.com/jsondiff.html

2023-05-30 11:10:32 130 1

原创 音视频行业业务名词

文章目录1. 视频上传2. stream视频流2.1 流媒体的组成部分2.2 科普2.3 视频播放2.4 流式下载编辑3. H264 H2654. 视频拆条5.视频抽帧6. 视频帧率7. 视频分发8. 视频缩略图9. ffmpeg10. 视频加工11. 视频格式12. 视频协议13. 视频流 以及 编解码 / 视频转码14. 常见的帧名词(重点)14.1 帧率(FPS)14.2 分辨率(Resolution)14.3 码率(BPS)15. 参考链接在K12教育行业呆了1年左右的时间,期间经历了音视频流相

2021-07-23 10:26:42 567

转载 Java内存区域

Java虚拟机在执行Java程序的过程中会把它管理的内存分为若干个不同的数据区域。这些区域有着各自的用途,一级创建和销毁的时间,有的区域随着虚拟机进程的启动而存在,有些区域则依赖用户线程的启动和结束而建立和销毁。根据《Java虚拟机规范》中规定,jvm所管理的内存大致包括以下几个运行时数据区域,如图所示:一.线程私有的1.程序计数器占据一块较小的内存空间,可以看做当前线程所执行的字节码的行号指示器。在虚拟机概念模型里,字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令,分支

2021-07-20 11:02:14 151 2

原创 Java内存模型与线程

一、物理机中的效率与一致性1. 高速缓存(Cache)的引入“让计算机并发执行若干个运算任务”与“更充分地利用计算机处理器的性能”之间的因果关系,看起来利索当然,实际上他们之间的关系并没有想象中那么简单,其中一个重要的复杂性的来源是绝大多数的运算任务都不可能只靠处理器“计算”就能完成。处理器只要要与内存交互,如读取运算数据、存储计算结果等,这个IO操作就是很...

2021-04-04 18:00:46 53

原创 Docker(六)DockerCompose

前言:构建一个wordpress1.创建MySQL的container1docker run -d --name mysql -v mysql-data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root -e MYSQL_DATABASE=wordpress mysql声明了我的root用户密码为root,同时创建了一个w...

2021-02-15 19:05:39 64

原创 Docker(五)-Docker的文件存储和数据共享

问题当我创建了一个容器,在这个容器中我有个mysql服务,在这个mysql里面我有各种各样的数据。但是有一天我一不小心删除了这个容器,那么这个容器中的相关服务以及数据也都没有了。这个时候就出问题了。我们需要一种数据持久化机制来实现我们容器中数据的存储。默认情况下docker数据是写在了container里面的,当我们将容器删除掉之后是找不到这个容器里...

2021-02-12 03:59:13 405

原创 Docker(四)Docker的网络空间

在一台linux机器上,不管创建多少个docker容器,他们都有属于自己的ip地址,并且可以相互ping通访问。为什么会ping通?其中的原理是什么?预备工作创建一个基于busybox的容器1sudo docker run -d --name test1 busybox /bin/sh -c "while true; do sleep 3600; d...

2021-01-17 01:43:20 325

原创 Java中的hashcode和equals

关于hashcode1、hashcode的存在主要是用于查找的快捷性,如Hashtable、HashMap等,hashcode是用来在散列存储结构中确定对象的存储地址的。2、如果两个对象相同,就是适用于equals(java.lang.Object)方法,那么这两个对象的hashcode方法一定要相同。3、如果对象的equals方法被重写,那么对象的has...

2020-12-24 00:18:34 124

原创 mongo分片集

分片集的架构说明名称解释作用Shard分片集存储实例用于存储实际的数据块,实际生产环境中一个shard server角色可由几台机器组个一个replica set承担,防止单机节点故障config server分片集配置器存储了整个ClusterMetadata,其中包括 chunk信息mongos分片集路由器客户...

2020-12-18 16:21:51 120

原创 mongo服务

前言本文以MongoDB 4.0版本为准,介绍服务器端、客户端的关键技术,以及使用中的注意事项。服务器(Server)部署方式1.单机部署方式适用场景:开发、测试2.副本集部署方式适用场景:数据的高可用性, 保证数据的安全性,可恢复性特性:N个节点的集群任何节点都可以作为主节点所有写入操作都在主节点上自动故障转移自动恢复原理:主节...

2020-12-18 15:51:14 162

原创 Mysql(二)Mysql的数据目录

数据库和文件系统的关系像InnoDB、MyISAM这样的存储引擎都是把数据存储在文件系统中上。当我们想读取数据的时候,这些存储引擎会从文件系统中把数据读出来返回给我们;当我们想写入数据的时候,这些存储引擎会把这些数据又写回操作系统。Mysql数据目录Mysql服务器程序在启动时,会到文件系统的某个目录下加载一些数据,之后在运行过程中产生的数据也会存储到这...

2020-12-07 23:33:43 128

原创 Docker(三)Image概述

什么是Image文件和meta data的集合(root filesystem)分层的,并且每一层都可以添加改变删除文件,成为一个新的image不同的image可以共享相同的layerImage本身是read-only的Image的获取通过Dockerfile构建从docker Registry获取创建一个helloword-Imag...

2020-12-07 15:11:14 73

原创 Docker(二)Docker架构及底层技术

Docker PlatformDocker提供了一个开发、打包、运行app的平台它将app和底层infrastructure隔离开来Docker EngineDocker Engine 是一个 client-server 应用,它主要有以下几个部分构成:后台进程(dockerd)它是一个长期运行的程序,称之为 daemon process。RE...

2020-12-07 14:44:55 90

原创 Mysql(一)InnoDB存储引擎

InnoDB页简介InnoDB是一个将表中的数据存储到磁盘上的存储引擎。它将数据划分为若干个页,以页作为磁盘和内存之间交互的基本单位。InnoDB中页的大小一般为16KB。也就是说在一般情况下,一次至少从磁盘中读取16KB的内容到内存中,一次至少把内存中的16KB的内容刷新到磁盘中。系统变量innodb_page_size表明了InnoDB存储引擎中的页大...

2020-12-06 21:25:56 95

原创 Docker(一)构建Docker

一、安装虚拟机安装vagrant安装vagrant根据自己的电脑操作系统选择最新版本进行安装即可安装virtualbox安装virtualboxvagrant用于构建虚拟机,virtualbox相当于是一个虚拟机管理工具相关命令依次执行如下命令:123cd localmkdir centos7vagrant init centos/7即可在当前...

2020-12-02 17:53:41 465

原创 redis源码从哪里读起

Redis是用C语言实现的,首先,你当然应该从main函数开始读起。但我们在读的时候应该抓住一条主线,也就是当我们向Redis输入一条命令的时候,代码是如何一步步执行的。这样我们就可以先从外部观察,尝试执行一些命令,在了解了这些命令执行的外部表现之后,再钻进去看对应的源码是如何实现的。要想读懂这些代码,首先我们需要理解Redis的事件机制。而且,一旦理解了Re...

2020-11-26 17:58:38 222

原创 redis内部数据结构(7)-intset

Redis里面使用intset是为了实现集合(set)这种对外的数据结构。set结构类似于数学上的集合的概念,它包含的元素无序,且不能重复。Redis里的set结构还实现了基础的集合并、交、差的操作。与Redis对外暴露的其它数据结构类似,set的底层实现,随着元素类型是否是整型以及添加的元素的数目多少,而有所变化。概括来讲,当set中添加的元素都是整型且元素...

2020-11-26 17:43:03 134

原创 redis内部数据结构(6)-skiplist

Redis里面使用skiplist是为了实现`sorted set`这种对外的数据结构。sorted set提供的操作非常丰富,可以满足非常多的应用场景。我们将大体分成三个部分进行介绍:介绍经典的skiplist数据结构,并进行简单的算法分析。这一部分的介绍,与Redis没有直接关系。我会尝试尽量使用通俗易懂的语言进行描述。讨论Redis里的skipl...

2020-11-26 17:01:25 98

原创 redis内部数据结构(5)-quicklist

Redis对外暴露的list数据类型,它底层实现所依赖的内部数据结构就是`quicklist`。我们在讨论中还会涉及到两个Redis配置(在redis.conf中的ADVANCED CONFIG部分):12list-max-ziplist-size -2list-compress-depth 0注:本文讨论的quicklist实现基于Redis源码的3...

2020-11-26 16:32:40 104

原创 redis内部数据结构(4)-ziplist

在本文中,我们首先介绍一个新的Redis内部数据结构——ziplist,然后在文章后半部分我们会讨论一下在robj, dict和ziplist的基础上,Redis对外暴露的hash结构是怎样构建起来的。我们在讨论中还会涉及到两个Redis配置(在redis.conf中的ADVANCED CONFIG部分):12hash-max-ziplist-entrie...

2020-11-26 16:11:58 90

原创 redis内部数据结构(3)--robj

从Redis的使用者的角度来看,一个Redis节点包含多个database(非cluster模式下默认是16个,cluster模式下只能是1个),而一个database维护了从key space到object space的映射关系。这个映射关系的key是string类型,而value可以是多种数据类型,比如:string, list, hash等。我们可以看到,...

2020-11-26 15:47:05 63

原创 redis内部数据结构(2)--sds

不管在哪门编程语言当中,字符串都几乎是使用最多的数据结构。sds正是在Redis中被广泛使用的字符串结构,它的全称是Simple Dynamic String。与其它语言环境中出现的字符串相比,它具有如下显著的特点:可动态扩展内存。sds表示的字符串其内容可以修改,也可以追加。在很多语言中字符串会分为mutable和immutable两种,显然sds属于m...

2020-11-26 14:56:41 198

原创 redis内部数据结构(1)--dist

当我们提到Redis的“数据结构”的时候,可能是在两个不同的层面来讨论它第一个层面,是从使用者的角度,分为了5个数据结构StringListHashSetSorted set第一个层面也是Redis暴露给外部提供的接口第二个层面,是从内部实现的角度,属于更底层的实现。比如:dictsdsziplistquicklistski...

2020-11-26 14:22:02 243

原创 Spring初探

一、Spring发展的几个大致阶段SpringCore最初应用的是工厂模式(DI)和代理模式(AOP),用来解耦应用组件;SpringMVC用来解决web应用的开发;又发现每次开发都需要写很多配置样板代码,为了更方便地整合引入了SpringBoot一些列stater;SringCloud的意义在于推动了微服务架构的落地。二、IOC(Inversion of...

2020-11-22 01:22:01 94

原创 redis面试题

一、redis和memcache的比较1. memcache代码层面类似hash支持简单数据类型不支持数据持久化存储不支持主从不支持分片2 redis数据类型丰富支持数据磁盘持久化存储支持主从在3.0之后支持数据分片二、redis相关1. 为什么redis能这么快?qps:10W+(qps:每秒内查询的次数)完全基于内存,绝大部分请求是纯粹的内存操作,...

2020-11-20 01:22:01 83

原创 计算机网络

一.OSI七层协议1.物理层 机器A往机器B发送比特流,机器B要保证能收到比特流,这就是物理层要做的事情。物理层主要定义了网络设备的标准,如:网线的类型、光纤的接口类型。网卡就是工作在这一层里面的,这一层主要负责数模、模数的转换(比特流转化为电流,电流再转化为比特流)2.数据链路层 在传输比特流的过程中,会产生错传、数据传输不完整的可能,因此数据链路...

2020-11-14 22:30:17 171

原创 Flink深入了解

一、Flink运行架构1.Flink运行时的组件Flink 运行时架构主要包括四个不同的组件,它们会在运行流处理应用程序时协同工作: 作业管理器(JobManager)、资源管理器(ResourceManager)、任务管理器(TaskManager), 以及分发器(Dispatcher)。因为 Flink 是用 Java 和 Scala 实现的,所以所有组件...

2020-11-03 16:06:51 114

原创 Flink初识

一.引入Flink的目的低延迟高吞吐结果的准确性和良好的容错性二、例子(实现wordCount)12345678910111213141516171819202122232425262728293031package com.xesonline.demoimport org.apache.flink.api.scala.{DataSet, Exe...

2020-11-02 16:58:40 46

原创 垃圾回收

一.如何知道对象是一个垃圾?没有任何引用指向的对象就是垃圾。可达性分析(非GCRoot引用的对象)通过判断对象的引用链是否可达来决定对象是否可以被回收通过一系列名为GCRoot的对象为起始点,从这些节点开始向下搜索,搜索所走过的路径就被称为引用链当一个对象从GCRoot没有任何引用链相连,即从GCRoot到这个对象是不可达的,在这个时候就证明了这个对...

2020-10-27 04:00:51 125

原创 计算机内存

存储器的层次结构L0:寄存器(最快、最小、成本最高)L1:高速缓存L2:高速缓存L3:高速缓存L4:主存L5:磁盘L6:远程文件存储多核CPUL1、L2、L3缓存和内存结构和读取逻辑ALU在读取数据的时候会先从L1中取,L1没有读L2,L2没有读L3,L3还没有则直接从主存中去读。L1和L2位于一个CPU核的内部每颗CPU里面有一...

2020-10-27 03:29:33 40

原创 Java的四种引用

Java里面有四种引用类型:强、软、弱、虚一.强引用就是我们普通的引用。作为一个垃圾来说,什么时候才会被回收呢?当一个对象实例没有任何引用指向它的时候,它就是可以被回收的。当对象被回收的时候,会调用对象的finalize方法。最普遍的引用:Object obj = new Object抛出OutOfMemoryError终止程序也不会回收具有强引用的...

2020-10-27 01:22:01 72

原创 自我介绍

输入密码,查看文章。

2020-10-26 19:20:19 41

原创 多线程相关面试题

Java中进程和线程的关系Java对操作系统提供的功能进行封装,包括进程和线程运行一个程序会产生一个进程,进程包含至少一个线程每个进程对应一个JVM实例,多个线程共享JVM里的堆Java采用单线程编程模型,程序会自动创建主线程主线程可以创建子线程,原则上要后于子线程完成执行start和run方法的区别调用start()方法会创建一个新的子线程并启动run...

2020-10-23 13:40:34 54

原创 面试准备

一.基础1.hashmapHashMap是基于哈希表的Map接口的非同步实现。此实现提供所有可选的映射操作,并且允许null键和null值。不保证顺序。1.1 7与8的区别hashmap初始容量都是16,扩容因子是0.75倍.当元素的数量达到了16*0.75=12的时候,会进行扩容。底层:数组+链表。数组中的元素存放的是entry的引用jdk8中会将链表...

2020-10-23 00:45:13 71

原创 线上问题的定位与解决方案

一、问题搜集当学生遇到问题,可以有两种途径进行反馈:1.软件的反馈功能运营老师看到反馈并不会立即反馈到技术支持那里,而是先去了解相关的情况,看是个例还是大规模学生都出现问题,如果是个例会先让学生进行排查,能解决就解决,如果解决不了就会反馈到报警群联系相关技术老师进行排查。2.反馈给老师反馈到授课老师那里的话,老师会在对接群里联系相关的技术支持老师进行排查...

2020-09-24 17:47:09 558

原创 sentinel

一、基础概念服务限流/熔断服务限流目的是为了更好的保护我们的服务,在高并发的情况下,如果客户端请求的数量达到一定极限(后台可以配置阈值),请求的数量超出了设置的阈值,开启自我的保护,直接调用我们的服务降级的方法,不会执行业务逻辑操作,直接走本地falback的方法,返回一个友好的提示服务降级在高并发的情况下, 防止用户一直等待,采用限流/熔断方法,使用服务降...

2020-08-20 16:19:43 69

原创 Gateway详解

一、词汇表路由:是网关基本的模块,分别为id、目标uri、一组谓词+过滤器一起组合而成,如果谓词匹配成功,则路由匹配成功。谓词:匹配Http请求参数过滤器:对下游的服务器之前和之后实现处理。二、过滤器举例1.匹配时间之后12345- id: mayikt uri: http://www.mayikt.com/ ###匹配规则 predica...

2020-08-20 14:37:52 527

原创 Gateway

什么是微服务网关微服务网关是整个微服务API请求的入口,可以实现日志拦截、权限控制、解决跨域问题、限流、熔断、负载均衡、黑名单与白名单拦截、授权等。过滤器与网关的区别过滤器用于拦截单个服务网关拦截整个的微服务Zuul与Gateway有那些区别Zuul网关属于netfix公司开源的产品属于第一代微服务网关Gateway属于SpringCloud自研发的第...

2020-08-18 17:37:29 124

原创 分布式一致性问题

分布式事务一致性框架与分布式系统一致性算法分布式事务一致性框架: 核心就是解决我们在实际系统中产生跨事务导致分布式事务的问题,核心靠的是最终一致性。比如:rocketMq事务消息、rabbitmq补单、lcn、seata等。分布式系统一致性算法: 解决我们系统之间集群之后每隔节点保持数据的一致性。比如:raft、zab、paxos等分布式系统一致性算法应用于系...

2020-08-17 17:53:50 147

一键彻底关闭win10自动更新工具.zip

一键彻底关闭win10自动更新工具.zip

2021-07-21

空空如也

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

TA关注的人

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