自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

石似心的博客

普通程序员

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

原创 爬梯:浅谈高并发下分布式集群锁的实现

学习资料:图灵诸葛分布式锁问题及解决方案模拟高并发情况下分布式集群的锁应对情况。1、分布式集群的问题复现制造一个双程序负载场面,共同访问单个redis减扣库存场景方案图减库存程序@RequestMapping("/reduceStock")public String reduceStock(){ synchronized (this){ int stock = Integer.parseInt(stringRedisTemplate.opsForValue().

2021-03-06 18:54:13 326

原创 爬梯:MongoDB入门到高级到SpringBoot-API

学习资料:黑马程序员使用版本:mongodb 4.0.23CentOs7MongoDB1. 入门1.1 介绍MongoDB是一个开源、高性能、无模式的文档型数据库,设计的初衷是用于简化开发和方便扩展,是NoSql数据库产品中最像关系型数据库的非关系型数据库。它支持的数据结构非常松散,是类似Json的Bson格式(二进制的Json),因此可以存储比较复杂的数据类型,且保持相当高的灵活性。Mongo最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系.

2021-03-02 23:43:51 594

原创 爬梯:第三代微信支付apiv3

学习资料:微信支付平台API花了一周左右的时间使用微信支付APIV3实现微信支付,以前也没做过微信支付,现在项目上线有点时间就把知识记录分享出来。第三代微信支付 apiv31. 前言apiV3之前的版本:微信支付有五个基础步骤:1、小程序内调用登录接口,获取到用户的openid,api参见公共api【小程序登录API】2、商户server调用支付统一下单,api参见公共api【统一下单API】3、商户server调用再次签名,api参见公共api【再次签名】4、商户server接收支付.

2021-01-07 17:21:21 1897

原创 爬梯:RabbitMQ+SpringBoot使用插件实现延迟队列

学习资料:HaiXiang、xiaomin0322RabbitMQ+SpringBoot使用插件实现延迟队列rabbitmq实现延迟队列有两种方式,死信队列和插件形式.。安装RabbitMQ插件目的:实现队列的延迟发送功能插件:rabbitmq-delayed-message-exchange需要使用含有交换机的模型队列,延迟时间是设置在交换机上的。下载插件,配置rabbit下载对应的版本**rabbitmq-delayed-message-exchange**我这次使用的.

2020-12-01 18:00:55 441 1

原创 爬梯:Git

学习资料:狂神说说明:我已经工作了几年再回头重新看一遍git理论知识做的笔记,内容都是基于我自己不理解的情况才写的,很多东西太基础就没写上了。Git分布式版本控制器版本控制器版本控制是指对软件开发过程中各种程序代码、配置文件及说明文档等文件变更的管理,是软件配置管理的核心思想之一。版本控制包括:检入检出控制、分支和合并、历史记录。常见的版本控制器:GitSVN(Subversion)CVS(Concurrent Versions System)VSS(Microsoft Vi.

2020-11-04 21:24:20 376

原创 爬梯:TKMapper的api记录

TK.Mybatis核心API增Mapper.insert(record);保存一个实体,null的属性也会保存,不会使用数据库默认值Mapper.insertSelective(record);保存一个实体,null的属性不会保存,会使用数据库默认值删Mapper.delete(record);根据实体属性作为条件进行删除,查询条件使用等号Mapper.deleteByExample(example)根据Example条件删除数据Mapper.deleteByPri

2020-10-30 17:35:00 416

原创 爬梯:Java序列化知识

Java序列化知识内容资料学习整理于网络Java对象实现序列化有两种方式实现Serializeable接口实现Externalizable接口,重写writeExternal()和readExternal()Exteranlizable接口。 需要重写writeExternal和readExternal方法,它的效率比Serializable高一些,并且可以决定哪些属性需要序列化(即使是transient修饰的),但是对大量对象,或者重复对象,则效率低。认识两个关键字:static、

2020-10-27 14:55:17 100

原创 爬梯:Maven全解析

学习资料:尚硅谷、动力节点Maven自动化构建工具官网:https://maven.apache.org1. Maven简介Maven是Apache软件基金会组织维护的自动化构建工具,专注于服务Java平台的项目构建和依赖管理。市面上的自动化构建工具还有:Ant、Gradle自动化构建,将项目代码从源文件到打包好这段过程中的操作自动完成,不需要人为操作,节省时间提高工作效率。构建项目的各个环节:清理:删除以前的编译结果;编译:将Java源文件编译为字节码文件;测试:针对项目中.

2020-10-26 17:27:43 423 4

原创 爬梯:Docker全解析(二)

5. 容器数据卷实现容器中的数据同步到宿主机上的一中技术,数据卷技术。将容器内的目录挂在到linux的目录上。5.1 实现目录挂载 -v-v 宿主机文件系统的路径:容器文件系统的路径测试:创建centos容器,挂载目录,创建hello.volume文件[root@ct7_1 ~]# docker run -it -v /home/centos_:/home centos bash[root@5b8a92a9eb9b /]# cd home/[root@5b8a92a9eb9b home]#

2020-10-22 02:34:03 2930 1

原创 爬梯:Docker全解析(一)

学习资源:狂神说Docker1. 概述Docker的思想来自于集装箱!基于Go语言开发官网:https://www.docker.com仓库:https://hub.docker.com容器技术比较Docker和虚拟机技术:传统虚拟机:虚拟出一套硬件,运行一个完整的操作系统,然后在这个系统上安装和运行软件;容器:容器内的应用程序直接运行在宿主机的内核,容器没有独自的内核,无需虚拟硬件更轻便;容器:每个容器相互隔离,每个容器都有一个属于自己的文件系统,互不影响。DevOps(开

2020-10-22 02:33:12 3407 1

原创 爬梯:ElasticSearch分布式搜索引擎

学习资料:狂神说ElactisSearch 7.6.2ElasticSearch分布式搜索引擎1. 概述1.1 ELKELK是ElasticSearch、Logstash、Kibana三大开源架构首字母大写简称,市面上也被称为Elastic Etack。ElasticSearch是以RESTful方式进行近实时地搜索平台框架,提供存储和搜索;Logstash是ELK的中央数据流引擎,用于从不同目标(文件、数据存储、mq)收集不同格式的数据,经过过滤然后输出到不同的目的地(文件、m.

2020-10-16 20:27:52 699

原创 爬梯:搭建SVN服务器

学习资源:黑马程序员SubVersion版本控制的作用:备份代码还原协同修改多版本项目文件管理追溯问题代码的作者和时间权限控制服务端:http://www.visualsvn.com客户端:http://tortoisesvn.net/downloads1. HelloSVN1.1 安装svn服务端在win10环境下安装,找到合适的版本下载,双击安装~https://www.visualsvn.com/server/changes/注意:svn的安装目录不能有空格和.

2020-10-16 20:19:10 522

原创 爬梯:常用JDK堆栈工具

Java虚拟机性能分析和故障排查工具JDK命令行工具JDK提供了很多工具供java程序员使用D:\Java\JDK1.8.0_211\bin想要往高级发展,就必须得熟练使用几种常用的jdk工具。1. jpsJVM Process Status Tool显示指定系统内所有的虚拟机进程1.1 作用列出正在运行的虚拟机进程,并显示虚拟机执行主类(main所在的类)名称以及这些进程的本地虚拟机唯一ID:Local Virtual Machine Identifier,LVMID。虽然.

2020-10-10 18:47:06 673

原创 爬梯:指令规则和语义

happens-before规则happens-before是一个代码执行规则,java开发来说这个规则的掌握还是有必要的,而且也会面试问到。由来在我们的java程序里创建一个对象只有一步操作:public void test() { Object obj = new Object();}new实例的java代码在经过编译器编译后的是拆分出四行源码执行的如下图:声明空间和初始化变量,这两条代码就变得没有先后顺序的约束了,只要最后再执行指向空间地址就行,所以会引出一个代码的执行顺

2020-09-30 13:56:26 671

原创 爬梯:SpringCloud

学习资料整理自[B站狂神说]https://www.bilibili.com/video/BV1jJ411S7xr?p=6搭建SpringCloud项目微服务前言什么是微服务微服务架构是一种架构模式、一种架构风格,它提倡将单一的应用程序划分成一组细小的服务,每个服务运行在其独自的进程中,服务之间相互协调,相互配置,为用户提供最终价值。服务之间采用轻量级的通信机制相互沟通,每个服务都围绕着具体的业务进行构建,并且能够被单独的部署到生产环境中,另外,应尽量避免统一的集中式的服务管理机制,对具体的.

2020-09-29 01:28:24 3629

原创 爬梯:Nginx全解析

学习整理自:B站尚硅谷系统平台:centos 7Nginx1、基本概念百科:Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,第一个公开版本0.1.0发布于2004年10月4日。Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其.

2020-09-21 02:36:16 1636

原创 爬梯:设计模式

资料学习整理自:B站尚硅谷我自己写了套代码理解,已上传 码云由于设计模式是个大题,内容繁多,我的计划是先学部分常用的,再逐步全面化。设计模式Design Pattern概念介绍1)设计模式是程序员在面对同类软件工程设计问题所总结出来的有用的经验,是某类问题的通用解决方案,设计模式代表了最佳的实践。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。2)设计模式的本质提高软件的维护性、通用性和扩展性,并降低软件的复杂度。类型23个设计模式分为三种类型:1).

2020-09-19 17:48:25 587

原创 爬梯:七大设计原则

资料学习整理自:B站尚硅谷设计原则设计模式原则,其实就是程序员在编程时,应当遵守的原则,也是各种设计模式的基础(即:设计模式设计的依据)1、单一职责原则基本介绍对类来说,即一个类应该只负责一项职责。比如:一个类里面有两个具体业务的不同方法,方法一修改时,可能会影响到方法二,所以此时应该拆分为两个类。细节目的与优点:1)降低类的复杂度,一个类只负责一项职责;2)提高类的可读性和可维护性;3)降低变更引起的风险。通常情况下,我们应担遵守单一职责原则;什么情况可以不遵守单一职责原则:.

