- 博客(35)
- 收藏
- 关注
原创 ElasticSearch
ElasticSearch一、ES的概述1. 介绍2. 优点3. 缺点4. 基本概念4.1 Index(索引)4.2 Type(类型)4.3 Document(文档)5. 比较6. 工作原理7. 倒排索引二、ES的安装部署1. Linux安装Docker1.1 删除老版本1.2 安装工具包并设置存储库1.3 安装docker引擎1.4 启动docker1.5 设置开机启动docker1.6 设置国内镜像仓库2. Docker安装Elasticsearch2.1 下载镜像文件2.2 配置挂载数据文件夹2.3.
2021-04-27 13:47:15 1551
原创 设计模式概述
文章目录1. 设计模式概述1.1 软件设计模式的产生背景1.2 软件设计模式的概念1.3 学习设计模式的必要性1.4 设计模式分类2. UML图2.1 类图概述2.2 类图的作用2.3 类图表示法2.3.1 类的表示方式2.3.2 类与类之间关系的表示方式2.3.2.1 关联关系2.3.2.2 聚合关系2.3.2.3 组合关系2.3.2.4 依赖关系2.3.2.5 继承关系2.3.2.6 实现关系3. 软件设计原则3.1 开闭原则3.2 里氏代换原则3.3 依赖倒转原则3.4 接口隔离原则3.5 迪米特法则
2021-06-26 16:46:26 278
原创 ShardingSphere 分库分表
目录一、ShardingSphere1.1 简介1.2 什么是分库分表1.3 分库分表之垂直拆分1.4 分库分表之水平切分二、 ShardingSphere-JDBC2.1 简介2.2 Sharding-JDBC 分表实操2.3 实现水平分表2.3.1 配置 Sharding-JDBC 分片策略2.4 实现水平分库2.4 实现垂直分库2.5 公共表2.6 读写分离2.6.1 什么是读写分离2.6.2 主从复制原理2.6.3 什么是读写分离一、ShardingSphere1.1 简介Apache Sha
2021-06-04 14:30:29 978 1
原创 LeeCode-24-两两交换链表中的节点
题目:给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。示例 1:输入:head = [1,2,3,4]输出:[2,1,4,3]解题思路:我们可以通过改变链表的指向来解决这道题。我们以1->2->3->4为例。定义一个新链表res.next指向原链表。因为两两交换涉及到三个节点,我们需要定义一个中间指针指向res方便返回修改后的链表,以及指向head节点、指向第二个节点的nxt、第三个节
2021-04-06 21:39:54 127
原创 LeeCode-22-括号生成
题目:数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。示例 1:输入:n = 3输出:["((()))","(()())","(())()","()(())","()()()"]示例 2:输入:n = 1输出:["()"]解题思路:该题我们可以用回溯法来做。我们可以先用排列组合,列出所有可能的结果。例如加入n=2,则会有以下结果由上图我们可以得出结论:如果n=2,则left代表左括号的数量;right则代表右括号的数量。当left&l
2021-04-05 20:45:15 101
原创 LeeCode-21-合并两个有序链表
题目:将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例 1:输入:l1 = [1,2,4], l2 = [1,3,4]输出:[1,1,2,3,4,4]解题思路:我们可以使用迭代法来解决此问题。定义一个返回结果的链表res和辅助指针cur,让cur=res。然后依次比较l1和l2的val值,如果l1.val<=l2.val则让cur.next= l1;否则cur.next= l2.然后依次移动l1或者l2的指针以及cur的指针。
2021-04-04 21:33:19 92
原创 LeeCode-20-有效的括号
题目:给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串 s ,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。示例 1:输入:s = “()”输出:true示例 2:输入:s = “()[]{}”输出:true示例 3:输入:s = “(]”输出:false解题思路:这道题我们可以利用栈的数据结构来解。需要考虑一下几点:需要考虑如果字符串为空,符合条件,直接返回因为栈是先进后出,我们可以可以考虑把
2021-04-03 20:50:04 83
原创 LeetCode-02-两数相加
题目:给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例 2:输入:l1 = [0], l2 = [0]输出:[0]示例 3:输入:l1 = [9,9,9,9,9,9,9],l2 = [9,9,9,9]输出:[8,9,9,9,0,0,0,1]解题思路:这道题是两个链表的每个节点相加,如果超过10有进位的
2021-04-02 22:08:07 79
原创 LeetCode-01-两数之和
题目:给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。示例 1:输入:nums = [2,7,11,15], target = 9输出:[0,1]解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。解题思路:第一种方法:(1)可以使用暴力解法。我们可以利用循环遍历,让第一
2021-04-02 11:46:47 67
原创 Git常用指令
Git 常用操作指令git init //把这个目录变成Git可以管理的仓库git add README.md //文件添加到仓库git add . //不但可以跟单一文件,还可以跟通配符,更可以跟目录。一个点就把当前目录下所有未追踪的文件全部add了 git commit -m "first commit" //把文件提交到仓库git remote add origin 远程仓库地址 //关联远程仓库git push -u origin master //把本地库的所有内容推送到远程库上
2021-03-29 22:48:48 65
原创 Nuxt框架使得服务器内存溢出
出现的问题:用压测软件测自己写的程序,吞吐量从90/s一直降低到40/s,然后报了以下错误。Nuxt框架使得服务器内存溢出,使用Nuxt上架PC官网项目,上线后,使用压测工具进行压测,运行了三五分钟后,内存逐步上升,直到用完,服务停止响应.<— JS stacktrace —>FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory.
2021-03-29 17:24:38 2063 1
原创 服务负载均衡:Ribbon
Ribbon一、Ribbon简介1.1、什么是Ribbon1.2、为什么要使用Ribbon二、Ribbon入门案例2.1、项目准备2.2、修改服务消费者三、Ribbon负载均衡策略3.1、轮询策略(默认)3.2、权重轮询策略3.3、随机策略3.4、最少并发数策略3.5、重试策略3.6、可用性敏感策略3.7、区域敏感性策略四、Ribbon负载均衡设置4.1、全局替换一、Ribbon简介1.1、什么是RibbonRibbon 是一个基于 HTTP 和 TCP 的客服端负载均衡工具,它是基于 Netflix
2021-02-08 21:02:04 343
原创 服务注册中心:zookeeper
zookeeper一、SpringBoot整合zookeeper1.1、创建项目服务提供者1.2、创建消费者服务一、SpringBoot整合zookeeper1.1、创建项目服务提供者(1)创建服务提供者cloud-zookeeper-provider-payment8004(2)pom.xml中添加依赖注意: 添加的zookeeper版本要与自己安装在服务器上的一致。 <dependencies> <dependency> <
2021-02-07 19:24:11 80
原创 JSR303校验
JSR303校验一、简介1.Bean Validation 规范内嵌的约束注解二、实例1. 基本应用1.1 引入依赖1.2 给实体类成员添加校验注解1.2.1 我们可以直接给bean成员上添加校验注解1.2.2 也可以修改bean成员上添加校验注解,修改默认提示1.2.3 默认的错误提示规则1.3 在Controller上开启校验1.4 运行效果如下2. 统一异常处理2.1 抽取一个异常处理类2.2 测试结果如下2.3 默认异常处理2.3.1 添加默认异常处理2.3.2 定义错误状态码2.3.3 测试结果如
2021-01-17 20:39:32 198
原创 npm install的时候报错node-sass
执行以下步骤可以完美解决先查看package.json里面的node-sass的版本是多少,以我的为例为"node-sass": “4.14.1”然后再查看自己的node.js版本号,在控制台输入node -v即可查看,我的是V14.15.3。然后参考下图找到自己对应的node-sass版本修改package.json里面的node-sass版本即可,例如我的是node14对应4.14.1。4 然后清除缓存重新npm intall即可。...
2021-01-12 12:35:42 1031 1
原创 新版Vue脚手架关闭eslint
新版vue脚手架如何关闭eslint遇到的问题如下:解决的办法:关闭eslint网上的方法是更改build/webpack.config.js但是在新版的vue-cli中已经隐藏了这个文件在根目录新建一个vue.config.jsmodule.exports = { lintOnSave: false}...
2021-01-12 12:18:37 1642 3
原创 剑指 Offer 22. 链表中倒数第k个节点
题目:输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点。例如,一个链表有6个节点,从头节点开始,它们的值依次是1、2、3、4、5、6。这个链表的倒数第3个节点是值为4的节点。示例:给定一个链表: 1->2->3->4->5, 和 k = 2.返回链表 4->5.解题思路:第一种方法:(1)我们可以先提前定义个辅助指针指向当前链表,从头开始遍历链表,记录链表的长度count。(2)然后用for循环重
2020-11-20 20:44:38 73
原创 Java面试题总结
Java基础JVM、JRE、JDK的关系。什么是跨平台性?原理是什么。Java语言有哪些特点?什么是字节码?采用字节码的最大好处是什么?什么是Java程序的主类?应用程序和小程序的主类有什么不同?Java和C++的区别?Oracle JDK 和OpenJDK的对比。Java有哪些数据类型?...
2020-11-07 23:14:09 272
原创 剑指 Offer 03. 数组中重复的数字
题目:找出数组中重复的数字。在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。示例 1:输入:[2, 3, 1, 0, 2, 5, 3]输出:2 或 3限制:2 <= n <= 100000解题思路:第一种方法:(1)先把输入的数组进行排序,从排序中的数组中找出重复的元素,从头扫到尾。(2)数组遍历从0开始到nums.length-1,如
2020-09-28 09:14:52 101
原创 SpringBoot整合Redis做数据缓存
一、项目集成Redis1、在common模块添加依赖<!-- redis --><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId></dependency><!-- spring2.X集成redis所需common-po
2020-07-23 20:41:53 200
原创 SpringBoot整合阿里云短信验证服务
一、阿里云短信服务帮助文档:https://help.aliyun.com/product/44282.html?spm=5176.10629532.0.0.38311cbeYzBm731、配置application.properties# 服务端口server.port=8005# 服务名spring.application.name=service-msm# mysql数据库连接spring.datasource.driver-class-name=com.mysql.cj.jd
2020-07-23 20:26:51 323
原创 SpringBoot整合阿里云视频点播
一、整合阿里云vod实现视频上传可参考阿里云官方SDK文档操作1. 引入pom依赖<dependencies> <dependency> <groupId>com.aliyun</groupId> <artifactId>aliyun-java-sdk-core</artifactId> </dependency> <dependency>
2020-07-20 21:03:50 1459 1
原创 二级分类封装
一、创建vo//一级分类@Datapublic class OneSubject { private String id; private String title; private List<TwoSubject> children=new ArrayList<>(); //一个一级分类对应多个二级分类}//二级@Datapublic class TwoSubject { private String id; private
2020-07-20 20:49:52 345
原创 SpringBoot整合EasyExcel二级分类
一、Excel导入导出的应用场景1、数据导入:减轻录入工作量2、数据导出:统计信息归档3、数据传输:异构系统之间数据传输二、EasyExcel简介1、EasyExcel特点Java领域解析、生成Excel比较有名的框架有Apachepoi、jxl等。但他们都存在一个严重的问题就是非常的耗内存。如果你的系统并发量不大的话可能还行,但是一旦并发上来后一定会OOM或者JVM频繁的fullgc。EasyExcel是阿里巴巴开源的一个excel处理框架,以使用简单、节省内存著称。EasyExcel能
2020-07-20 20:43:49 805 2
原创 Hystrix熔断器的使用
一、Hystrix基本概念1、Spring Cloud调用接口过程Spring Cloud 在接口调用上,大致会经过如下几个组件配合:Feign ----->Hystrix —>Ribbon —>Http Client(apache http components 或者 Okhttp) 具体交互流程上,如下:接口化请求调用当调用被@FeignClient注解修饰的接口时,在框架内部,将请求转换成Feign的请求实例feign.Request,交由Feign框架处理。Fei
2020-07-20 20:15:38 392
原创 服务调用Feign
一、Feign1、基本概念Feign是Netflix开发的声明式、模板化的HTTP客户端, Feign可以帮助我们更快捷、优雅地调用HTTP API。Feign支持多种注解,例如Feign自带的注解或者JAX-RS注解等。Spring Cloud对Feign进行了增强,使Feign支持了Spring MVC注解,并整合了Ribbon和Eureka,从而让Feign的使用更加方便。Spring Cloud Feign是基于Netflix feign实现,整合了Spring Cloud Ribbon
2020-07-19 20:53:51 147
原创 springboot整合OSS
一、新建云存储微服务1、在service模块下创建子模块service-oss2、配置pom.xml<dependencies> <!-- 阿里云oss依赖 --> <dependency> <groupId>com.aliyun.oss</groupId> <artifactId>aliyun-sdk-oss</artifactId>
2020-07-13 20:50:14 1214
原创 SpringBoot统一日志处理
一、日志1、配置日志级别日志记录器(Logger)的行为是分等级的。如下表所示:分为:OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL默认情况下,spring boot从控制台打印出来的日志级别只有INFO及以上级别,可以配置日志级别# 设置日志级别logging.level.root=WARN这种方式只能将日志打印在控制台上二、Logback日志1、配置logback日志删除application.properties中的日志配置安装idea彩色日志插件:gr
2020-07-12 20:25:26 181
原创 springboot常见的异常处理
一、统一异常处理1、创建统一异常处理器package com.atguigu.servicebase.handler;/** * 统一异常处理类 */@ControllerAdvicepublic class GlobalExceptionHandler { //全局异常处理 @ExceptionHandler(Exception.class) @ResponseBody public R error(Exception e){ e.pri
2020-07-12 20:17:51 402
原创 统一结果返回
一、统一返回数据格式项目中我们会将响应封装成json返回,一般我们会将所有接口的数据格式统一, 使前端(iOS Android, Web)对数据的操作更一致、轻松。一般情况下,统一返回数据格式没有固定的格式,只要能描述清楚返回的数据状态以及要返回的具体数据就可以。但是一般会包含状态码、返回消息、数据这几部分内容例如,我们的系统要求返回的基本数据格式如下:{ "success": 布尔, //响应是否成功 "code": 数字, //响应码 "message": 字符串, //返回消息
2020-07-11 18:51:54 290
原创 SpringBoot整合Swagger2
一、Swagger2介绍前后端分离开发模式中,api文档是最好的沟通方式。Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。及时性 (接口变更后,能够及时准确地通知相关前后端开发人员)规范性 (并且保证接口的规范性,如接口的地址,请求方式,参数及响应格式和错误信息)一致性 (接口信息一致,不会出现因开发人员拿到的文档版本不一致,而出现分歧)可测性 (直接在接口文档上进行测试,以方便理解业务)二、配置Swagger2pom.xml
2020-07-11 18:29:12 129
原创 Java代码生成器(mybatis-plus)
代码生成器导入所需要的包 <!-- velocity 模板引擎, Mybatis Plus 代码生成器需要 --> <dependency> <groupId>org.apache.velocity</groupId> <artifactId>velocity-engine-core</artifactId> </dependency&g
2020-07-10 18:47:32 200
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人