自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(40)
  • 资源 (1)
  • 收藏
  • 关注

原创 Nacos的简单使用与配置

一、Nacos注册中心示例图1.引入坐标依赖:org.springframework.cloudspring-cloud-starter-alibaba-nacos-discoveryorg.springframework.cloudspring-cloud-starter-alibaba-nacos-config2.yml配置:server: port: 8081spring: application: name: nacos-provide cloud: na

2020-10-07 23:34:51 465

原创 Nacos介绍

Nacos介绍一、什么是 NacosNacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施。服务(Service)是 Nacos 世界的一等公民。Nacos 支持几乎所有主流类型的“服务”的发现、配置和管理: Kubernetes Service

2020-10-07 23:08:58 271

原创 ES搜索引擎以及IK分词器

什么是搜索?根据一个搜索词,检索出所有包含该词的数据例如:用户在搜索框输入一个词,客户端软件发送一个请求到后台,后台通过sql语句从数据库中找出相关条目(数据库会一条一条的对比),这就是一个最简单搜索原型普通搜索面临的问题1, 当数据量很大时,假如500G, 效率低。从用户角度,从点击搜索按钮到看到搜索结果可能要很长时间,1小时?2小时?用户疯掉2, 当数据量达到1T,一台电脑已经放不下...

2020-05-08 14:51:10 1004

原创 MySQL redo log 与 binlog 的区别

1. 什么是redo log?redo log又称重做日志文件,用于记录事务操作的变化,记录的是数据修改之后的值,不管事务是否提交都会记录下来。在实例和介质失败(media failure)时,redo log文件就能派上用场,如数据库掉电,InnoDB存储引擎会使用redo log恢复到掉电前的时刻,以此来保证数据的完整性。2. 什么是bin logbin log记录了对MySQL数据库执...

2020-05-06 23:20:29 185

原创 远程方法调用(RMI)