2020-09-13 19:39:46 1350

原创 爬梯:RabbitMQ(二)

资料学习整理于:B站编程不良人MQ消息中间件之RabbitMQ以及整合SpringBoot2.x实战教程本次学习使用系统:CentOS release 6.5 (Final)6、Publish/Subscribe 发布订阅模型广播~原来叫:Fanout模型在广播模式下,消息发送流程是这样的:可以有多个消费者每个消费者有自己的queue(队列)每个队列都要绑定到Exchange(交换机)生产者发送的消息,只能发送到交换机,交换机来决定要发给哪个队列,生产者无法决定。交换机把消息.

2020-09-13 14:18:36 304

原创 爬梯:RabbitMQ(一)

资料学习整理于:B站编程不良人MQ消息中间件之RabbitMQ以及整合SpringBoot2.x实战教程本次学习使用系统:CentOS release 6.5 (Final)RabbitMQ1、MQ引言1.1什么是MQMQ(Message Quene):消息队列,通过典型的生产者和消费者模型,生产者不断向消息队列中生产消息,消费者不断的从队列中获取消息。因为消息的生产和消费都是异步进行的,而且只关心消息的发送和接收,没有业务逻辑的侵入,轻松的实现系统间的解耦。别名:消息中间件通过利用高效.

2020-09-13 14:12:33 421

