自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 缓存分布式锁

背景在单体应用中,项目直接部署到一台机器上,所有的访问都流向此机器。而为了增强单体应用服务能力,会通过在代码中使用多线程,从而给服务更好的处理能力。在此情况下,如果有大量请求访问,那么对于单体应用中涉及数据的操作(增删改)部分,容易造成线程之间的对于资源的争抢而产生脏数据或数据不一致,此时我们可以通过加锁来解决,JUC包下提供了各种锁,来避免上述情况。如果我们将此应用部署到多台服务器上(从单体应用变成分布式服务),如图所示:该商品服务部署到多台服务器上,通过负载均衡方式将流量分发到不同的机器

2022-04-13 16:11:30 1238

原创 缓存穿透 缓存击穿 缓存雪崩

缓存穿透 查询一个用不存在的数据,由于缓存不命中,将去查数据库。但此时数据库也无此记录,并且我们并没有将查询为null的结果写入缓存,这导致这个不存在的数据每次请求都去数据库中查找,失去缓存的意义。风险:利用不存在的数据对数据库进行攻击,最终导致数据库压力增大,数据库崩溃;解决方案:接口层增加校验,如用户鉴权校验,id做基础校验,id<=0,直接拦截; 2. 对查询不到的内容,也将其缓存到redis中,并设置短暂的过期时间; 3. 使用布隆过滤...

2022-04-10 17:52:57 869

原创 vue 中如何实现父子组件数据传递