1. RMI简介RMI用于不同虚拟机之间的通信,这些虚拟机可以在不同的主机上、也可以在同一个主机上,这里的通信可以理解为一个虚拟机上的对象调用另一个虚拟机上对象的方法。RMI要解决的是:是让客户端对远程方法的调用可以相当于对本地方法的调用而屏蔽其中关于远程通信的内容,即使在远程上,也和在本地上是一样的。2.RMI通信模型:1、客户端调用辅助对象stub上方法2、stub对调用信息(变量、...

2020-05-06 14:58:21 448

原创 CAS乐观锁

什么是悲观锁、乐观锁?synchronized是悲观锁,这种线程一旦得到锁,其他需要锁的线程就挂起的情况就是悲观锁。CAS操作的就是乐观锁,每次不加锁而是假设没有冲突而去完成某项操作,如果因为冲突失败就重试,直到成功为止。1.什么是CASCAS(Compare And Swap)比较并替换,是线程并发运行时用到的一种技术;2.CAS作用乐观锁3.CAS原理CAS(Compare A...

2020-05-05 20:27:40 137

原创 CSRF简述-跨域解决方案CORS

一.CSRF是什么?CSRF(Cross-site request forgery),中文名称:跨站请求伪造,也被称为:one click attack/session riding,缩写为:CSRF/XSRF。二.CSRF可以做什么?你可以这么理解CSRF攻击:攻击者盗用了你的身份,以你的名义发送恶意请求。CSRF能够做的事情包括:以你名义发送邮件,发消息,盗取你的账号,甚至于购买商品,虚...

2020-05-05 19:24:31 525

原创 如何防止form表单的重复提交

一、出现form表单重复提交问题1、点击提交按钮两次。2、点击刷新按钮。3、使用浏览器后退按钮重复之前的操作,导致重复提交表单。4、使用浏览器历史记录重复提交表单。5、浏览器重复的 HTTP 请求。二、防止表单重复提交的方法1、禁掉提交按钮表单提交后使用 Javascript 使提交按钮disable。这种方法防止心急的用户多次点击按钮。但有个问题,如果客户端把 Javascrip...

2020-05-05 14:25:05 1335

原创 Http和Https的区别

一、Http和Https的基本概念Http:超文本传输协议(Http,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。设计Http最初的目的是为了提供一种发布和接收HTML页面的方法。它可以使浏览器更加高效。Http协议是以明文方式发送信息的,如果黑客截取了Web浏览器和服务器之间的传输报文,就可以直接获得其中的信息。Http原理:① 客户端的浏...

2020-05-05 12:12:04 681

原创 REST接口和HTTP幂等性

REST接口REST 用来规范应用如何在 HTTP 层与 API 提供方进行数据交互 。REST 描述了 HTTP 层里客户端和服务器端的数据交互规则;客户端通过向服务器端发送 HTTP(s)请求,接收服务器的响应,完成一次 HTTP 交互。这个交互过程中,REST 架构约定两个重要方面就是 HTTP 请求所采用的方法,以及请求的链接。在请求层面,REST 规范可以简单粗暴抽象成以下两个规则:...

2020-05-05 02:51:54 427

原创 forward和redirect的区别

forward和redirect是什么?是servlet种的两种主要的跳转方式。forward又叫转发,redirect叫做重定向。两者的区别:1.从地址栏显示来说:1)forword是服务器内部的重定向,服务器直接访问目标地址的 url网址,把里面的东西读取出来,但是客户端并不知道,因此用forward的话,客户端浏览器的网址是不会发生变化的。2)redirect是服务器根据逻辑,发送...

2020-05-05 02:25:07 399

原创 session和cookie的的区别

一、cookie:在网站中,http请求是无状态的。也就是说即使第一次和服务器连接后并且登录成功后,第二次请求服务器依然不能知道当前请求是哪个用户。cookie的出现就是为了解决这个问题,第一次登录后服务器返回一些数据(cookie)给浏览器,然后浏览器保存在本地,当该用户发送第二次请求的时候,就会自动的把上次请求存储的cookie数据自动的携带给服务器,服务器通过浏览器携带的数据就能判断当前用...

2020-05-05 02:17:16 108

原创 Java内部类

内部类Java 类中不仅可以定义变量和方法,还可以定义类,这样定义在类内部的类就被称为内部类。根据定义的方式不同,内部类分为静态内部类,成员内部类,局部内部类,匿名内部类四种。静态内部类 public class Out { private static int a; private int b; public static class Inner { public voi...

2020-05-02 23:26:27 133

原创 SQL连接查询和嵌套查询

SQL中的连接可以分为内连接,外连接,以及交叉连接 (即是笛卡尔积)(1)left join(左连接)在两张表进行连接查询时,会返回左表所有的行数据,右表中返回只返回和左表匹配的数据,没有的显示为Null。(2)right join(右连接)在两张表进行连接查询时,会返回右表所有的行数据,左表中返回只返回和右表匹配的数据,没有的显示为Null。(3)full join(全连接)在两张...

2020-04-28 23:19:02 1140

原创 Linux的常用命令

系统信息arch 显示机器的处理器架构uname -m 显示机器的处理器架构uname -r 显示正在使用的内核版本dmidecode -q 显示硬件系统部件 - (SMBIOS / DMI)hdparm -i /dev/hda 罗列一个磁盘的架构特性hdparm -tT /dev/sda 在磁盘上执行测试性读取操作cat /proc/cpuinfo 显示CPU info的信息c...

2020-04-28 23:10:16 220

原创 SpringMVC的主要注解

1、@Controller在SpringMVC 中,控制器Controller 负责处理由DispatcherServlet 分发的请求,它把用户请求的数据经过业务处理层处理之后封装成一个Model ,然后再把该Model 返回给对应的View 进行展示。在SpringMVC 中提供了一个非常简便的定义Controller 的方法,你无需继承特定的类或实现特定的接口,只需使用@Controlle...

2020-04-28 22:55:50 124

原创 SpringMVC的工作流程

一、SpringMVC的工作流程1.用户发起请求到前端控制器(DispatcherServlet),该控制器会过滤出哪些请求可以访问Servlet、哪些不能访问。就是url-pattern的作用,并且会加载springmvc.xml配置文件。2.前端控制器会找到处理器映射器(HandlerMapping),通过HandlerMapping完成url到controller映射的组件,简单来说,...

2020-04-28 22:46:00 130

原创 nginx的反向代理和负载均衡

一、什么是反向代理**反向代理(Reverse Proxy)**方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。简单来说就是真实的服务器不能直接被外部网络访问,所以需要一台代理服务器,而代理服务器能被外部网络访问的同时又跟真实服务器在同一个网...

2020-04-28 00:11:21 167

原创 nginx介绍

一、什么是NginxNginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,第一个公开版本0.1.0发布于2004年10月4日。其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的...

2020-04-27 23:33:52 311

原创 redis的缓存过期策略与内存淘汰机制

redis的缓存过期策略与内存淘汰机制redis的缓存过期策略与内存淘汰机制定时删除: 在设置键过期时间的同时,创建一个定时器,让定时器在过期时间来临时,立即执行对键的删除操作定时删除策略是内存友好的.通过定时器,定时删除策略可以保证过期键会尽可能的被删除,并释放过期键所占用的内存缺点是对CPU时间不友好,在过期键较多的情况下,删除过期键会占用一部分CPU时间,在内存不紧张但CPU时间紧...

2020-04-26 23:56:21 203

原创 redis的持久化方案

redis的持久化方案Redis的所有数据都是保存在内存中,然后不定期的通过异步方式保存到磁盘上(这称为“半持久化模式”);也可以把每一次数据变化都写入到一个append only file(aof)里面(这称为“全持久化模式”)。由于Redis的数据都存放在内存中,如果没有配置持久化,redis重启后数据就全丢失了,于是需要开启redis的持久化功能,将数据保存到磁 盘上,当redis重启后...

2020-04-26 23:30:56 219

原创 布隆过滤器

什么是布隆过滤器布隆过滤器(Bloom Filter)是1970年由布隆提出的。它实际上是一个很长的二进制向量和一系列随机映射函数。布隆过滤器可以用于检索一个元素是否在一个集合中。它的优点是空间效率和查询时间都比一般的算法要好的多,缺点是有一定的误识别率和删除困难。基本概念如果想要判断一个元素是不是在一个集合里,一般想到的是将所有元素保存起来,然后通过比较确定。链表,树等等数据结构都是这种思...

2020-04-26 02:46:12 123

原创 如何用Redis实现分布式锁

1. 为什么要使用分布式锁就是分布式系统要访问共享资源,为了避免并发访问资源带来错误,我们为共享资源添加一把锁,让各个访问互斥,保证并发访问的安全性,这就是使用分布式锁的原因。分布式锁应该具备哪些条件1.在分布式系统环境下,一个方法在同一时间只能被一个机器的一个线程执行2.高可用的获取锁与释放锁3.高性能的获取锁与释放锁4.具备可重入特性(可理解为重新进入,由多于一个任务并发使用,而不...

2020-04-26 01:51:43 151

原创 Redis简介

数据类型Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。String(字符串)string 是 redis 最基本的类型,你可以理解成与 Memcached 一模一样的类型,一个 key 对应一个 value。string 类型是二进制安全的。意思是 redis 的 string 可以包含任...

2020-04-26 01:18:11 318

原创 HashMap的数据结构

HashMap概述HashMap是基于哈希表的Map接口的非同步实现。此实现提供所有可选的映射操作,并允许使用null值和null键。此类不保证映射的顺序,特别是它不保证该顺序恒久不变。HashMap的数据结构在Java编程语言中,最基本的结构就是两种,一个是数组,另外一个是模拟指针(引用),所有的数据结构都可以用这两个基本结构来构造的,HashMap也不例外。HashMap实际上是一个“链...

2020-04-25 00:24:30 1145

原创 分布式事务及解决方案

分布式事务及解决方案要了解分布式事务,我们要先清楚什么是事务。事务就是多个原子操作的组合,他们就像是一条绳上的蚂蚱,要么一起生,要么一起死,在事务中,如果其中一个操作执行失败,那么剩下的操作都不再执行,而之前执行过的操作也需要回滚。至于分布式事务,顾名思义就是包含对分布式系统中不同节点的操作的事务。事务的目的我们使用事务的目的是为了防止一些执行失败的操作对数据造成影响,产生错误数据。比较典型...

2020-04-24 22:41:31 179

原创 数据库事务

一、数据库的锁分类锁分类按锁的粒度划分:表级锁、行级锁、页级锁按锁级别划分:共享锁、排它锁、意向锁按加锁方式划分:自动锁、显示锁按使用方式划分:乐观锁、悲观锁行级锁、表级锁和页级锁**行级锁:**行级锁分为共享锁和排他锁。行级锁是MySQL中锁定粒度最细的锁。InnoDB引擎支持行级锁和表级锁,只有在通过索引条件检索数据的时候,才使用行级锁,否就使用表级锁。行级锁开销大,加锁慢,锁定...

2020-04-23 23:12:19 241

原创 数据库优化

结构优化1、选择合适的数据类型1、数据类型选择数据类型的选择,重点在于“合适”二字,如何确定选择的数据类型是否合适了?1、使用可以存下你的数据的最小的数据类型。(时间类型数据:可以使用varchar类型,可以使用int类型,也可以使用时间戳类型)2、使用简单的数据类型,int要比varchar类型在mysql处理上简单。(int类型存储时间是最好的选择)3、尽可能的使用not nul...

2020-04-22 21:49:46 121

原创 MySQL 索引

什么是索引,如何创建索引,索引的类型1、什么是索引在关系数据库中,索引是一种单独的、物理的对数据库表中一列或多列的值进行排序的一种存储结构,它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。索引的作用相当于图书的目录,可以根据目录中的页码快速找到所需的内容。索引提供指向存储在表的指定列中的数据值的指针,然后根据您指定的排序顺序对这些指针排序。数据库使用索引...

2020-04-21 22:55:36 135

原创 Tomcat8的优化

Tomcat8的优化对于tomcat的优化,主要是从2个方面入手,一是,tomcat自身的配置,另一个是 tomcat所运行的jvm虚拟机的调优。1、禁用AJP连接 在服务状态页面中可以看到,默认状态下会启用AJP服务,并且占用8009端口。什么是AJP呢?AJP(Apache JServer Protocol) AJPv13协议是面向包的。WEB服务器和Servlet容器通过TCP连接来...

2020-04-20 16:50:20 125

原创 Java的类加载器

Java的类加载器什么是类加载当程序主动使用某个类时,如果该类还未被加载到内存中,则JVM会通过加载、连接、初始化3个步骤来对该类进行初始化。如果没有意外,JVM将会连续完成3个步骤,所以有时也把这个3个步骤统称为类加载或类初始化。一、类加载过程(1)加载加载指的是将类的class文件读入到内存,并为之创建一个java.lang.Class对象,也就是说,当程序中使用任何类时,系统都会...

2020-04-18 01:45:02 154

原创 微信小程序登录流程

微信小程序登录流程小程序登录小程序可以通过微信官方提供的登录能力方便地获取微信提供的用户身份标识,快速建立小程序内的用户体系。几种登录流程设计利用OpenId 创建新用户这种方式我的理解大体上就是一种静默登录,获取用户信息之后解密用户信息并通过OpenId直接创建新用户利用Unionid 创建新用户这种方式的特点是可以利用Unionid实现多个小程序、公众号、已有登录体系的数据互通。...

2020-04-16 01:04:35 389

原创 Spring两大特性:IOC和AOP

Spring两大特性:IOC和AOP众所周知,Spring拥有两大特性:IoC和AOP。IoC,英文全称Inversion of Control,意为控制反转。AOP,英文全称Aspect-Oriented Programming,意为面向切面编程。Spring核心容器的主要组件是Bean工厂(BeanFactory),Bean工厂使用控制反转(IoC)模式来降低程序代码之间的耦合度,并提供了...

2020-04-14 22:55:04 1015

原创 垃圾回收

什么是垃圾回收?程序的运行必然需要申请内存资源,无效的对象资源如果不及时处理就会一直占有内存 资源,最终将导致内存溢出,所以对内存资源的管理是非常重要了。1.Java语言的垃圾回收为了让程序员更专注于代码的实现,而不用过多的考虑内存释放的问题,所以,在Java语 言中,有了自动的垃圾回收机制,也就是我们熟悉的GC。 有了垃圾回收机制后,程序员只需要关心内存的申请即可,内存的释放由系统自动...

2020-04-13 00:38:54 148

原创 JVM优化

JVM优化为什么要对jvm做优化?在本地开发环境中我们很少会遇到需要对jvm进行优化的需求,但是到了生产环境,我们 可能将有下面的需求:(1)运行的应用“卡住了”,日志不输出,程序没有反应;(2)服务器的CPU负载突然升高;(3)在多线程应用下,分配线程的数量;我们不仅要让程序能跑起来,而且是可以 跑的更快!可以分析解决在生产环境中所遇到的各种“棘手”的问题。2.在jvm中有很多...

2020-04-12 22:34:30 95

原创 媒资管理方案

一、媒资管理点播技术1、播放器通过 http协议从http服务器上下载视频文件进行播放; 问题:必须等到视频下载完才可以播放,不支持快进到某个时间点进行播放2、播放器通过rtmp协议连接媒体服务器以实时流方式播放视频 问题:使用rtmp协议需要架设媒体服务器,造价高,对于直播多采用此方案。3、播放器使用HLS协议连接http服务器(Nginx、Apache等)实现近实时流方式播放视频 ...

2020-04-10 22:34:56 501

原创 RabbitMQ的特点以及搭建

一、消息队列中间件简介消息队列中间件是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削锋等问题实现高性能,高可用,可伸缩和最终一致性[架构] 使用较多的消息队列有ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMQ,RocketMQ二、消息队列在实际应用中常用的使用场景异步处理,应用解耦,流量削锋和消息通讯四个场景三、什么是RabbitMQRabbitMQ...

2020-01-06 18:22:45 201

原创 Dubbo的优缺点和搭建

一、什么是Dubbo?Dubbox 是一个分布式服务框架,其前身是阿里巴巴开源项目Dubbo ,被国内电商及互联网项目中使用,后期阿里巴巴停止了该项目的维护,当当网便在Dubbo基础上进行优化,并继续维护,为了与原有的Dubbo区分,故将其命名为Dubbox。Dubbox 致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。简单的说,dubbox就是个服务框架,如果没有分...

2020-01-06 15:42:04 686

原创 进程与线程

1. 什么是进程进程是由程序、数据及系统资源组成的一次程序运行活动的实体.进程包含:数据、线程、进程控制块(PCB)、程序;一个程序的多个运行实例对应多个进程,每个进程包含一个或多个线程。按照功能可分为:交互进程和后台进程;按照归属分为:用户进程和系统进程。进程控制块(PCB): 操作系统定义的、用于记录进程状态及控制进程运行所需信息的数据结构。2.什么是线程**进程中系统进行调...

2020-01-04 09:04:27 115

原创 Vue的MVVM原理及其实现

一. 什么是mvvmMVVM是Model-View-ViewModel的简写。它本质上就是MVC 的改进版。MVVM分为三个部分:分别是M(Model,模型层 ),V(View,视图层),VM(ViewModel,V与M连接的桥梁,也可以看作为控制器)1、 M:模型层,主要负责业务数据相关;2、 V:视图层,顾名思义,负责视图相关,细分下来就是html+css层;3、 VM:V与M沟通的...

2020-01-03 15:47:48 2253

linux常用命令.png

https://www.runoob.com/linux/linux-command-manual.html

2020-04-28

空空如也

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

TA关注的人

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