- 博客(55)
- 资源 (6)
- 收藏
- 关注
原创 基于SpringBoot、Mybatis-Generator实现数据库表自动生成全套后台代码
SpringBoot Mybatis-plus PageHelper Mybatis-Generator 根据表自动生成Controller,Service,Mapper,VO,MapperXml整套后台完整代码。支持自动生成分页查询方法
2023-01-30 12:13:35 2642
原创 Devops之Gradle SpringBoot构建打包工程jar、搭建jenkins自动发布
Gradle SpringBoot构建打包工程jar;在jenkins自动构建发布
2022-05-29 22:45:03 3152
原创 Nacos注册中心、配置中心介绍+SpringCloud代码示例
本文将介绍Nacos作为注册中心是如何使用的。首先简单了解下Nacos架构:服务 (Service)服务是指一个或一组软件功能(例如特定信息的检索或一组操作的执行),其目的是不同的客户端可以为不同的目的重用(例如通过跨进程的网络调用)。Nacos 支持主流的服务生态,如 Kubernetes Service、gRPC|Dubbo RPC Service 或者 Spring Cloud RESTful Service。服务注册中心 (Service Registry)服务注册中心,它是..
2022-05-11 22:19:38 582
原创 Nacos注册中心/配置中心 WIN7集群配置介绍
随着SpringCloud自带的注册中心EURAKE不再维护,一款新的替代注册中心框架逐渐被越来越多开发团队使用,它就是Nacos。Nacos不仅可以作为注册中心,还可以作为配置中心进行配置管理,能满足大部分项目的需求了。本文将详细介绍下在win7环境下如何配置Nacos集群,后面文章分别介绍怎么使用Nacos集群搭建使用注册中心和配置中心。一.Nacos介绍关于Nacos是什么这里不再赘述,请查阅官网Nacos 快速开始。同时关于Nacos的入门使用也可以在官网介绍中得到答案。二.下载Naco
2022-05-11 21:19:05 580
原创 基于Arthas排查线上OOM的例子
最近工作当中遇到了一个现场OOM问题需要排查原因。由于之前没有接触过因此这次的排查过程给与了我一定的灵感和排查经验,特此总结和记录这个过程希望后面遇到相关的问题能有所帮助。背景:现场生产环境发生一例OOM内存溢出问题,通过日志查看只能看到业务代码存在报错的情况,但是没有看到有OOM的日志提示信息,也就是说无法通过log日志直观看到OOM的原因。那么思路就需要转变了,我们想要知道哪个线程在执行业务代码时花费了多少时间占用了多少JVM内存空间,那么是可以通过生产的dump日志进行解析的,于是赶紧联系
2022-04-18 13:43:37 5625
原创 JDK1.8 HashMap源码笔记QA
前面介绍了JDK1.7 HashMap和ConcurrentHashMap,接下来从下面一些点介绍JDK1.8 HashMap。(一)HashMap的内部数据结构?初始化流程?(1)JDK1.8的HashMap数据结构是由数组+链表+红黑树组成。其中数组+链表与JDK1.7类似,同时JDK1.8引入了红黑树的数据结构,用于优化链表过长的新增和查询慢问题。在JDK1.8内部使用TreeNode静态内部类定义红黑树,提供了诸多维持红黑树特性的方法,如确定根节点root,搜素节点find,获取树结构数
2022-02-20 16:55:50 595
原创 HashMap1.7源码笔记QA
HashMap1.7核心源码解析,还会继续更新JDK1.7的ConcurrentHashMap,以及JDK1.8的HashMap,ConcurrentHashMap
2022-02-04 01:07:43 2034
原创 Rest接口参数调用在后端进行自定义参数校验实战(含完整代码)
开发背景:相信大家在实际开发中基本都接触过前后端分离的开发模式,大致流程为前端携带请求参数向后端发起请求然后获取响应结果进行页面渲染。那么这里问题来了,前端发起的请求会携带众多不同格式的请求参数,这些请求参数字段如果没有进行必要的校验很可能对导致后端服务出现一系列报错。因此一般来说需要在后端对前端的请求参数进行一些必要的参数校验,当全部参数校验通过之后才进行服务的调用返回数据,当参数存在不通过的情况时则以友好的方式直接返回给调用方提示进行参数修改。基于此背景,下面介绍一下这样一个需求可以怎么去实现,并且考虑
2021-06-29 23:07:11 1481 2
原创 Mysql锁机制
上文介绍了Mysql事务以及四种事务隔离级别。本文继续介绍Mysql锁的分类,以及在不同事务隔离级别下,Mysql锁会呈现什么特性。文章风格还是采用结论+实操演示进行记录。锁一.锁的作用锁在数据库中是协调多个进程或线程并发访问某一资源的机制。锁保证数据并发访问的一致性、有效性;锁有各种操作,包括获得锁、检测锁是否是否已解除、加锁(加锁是消耗资源的操作)、释放锁等。锁冲突也会影响数据库并发访问性能。二.锁分类Mysql锁可以根据不同方式进行分类。(1)按使用方式:读锁(共享
2021-04-17 16:03:09 183
原创 Mysql事务以及隔离级别,版本链及MVCC
本文将通过操作实际Mysql表来演示Mysql的事务相关知识点,以及介绍四种事务隔离级别是如何处理并能发事务问题。一.Mysql支持事务的引擎InnoDB在MySQL 5.1 及之前的版本,MyISAM是默认引擎,MyISAM提供的大量的特性,包括全文索引、压缩、空间函数(GIS)等,但MyISAM并不支持事务以及行级锁。于是在Mysql5.1版本之后,Mysql就将InnoDB作为默认引擎。InnoDB可以支持行锁和事务,非常适用于处理操作量大,复杂度高的数据,存在频繁写操作的场景。1.比
2021-04-15 22:34:56 265
原创 Dubbo配置说明
本文介绍Dubbo的配置说明,文章内容主要对官网的内容进行验证,详细文章可查阅https://dubbo.apache.org/zh/docs/v2.7/user/configuration/下面将对下面这些方面展开学习。XML 配置对于服务端和客户端,XML主要基础配置可以归纳为Provider.xml<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dubbo="http://.
2021-03-06 22:13:45 257
原创 Dubbo高级应用
本文在前面Dubbo入门知识的基础上,结合官网提供的“用法示例”,对涉及到Dubbo的一些高级应用进行研究学习,并对每种应用通过代码方式逐个测试总结记录。涉及功能点主要有多版本多注册中心、负载均衡、集群容错、服务降级、本地存根、本地伪装、参数回调、异步调用、泛化调用、动态配置、服务路由、管理台服务治理等功能。一....
2021-03-06 20:37:25 124
原创 Dubbo基本应用和官方Demo入门
本文以官网Demo入门配置,简单介绍下Dubbo的基本配置使用,本文使用XML配置的方式。从上图可以看出,Dubbo包含服务端,客户端,注册中心,监控中心等组件。那么在代码中主要为服务端和客户端,通过配置文件配置连接相应的注册中心。Dubbo调用的过程是,客户端通过接口就可以直接调用到服务端的代码,那么在一般情况下Dubbo的服务端和客户端应该是共用同一套调用接口的,整个入门演示的工程结构如下:其中:common是定义的公共接口;consumer是客户端;provider是服务端。
2021-03-06 20:25:10 253
原创 Dubbo知识点总结
本文开始介绍下当前比较主流的RPC框架Dubbo,并且将从以下方面展开Dubbo的学习并进行必要的记录总结。在学习Dubbo之前,建议先学习Zookeeper注册中心相关的知识,会有更好的效果。一.Dubbo框架介绍和官方文档二.Dubbo基本应用和官方Demo入门三.Dubbo高级应用(负载均衡、集群容错、服务降级、本地存根、本地伪装、参数回调、异步调用、泛化调用、动态配置、服务路由、管理台服务等)四.Dubbo可扩展SPI机制五.Dubbo整合Spring六.Dubbo服务引
2021-02-01 21:28:43 181 1
原创 SpringBoot整合Elasticsearch
前面介绍了Elasticsearch的搭建,API使用,测试数据实战搜索。本文介绍怎么在SpringBoot中整合Elasticsearch。
2021-01-30 17:02:42 916
原创 Elasticsearch数据写入流程
写请求原理以下是写单个文档所需的步骤:(1 )客户端向 NODE I 发送写请求。(2)检查Active的Shard数。(3) NODEI 使用文档 ID 来确定文档属于分片 0,通过集群状态中的内容路由表信息获知分片 0 的主分片位于 NODE3 ,因此请求被转发到 NODE3 上。( 4 ) NODE3 上的主分片执行写操作 。 如果写入成功,则它将请求并行转发到 NODE I 和NODE2 的副分片上,等待返回结果 。当所有的副分片都报告成功, NO...
2021-01-30 12:01:01 563
原创 Elasticsearch使用API结合实际数据进行搜索查询实战
本文承接前面API操作,通过往ES导入www.json-[http://generator.com/] 生成的大量数据,结合官方文档练习案例进行实战。首先需要导入数据到ES当中:
2021-01-29 20:08:29 289
原创 Elasticsearch基本API使用
前面文章介绍了Elasticsearch的搭建,使用Kibana发送指令,使用Elasticsearch-Head监控。本文主要介绍Elasticsearch基本API使用,以及怎么在Elasticsearch-Head监控页面查看Elasticsearch相关的信息。
2021-01-17 19:42:52 3409
原创 Elasticsearch总结
近期工作原因一直没有更新,趁着稍微空闲还是把Elesticsearch总结一下并记录分享,争取年前完成全部内容的更新。一.Elasticsearch入门知识介绍:https://mp.csdn.net/editor/html/112701525二.Elasticsearch7.3.2+Kibana7.3.2+Ubantu 搭建elasticsearch集群环境:https://blog.csdn.net/qq_20395245/article/details/112721603三.Elasti.
2021-01-16 23:56:02 172 1
原创 Elasticsearch7.3.2+Kibana7.3.2+Ubantu16安装教程
前面介绍了Elesticsearch的基本知识,下面将实战如何在Linux操作系统中搭建Elesticsearch和Kibana环境。一.软件包由于ES社区的更新版本速度很快,小编使用的是Elesticsearch7.3.2+Kibana7.3.2版本进行搭建,现在ES官网下载可能需要翻墙且下载速度很慢,可以从下面地址下载...
2021-01-16 20:38:48 386
原创 Elasticsearch入门知识介绍
在学习Elesticsearch之前,需要先了解一下Elesticsearch的相关介绍,在学习了学院的教学视频之后,本文罗列总结涉及到的基础知识,希望有所帮助。一.什么是Elesticsearch?ElasticSearch是一个分布式,高性能、高可用、可伸缩的搜索和分析系统。怎么理解这个概念呢,首先让我们先从“搜索”开始,对比一下百度搜索和数据库搜索的差异。假设我们要搜索一个“小米手机专用券”:(1)数据库搜索:通过查询语句,搜索“小米手机专用券”关键字,但是会存在数据量过百万或亿级时性
2021-01-16 14:45:21 191
原创 SpringCloud-Alibaba-Nacos配置中心样例(application.yml配置放在Nacos,服务启动时自动加载Nacos配置并实时响应配置变化)
小编近期学习微服务配置中心了解到几个常用的配置中心组件,分别是SpringCloud Config,携程开源框架Apollo,以及阿里开源组件Nacos,出于学习需要并没有做非常深入的了解。SpringCloud Config是SpringCloud自带的配置中心,这里不做说明。Apollo则是携程开源的一个框架,这个框架总体还是不错的,但是小编认为Apollo的发布粒度是配置项级别,也就是说SpringCloud微服务只能从Apollo中获取一个个的配置项,实际上在使用时并不是很方便。因此有没有发布粒度是
2020-11-01 13:37:18 14128 1
转载 redis事务、redis订阅、redis删除策略、redis淘汰策略
本文总结一些redis事务、redis订阅、redis删除策略、redis淘汰策略。笔记来源于语雀https://www.yuque.com/books/share/9f4576fb-9aa9-4965-abf3-b3a36433faa6/skz5cmredis事务什么是redis的事务?redis事务就是一个命令执行的队列,将一系列预定义命令包装成一个整体,就是一个队列。当执行的时候,一次性按照添加顺序依次执行,中间不会被打断或者干扰。能干嘛?一个队列中,一次性,顺序性,排他性的执行一
2020-07-19 16:09:33 334
原创 redis知识点笔记合集(持续更新中)
近期主要学习redis相关的知识,断断续续预计近个月时间。系统学习下来总体感觉redis是个功能很强大的中间件,为了加深理解依旧采用文档记录的方式进行相关知识点记录,在此进行总结分享,文档会持续更新。主要涉及redis的知识点如下:(1)redis的五种基础数据结构API及拓展数据结构(拓展数据结构本质还是五种基础数据结构):https://blog.csdn.net/qq_20395245/article/details/106987885(2)redis持久化文件+持久化机制(rdb和a
2020-07-12 17:37:02 185
原创 redis三大缓存问题之缓存雪崩(搭建rediscluster高可用集群方案)
前面一篇文章介绍了redis的缓存穿透问题,接下来这篇文章着重介绍redis的缓存雪崩问题以及解决方案,最后通过代码进行测试。(一)什么是redis缓存雪崩问题?缓存雪崩是指,由于缓存层承载着大量请求可以有效的保护数据库存储层,但是如果缓存层同时出现大量缓存失效的情况,或者突然有个别机器节点挂掉了,导致大量的请求直接到达存储层,造成存储层也会挂掉的情况。(二)redis缓存雪崩常用解决方案?针对上面出现的缓存雪崩场景,通常有不限于以下一些解决方案,这些方案可以依实际场景互相搭配使用:1)
2020-07-12 17:18:50 723
原创 redis三大缓存问题之缓存穿透(缓存穿透问题+解决方案+布隆过滤器)
前面学习了redis的基础知识,接下来将对redis三大缓存问题进行分享,本文先从缓存穿透问题开始。首先介绍什么是缓存穿透以及怎么出现的,然后对此介绍常用的解决方案,包括布隆过滤器、缓存空对象等解决方案介绍,通过实战代码通过SpringBoot搭建redis,mysql环境在代码级别对缓存穿透问题和解决方案应用进行直观展示。本文基于的代码环境:代码使用SpringBoot集成mybatis+mysql+redis的方式,本文缓存穿透问题仅采用redis单机模式,在另一台电脑主机的linux虚拟机上发布一
2020-07-09 22:15:27 622
原创 redis的五种基础数据结构API及拓展数据结构(拓展数据结构本质还是五种基础数据结构)
本文简单介绍下redis的五种基础数据结构,以及基于这五种数据结构拓展出的其它数据结构。redis支持的五种基础数据结构为:String、Hash Table、Linked List、Set、Set,对redis来说所有的键K都是字符串类型。也有的将这五种数据结构根据存储方式不同又进行了拆分:这里不进行深入探析,只对以下五种大类的数据结构进行简单API使用和常用场景的介绍。(1)StringString是最基础的数据类型,也是应用最广泛的数据类型。String类型是二进制安全的,
2020-06-27 22:38:06 330
原创 redis持久化文件+持久化机制(rdb和aof)+aof重写机制+redis4.0后混合持久化机制
本文将学习redis持久化文件和持久化机制(RDB、AOF)一.redis持久化文件redis持久化文件默认为dump.rdb和appendonly.aof,默认都在./目录下,这两个在redis.conf配置文件中有定义:# rdb持久化文件名dbfilename dump.rdb# 工作目录。持久化文件会生成到这个目录下,可以修改为固定地址dir ./#是否开启aof,默认不开启appendonly no#aof持久化文件名,默认不开启aof也不会生成aof文件app
2020-06-26 22:06:58 954
原创 redis服务主机安装配置发布以及客户端主机远程连接(Linux)
本文介绍redis的Linux安装配置和常见问题。首先从Redis官网下载Lunux版本tar包(https://redis.io/download),使用5.0.8版本。(一)redis安装步骤:通过SSH工具将客户机下载好的tar包放到虚拟机linux目录下进行解压(如/opt,如果无法上传到该目录则传到桌面解压后再移动到/opt也可):tar -zxvf redis-5.0.8.tar.gzsudo mv redis-5.0.8 /opt执行make(如果遇到gcc报错
2020-06-25 17:58:36 383
原创 Win7主机SSH远程登录另一台Win7主机内的Liunx虚拟机操作手册
最近准备学习redis,nginx,zookeeper,MQ等技术知识时,遇到一个问题:那就是这些程序基本都要在linux操作系统上进行安装部署,特别是集群的练习更是离不开linux操作系统。为了更好学习集群的效果于是入手了一台很老的二手笔记本,在这台老笔记本上安装了Win7操作系统,同时安装了VMWare虚拟机并装了Ubantu16的Linux操作系统。大致网络结构就是一台Win7主机,一台带Linux虚拟机的Win7。由于在学习安装部署redis等程序时,因为带Linux虚拟机的老机器性能很卡直接操作非
2020-06-25 16:40:13 1004
原创 SpringBoot内置web服务器
本文介绍SpringBoot内置web服务器。知识点有SpringBoot默认web服务器;如何配置当前web容器;内嵌Web服务器如何切换(从tomcat到jetty);Web容器怎么自动配置;web容器启动源码解析。(一)SpringBoot默认web服务器?在SpringBoot中采用的默认web服务器是Tomcat,要了解为什么是Tomcat可从源码入手。对于web服务器的配置,也是在自动配置中找,前面学习了SpringBoot自动配置WebMVC的知识,可以推测对于Web服务器的配置应该也
2020-06-17 22:07:26 9699 2
原创 SpringBoot监听器
本文将介绍SpringBoot监听器作用和用法;采用监听器设计模式和SpringBoot手写监听器分别实现同一个文件上传进度条功能;如何使用SpringBoot监听器;SpringBoot监听器实现原理源码;SpringBoot线程池在监听器中的使用。(一)SpringBoot监听器作用和用法 监听器:又名事件驱动器。listener是servlet规范中定义的一种特殊类。用于监听servletContext、HttpSession和servletRequest等域对象的创建和销毁事件。监听域对象的
2020-06-14 17:47:58 4008
原创 手写springboot的自定义日志打印starter组件(实际springboot项目可直接引入使用)
本文选取VIP课程中关于一个手写注册中心中间件自定义starter的源代码,进行源码设计分析。什么是SpringBoot的starter?这个可以理解为SpringBoot集成一些指定框架时,让这些框架运行生效的jar,例如下面集成eureka注册中心和mybatis时需要引入对应的starter:starter的理念:starter会把所有用到的依赖都给包含进来,避免了开发者自己去引入依赖所带来的麻烦。需要注意的是不同的starter是为了解决不同的依赖,所以它们内部的实现可能会有很大的差异,例如
2020-06-14 00:58:32 1537
原创 SpringBoot自动配置SpringMVC原理
从前面学习SpringBoot自动配置原理我们知道,在SpringBoot启动加载时会预先从指定配置文件中读取可以配置的Config类,这些Config配置类可以在工程中通过尽可能少的配置就能让常用的框架组件发布并使用起来,那么SpringBoot是怎么帮我们做到这一点的呢?由于可配置的Config非常多,我们就选择我们最熟悉的WebMVC对应的Config进行详细解读,学习之后就可以自行举一反三了。(一)SpringBoot怎么自动配置SpringMVC?在学习SpringBoot怎么自动配置各种
2020-06-13 22:29:21 365
原创 SpringBoot自动配置原理
本文将通过代码,解读SpringBoot自动配置的原理。在学习自动配置之前,首先要先理解什么是SpringBoot的自动配置?我们知道,SpringBoot是一种方便开发者开发应用程序的框架,可以用尽可能少的配置(即习惯优于配置)进行开发,这是在Spring4.X后出现的。通过这种习惯优于配置的方式,我们可以很轻松集成各种如注册中心,消息组件,redes等主流的框架到我们的应用当中(可以理解为可以轻松集成一个个组件框架的starter),但是很显然每一个组件框架能被轻松集成到应用中,其背后就是Sprin
2020-06-12 23:15:16 379
百度语音识别+合成的Demo
2018-01-13
log4j日志写入mongodb
2018-01-04
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人