背景: 实现组件之间子组件向父组件传递数据,该如何做到呢?上代码:子组件:<template> <div> <button @click="click">点击</button> </div></template><script> export default{ methods:{ click(){ let a = "123" let b = "456" ..

2021-06-29 21:31:51 242

原创 关于element ui 中级联选择器异常的记录

在编写项目时,前端需要用到element ui 中的级联选择器(el-cascader),通过它实现项目商品分类的选择,具体效果如下图所示:这里将数据保存之后,再点击修改时,信息回显到弹框中,所有信息已经回显到指定位置上,除级联选择器之外,它的信息没有显示出来。通过检查后端返回给前端的数据(它是一个数组),发现数据是完整的带回来的;但是确在这里没有展现出来,后端返回的级联选择器需要的数据如下:仔细观察会发现,数组中,除了路径信息外,还有一个 __ob__: Observer,它.

2021-06-29 21:13:44 341

原创 JSR303校验

介绍JSR303 JAVA SE6的一项数据校验规范;周末时间在编写项目时,需要对起前端传递的数据进行校验,避免后期因为数据异常导致读写出错。我们可以通过在bean数据上增加一层注解的方式,实现对后端传递数据的校验。上实体类:com.zpy.entity.PmsBrandEntity,代码如下: @Data @TableName("pms_brand") public class PmsBrandEntity implements Serializable {

2021-06-07 23:20:24 182

原创 Mybatis-plus笔记整理(二)

前言在第一篇整理笔记中,从mybatis-plus基本搭建,到通用mapper的基本使用,都做了一个介绍,也留下了不少坑。有同事问我说,为啥要用Oracle 数据库来讲解Mybatis-plus,而不是用MySQL;两个原因:日常开始中一直在用Oracle; 网站上很多讲解Mybatis-plus教程,大部分都是基于MySQL的,Oracle的占比很少,用Mybatis-plus连接MySQL 和连接Oracle,其实都是一样的操作,但是会存在不同之处,毕竟是趟过几个坑的菜鸟;本篇博客中,将

2021-02-27 16:52:10 155

原创 Mybatis-plus 笔记整理(一)

前言在很长的时间的项目中,一直在用mybatis-plus操作数据库。感觉mybatis-plus可以作为mybatis的替代品,陪我在数据库的江湖上浪迹天涯。这里,根据日常使用经验,将Mybatis-plus的一些日常操作,以及踩到的坑,整理成博客。方便自己日后项目开发中查阅,也分享给需要的同事和小伙伴。Mybatis-plus是Mybatis 的增强工具,只做增强不做改变,所以任何能使用mybatis进行crud,并且能支持sql标准的数据库,都可以通过mybatis-plus进行连接。此...

2021-02-24 23:54:26 332

原创 Java反射

Java反射前言前一段时间,曾经学习Mybatis-plus,阅读源码解决过不少问题,便萌生想要去阅读Spring框架源代码,以便在今后的面试和工作中能有出色的表现,有朋友建议我在阅读源码之前,应该对java的基础知识(反射等)和设计模式这一块有很深的理解,好吧,我工作以来,这些东西很久没有关注过。承认学习过,但是,中了那句话的毒(学习是为了更好的遗忘),因此,对这一块内容进行特别整理一下。我们编写的Java代码,并不是可以直接运行的,而是需要由Java虚拟机经过编译,形成class文件。然后才

2021-02-15 17:16:05 147 1

原创 HBase相关API整理-Delete

前言 在前几篇文章中,分别整理了关于HBase新API的操作Get,Put等,今天整理删除表数据,delete操作。 整理的内容相对粗糙,如有错误,还望指点。获取连接Configuration conf = HBaseConfiguration.create();conf.set("hbase.zookeeper.quorum", "bigdate01:21...

2019-10-30 22:24:29 294

原创 HBase相关API整理-Get

前言 之前曾经发表过博文,整理了Hbase2.1.0之后的相关API。这里对获取数据的方法进行详细整理创建连接//获取到当前设置Configuration conf = HBaseConfiguration.create(); conf.set("hbase.zookeeper.quorum", "bigdate01:2181,bigdate02:2181,bigdate...

2019-10-26 11:32:31 370

原创 HBase相关API整理-Put

前言 之前曾经发表过博文,整理了Hbase2.1.0之后的相关API。这里在对某些操作进行详细整理。Jar包引入import java.nio.ByteBuffer;import java.util.ArrayList;import java.util.Iterator;import java.util.List;import java.util.Navigabl...

2019-10-15 22:05:02 322

原创 HBase API相关操作

HBase自2.1.0版本之后,API的使用和以前存在差异,关于日常API,这里做简单汇总,后期还会继续加入。声明:作者在这里使用的HBase版本为2.1.2,对应的jar包是2.1.2版本,在这里直接将HBase中lib文件下所有的jar包全部导入。导入的jar包import java.util.Iterator;import org.apache.hadoop.c...

2019-10-08 14:55:10 149

原创 Sqoop的学习笔记(一)

简介Sqoop是一款开源工具,主要用于在Hadoop、Hive、HBase等与传统数据库之间进行数据传递的工具。软件安装在这里,安装sqoop的版本为:sqoop1.4.7。这里值得一提的是,按照目前的版本来说,sqoop自1.4.7以后,进入到一个新的版本阶段,其安装配置和操作上和上一个时代的sqoop存在很大的差异,尽管存在一些方面的优化,但是由于开发还不是非常完善,所以个人建议,...

2019-09-21 11:28:04 169

原创 SpringBoot集成Mybatis

开发工具IDEA2019.1.1JDK1.8SpringBoot2.1.6(此处省略软件安装步骤以及项目创建)依赖jar包 <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-s...

2019-07-31 09:43:45 135

原创 Spark依赖关系与Stage划分简介

Spark会在用户提交的计算逻辑中的RDD的转换和动作来生成RDD之间的依赖关系,同时这个计算链也就生成了逻辑上的DAG(有向无环图)。RDD之间的关系可以从两个维度来理解:一个是当前RDD是从哪些RDD转换而来,也就是parent RDD(s)是什么;还有就是依赖于parent RDD的哪些Partition。这个关系,就是RDD之间的依赖。根据依赖parent RDD的Partitions...

2019-07-28 10:29:16 473

原创 关于Linux中的文件权限那些事

以linux操作系统CentOS6.5为例. 我们知道,linux中文件、目录以及链接等,并不是所有的用户都可以对其进行操作,这也就表示,不同的文件或目录对于不同用户都具有不同的操作权限。那么如何查看这些文件具有哪些操作呢? linux中的ls 命令即可显示当前路径下的数据文件是否具有可操作权限。 #ls -l如上图所示,ls -l显...

2019-05-11 09:21:39 187

原创 关于SparkSQL那些事(二)----sparksql基础语法(下)

在上一篇博客中,重点介绍了如何通过sparksql来执行查询操作,虽然可以实现对创建的DateFrame进行操作,但是语法和普通的关系型数据库的SQL操作存在差异。不容易记住,所以这一篇博客中,介绍如何通过普通SQL来操作。 通过SQL语句来调用 创建表 df.registerTempTable("ta...

2019-04-07 22:26:46 842

原创 关于SparkSQL那些事(二)----sparksql基础语法(上)

前言 在上一篇博客中,重点介绍了sparkSQL的由来,以及sparkSQL读取不同的数据源进行数据。我们知道,sparkSQL通过获取数据源中的数据形成SchemaRDD。在这篇博客中,我们就通过相应的查询命令读取数据。 通过方法查询 创建一个DataFrame对象,进行具体演示:...

2019-04-07 11:26:20 570

原创 关于SparkSQL那些事(一)

SparkSQL概述Spark为数据化出力引入了一个称为SparkSql的编程模块。它提供了DataFrame的编程抽象,并且可以充当分布式SQL查询引擎。SparkSQL的前身是Shark。它是伯克利实验室Spark生态环境的组件之一,它基于hive做了一些改进,比如引入焕春管理,改进和优化执行器等,并使之能够运行在spark引擎上,虽然使得sql的查询速度得到大幅度提升,但是它对于hi...

2019-04-07 10:11:00 238

原创 jedis连接出错

今天在使用redis搭建缓存集群的时候,一共启动了三个redis服务,端口号分别是6379、6380、6381。在进行redis配置时,将配置文件中bind 127.0.0.1注释掉了,protected-mode设置为no,daemonize 设置为yes。在进行jedis连接端口号6379和端口号6380的服务时,jedis报异常,异常信息如下:Exception in thread "mai...

2018-05-29 17:04:55 229

testtoken.rar

因领导要求,做项目时需要使用的到声网的sdk,这里其中要做的一点是生成RTC token。参考声网的github中的代码生成的rtc token竟然无法校验通过,遂和声网技术人员沟通。要求他们进行测试,并拿到他们测试通过的代码。 免责声明: 代码文件来自于声网技术人员提供,如有侵权,可删除。

2021-11-12

空空如也

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

TA关注的人

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