原创 爬梯:MyBatis-Plus全解析

学习资源整理自:B站《狂神说》建议搭配官网一起学习,MyBatis Plus是国人开发的,官网教程还是很通俗易懂的:https://mybatis.plusMyBatis-PlusMyBatis-Plus全面学习与应用1、Hello MyBatis-Plus1. 官网提供的数据库环境CREATE TABLE user( id BIGINT(20) NOT NULL COMMENT '主键ID', name VARCHAR(30) NULL DEFAULT NULL COMMENT '姓.

2020-09-06 18:04:32 344

原创 MySql、Oracle和达梦统计记录数和占用内存

MySql、Oracle和达梦统计记录数和占用内存项目业务需要,然后baidu了两三个小时、实践、整理了以下可行的方案如下:MySql1、设置更新时间间隔,刷新系统表SET session information_schema_stats_expiry=0;SET @@session.information_schema_stats_expiry=0;这里设置的是session级别,不影响global的设置。查看修改的值:SHOW session VARIABLES LIKE 'inf

2020-09-04 19:04:11 737

原创 爬梯:MyBatis全操作

学习资源整理自:B站《狂神说》扎实基础,将Mybatis全面走一遍!Mybatis中文官网MyBatis全操作1、Hello MyBatis数据库表环境CREATE TABLE `smart_user` (`ID` int(11) NOT NULL,`NAME` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,`PASSWORD` varchar(50) CHARACTER SET u.

2020-09-02 20:44:28 161

原创 爬梯:Redis全解析(二)

学习资源整理自:B站《狂神说》Redis全解析1、NoSql介绍NoSql四大分类:KV键值对:新浪:Redis阿里、百度:Redis+memcache文档型数据库(Bson格式和Json一样):MongoDB基于分布式文件存储的数据库,C++编写,主要存储大量的文档;介于非关系型数据和关系型数据库的中间产品,mongoDB是非关系型数据库中功能最丰富的,最像关系型数据库的非关系型数据库。CouchDB列存储数据库Hbase分布式文件系统图关系数据库(不是存图形的,.

2020-08-27 01:31:42 616

原创 爬梯:JUC并发编程(三)

学习资源整理自:B站《狂神说》书接上回JUC并发编程12、CompletableFuture 异步回调理解父类:Future,对将来的某个事件的结果进行建模可以用ajax进行理解。从1.8开始场景:需要阻塞等待的任务,使用异步,可以让后面的任务继续进行,不出现阻塞,提高系统性能。官方文档java.util.concurrent Interface Future<V>参数类型 V - 未来的 get方法返回的结果类型 All Known Subinterfa.

2020-08-26 14:50:17 221

原创 mysql (Errcode: 13 - Permission denied)没有权限找不到文件问题

下午五点钟,突然反馈说某个页面报错,然后还想让我加班,并且很迅速的帮我点了外卖,,,我还打算今晚去健身房呢,,,,1、首先从案发现场勘察,页面返回500~2、之后看后台发现某个数据表not found permission denied~3、最后到后台登录mysql select这个表,结果提示Errcode: 13 - Permission denied,这里我用的是root账号~这就很奇怪了,随后百度了一下,说是拷贝的mysql数据库会有这个权限问题。总结了一下这个权限问题还会五花八门,有的人

2020-08-24 01:00:45 14052

原创 MySQL Explain解析

概要描述:id:选择标识符select_type:表示查询的类型。table:输出结果集的表partitions:匹配的分区type:表示表的连接类型possible_keys:表示查询时,可能使用的索引key:表示实际使用的索引key_len:索引字段的长度ref:列与索引的比较rows:扫描出的行数(估算的行数)filtered:按表条件过滤的行百分比Extra:执行情况的描述和说明...

2020-08-24 00:58:57 277 1

原创 IPO图初相识

项目逐渐进入收尾阶段,一堆堆验收的文档也接踵而来。前面已经完成了用户操作手册、管理员操作手册、数据库设计文档…今天填一下系统详细设计文档,其中需要画模块IPO图。某百科资料:IPO是指结构化设计中变换型结构的输入(Input)、加工(Processing)、输出(Output)。IPO图是对每个模块进行详细设计的工具,它是输入加工输出(INPUT PROCESS OUTPUT)图的简称,它是由美国IBM公司发起并完善起来的一种工具。在系统的模块结构图形成过程中,产生了大量的模块,在进行详细设计时开发.

2020-08-24 00:57:32 2645

原创 爬梯:JUC并发编程(二)

学习资源整理自:B站《狂神说》书接上回JUC并发编程8、线程池(重点)线程池:三大方法、七大参数、四种拒绝策略池化技术程序的执行,本质:占用系统的资源!优化资源的使用==》池化技术线程池、连接池、内存池、对象池…池化技术:事先准备好一些资源,有人要用,就来为这里拿,用完之后还给我。线程池的好处1、降低资源的消耗2、提高响应的速度3、方便管理线程服用、可以管理最大并发数、管理线程三大方法newSingleThreadExecutor() 单线程线程池private st.

2020-08-24 00:07:13 126

原创 爬梯:JUC并发编程(一)

学习资源整理自:B站《狂神说》JUC并发编程1、基础概念JUC 就是 java.util.concurrentjava到底能否自己开启线程?答案是否定的,在创建线程的底层,使用的是本地方法,也就是说是使用C++创建的并发、并行并发(多线程操作同一个资源)CPU单核,模拟出多条线程,快速切换并行(多线程同行)CPU多核,同事执行:线程池//获取CPU的核数//CPU密集型、IO密集型Runtime.getRuntime().availableProcessors();

2020-08-21 10:24:24 255

原创 爬梯:Java多线程基础

学习资源整理自:B站《狂神说》Java多线程基础知识点分割:多线程概述线程的实现:继承Thread、实现Runnable、实现Callable、Lamdb表达式并发初识线程的一些操作线程锁高级主题1、多线程概述Process 进程一个进程可以有多个线程。Thread 线程线程就是独立的执行路径在程序运行时,几时没有自己创建线程,后台也会有多个线程如主线程、gc线程main()称之为主线程,系统的入口,用于执行整个程序在一个进程中,如果开辟了多个线程,线程的运行由.

2020-08-13 22:14:40 177

原创 爬梯:注解和反射夯实

学习资源整理自:B站《狂神说》注解 Annotation从JDK5.0开始使用注解的作用不是程序本身,可以对程序作出解释(类似于注释,用于说明)可以被其他程序读取(编译器等)注解的格式注解以 @注解名 存在,可以带有参数一般应用场景可以附加在package、class、method、field等上,给这些元素添加额外的辅助信息,并且可以通过反射机制对这些信息进行获取元注解元注解的作用是注解其它注解,java定义了4个标准的meta-annotatio.

2020-08-10 23:11:39 96

原创 爬梯:Redis全解析(一)

1、NoSql介绍2、Redis概述3、Redis安装1、NoSql介绍NoSql四大分类:KV键值对:新浪:Redis阿里、百度:Redis+memcache文档型数据库(Bson格式和Json一样):MongoDB基于分布式文件存储的数据库,C++编写,主要存储大量的文档;介于非关系型数据和关系型数据库的中间产品,mongoDB是非关系型数据库中功能最丰富的,最像关系型数据库的非关系型数据库。CouchDB列存储数据库Hbase分布式文件系统图关系数据库(不是.

2020-08-07 17:03:36 591

原创 爬梯:JVM剖析理解

CURD程序员回首学习JVM是java的虚拟机,在java的跨平台运行上起重要作用…JVM虚拟机结构图:紫色部分:栈(线程)、本地方法栈、程序计数器。黄色部分:堆、方法区(元空间)。紫色部分–》栈:就是我们常说的内存栈,用户储存线程运行中中产生的临时普通变量;本地方法栈:java是95年发布的高级语言,但在之前已经有的C语言在底层中担任着不可取代的作用。例如使用Thread.start(),start()方法则是“本地方法”,方法签名有native关键字修饰会去执行**.dll中.

2020-08-04 17:21:14 202

原创 爬梯:数据库索引

索引再回首索引是帮助mysql高效获取数据的排好序的数据结构。索引数据结构:二叉树红黑树Hash树B-Tree

2020-08-02 23:43:02 139

原创 ECMAScript 6学习记录(二)

简介ECMAScript 6.0(以下简称 ES6)是 JavaScript 语言的下一代标准,已经在 2015 年 6 月正式发布了。它的目标,是使得 JavaScript 语言可以用来编写复杂的大型应用程序,成为企业级开发语言。学习顺序为我在项目中遇到的问题先后顺序。未完待续版权声明:文章内容总结于网络,如侵犯到原作者权益,请与我联系删除或授权事宜...

2020-01-07 11:21:19 468

原创 ECMAScript 6学习记录(一)

简介ECMAScript 6.0(以下简称 ES6)是 JavaScript 语言的下一代标准,已经在 2015 年 6 月正式发布了。它的目标,是使得 JavaScript 语言可以用来编写复杂的大型应用程序,成为企业级开发语言。学习顺序为我在项目中遇到的问题先后顺序。先统计 部分 新内容let:声明属性关键字,块级作用域,不存在变量提升,并且有暂时性死区。const:声明一个只读的...

2020-01-07 11:20:46 95

原创 Web前端技术记录

前言:由于最近公司给我个新项目,框架已经由技术总监搭好了,前端使用了vue等一系列前端技术,我是一名两年的CRUD,很感谢部门经理给我这个机会让我在办公时间学习,这里记录接下来学习的前端技术。Vue Mvvm模式 渐进式框架。与其他重量级框架不同的是,Vue 采用自底向上增量开发的设计。Vue 的核心库只关注视图层,Vue 完全有能力驱动采用单文件组件和Vue 生态系统支持的库开发的复杂...

2020-01-07 11:18:32 173

原创 Vue.js 学习与应用(二)

vue.js一套用于构建用户界面的渐进式框架。官方教程:https://cn.vuejs.org/v2/guide/在线编辑:https://codepen.io/penVue.js 的核心是一个允许采用简洁的模板语法来声明式地将数据渲染进 DOM 的系统。Vue模版语法插值文本:{{ msg }}只执行一次插值,后续不随对象改变:{{ msg }}插入html标签:特性...

2020-01-07 11:17:19 184

原创 Vue.js 学习与应用(一)

vue.js一套用于构建用户界面的渐进式框架。官方教程:https://cn.vuejs.org/v2/guide/在线编辑:https://codepen.io/pen此博统计各种语法,为了方便阅读只有简短代码,而且需要详细学习的话还是建议直接在官网的教程上走一遍~其实很简单。Vue.js 的核心是一个允许采用简洁的模板语法来声明式地将数据渲染进 DOM 的系统。先介绍一下基础语...

2020-01-07 11:16:50 101

空空如也

空空如也

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

TA关注的人

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