自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(78)
  • 收藏
  • 关注

原创 Docker容器启动失败修改内部配置文件

Docker容器启动失败修改内部配置文件

2022-08-23 20:34:31 993 1

原创 ELK--- Elastic Stack定制动态映射

文章目录动态映射定制动态映射策略dynamic 字段日期探测(date_detection)数字探测(numeric_detection)自定义动态模版动态映射ES中提供了一种叫做映射的机制,可以自动或手动为index中的文档建立一种数据结构和相关配置。在自动建立映射的时候,我们可以通过创建映射的模版或更改设置,以达到我们想要的结果。定制动态映射策略dynamic 字段ES中dynamic提供了三个参数:true:遇到陌生字段进行动态映射。false:新检测到的字段将被忽略。这些字段将不会

2022-01-11 22:36:41 578

原创 ELK--- Elastic Stack映射和数据类型

文章目录Mapping映射介绍自动映射手动映射修改映射删除映射ES数据类型String类型TextKeywordNumber类型如何更好的使用Number?Date类型Object类型Nested类型Mapping映射介绍概念:自动或手动为index中的文档建立的一种数据结构和相关配置,称为mapping映射。如果很难理解,可以把ES中的文档想象成MySQL数据库中的Table表,而映射就是对表中的字段创建对应的数据类型。一般来说,Mapping映射分为自动映射和手动映射。自动映射在第一次在插入

2022-01-09 17:11:32 1284

原创 ELK--- Elastic Stack文档存储机制

文章目录数据路由增删改内部机制查询内部机制Bulk 存储的JSON格式传统的JSON数组:现有的特殊形式数据路由存储文档时应该存储到哪个分片上,ES通过数据路由来进行确定。数据路由分为自动的路由算法或者手动指定。路由算法shard = hash(routing) % number_of_primary_shards哈希值对主分片数取模例如有三个主分片,当存储hash(id)=5的文档时,5%3=2,此时ES会将文档存储在shard2上,这就是路由算法。手动指定语法:PUT /ind

2022-01-08 15:40:22 1615

原创 ELK--- Elastic Stack内部机制

文章目录分布式机制的透明隐藏特性水平扩容与垂直扩容rebalance机制master节点节点对等的分布式架构shard&replica机制单节点创建索引横向扩容分布式机制的透明隐藏特性分布式机制:分布式数据存储及共享(如何分配数据和共享ES已经帮我们实现)。分片机制:数据存储到哪个分片,副本数据如何写入ES已经帮我们实现。集群发现机制:新启动的ES实例,会自动加入集群。shard负载均衡机制:大量数据写入及查询,ES会将数据平均分配。shard副本机制:新增副本数,分片会重分配。

2022-01-06 22:50:44 1007 1

原创 Java反射面试

文章目录静态语言和动态语言反射是什么?如何评价反射?获取Class方式有哪些?反射的作用?反射机制提供的功能反射的优点和缺点静态语言和动态语言在说反射前,先说一下静态语言和动态语言的区别。动态语言:在运行时可以改变其结构的语言:例如新的函数、对象、甚至代码可以被引进,已有的函数 可以被删除或是其他结构上的变化。通俗点说就是在运行时代码可以根据某些条件改变自身结构。主要动态语言:Object-C、 C#、 JavaScript、 PHP、 Python。静态语言:与动态语言相对应的,运行

2022-01-06 19:43:16 609

原创 ELK--- Elastic Search快速入门CURD操作

文章目录Elastic Search数据格式Elastic Search的CURD操作创建索引删除索引增加文档查询文档修改文档删除文档自动生成id自定义返回数据强制创建脚本更新_version乐观锁控制Elastic Search数据格式传统:应用系统的数据结构都是面向对象的,将数据对象存储到数据库,查询的时候将关联的对象再聚合起来。ES:Elastic Search面向文档,文档中存储和传统数据库一样的对象。例如学生和班级的关系:public class Student { privat

2022-01-04 23:44:28 1125

原创 ELK--- Elastic Search核心概念

文章目录Lucene和Elastic Search的关系Elastic Search核心概念Elastic Search 对比 DataBaseLucene和Elastic Search的关系Lucene:最先进、功能最强大的搜索库,API相对比较复杂。Elastic Search:基于Lucene,封装了许多Lucene的底层功能,提供简单易用的Restful API接口和许多语言的客户端,例如Java的高级客户端(Java High Level REST Client)和底层客户端(Java L

2022-01-04 21:21:30 857

原创 ELK--- Elastic Search和Kibana安装

文章目录Elastic Search 安装下载启动测试Kibana 安装启动打开汉化测试Elastic Search 安装下载前往官方根据操作系统下载对应的解压包:https://www.elastic.co/cn/downloads/elasticsearch启动下载完成后,解压会有以下对应目录。bin:脚本目录,包括启动、停止等可执行脚本config:配置文件目录data:索引目录,存放索引文件的地方logs:日志目录modules:模块目录,包括了es的功能模块plugins

2022-01-03 23:17:43 599

原创 ELK--- Elastic Search介绍

文章目录搜索的概念垂直搜索的弊端(数据库做搜索)倒排索引【重要】全文检索Lucene什么是Elastic Search?Elastic Search的功能分布式的搜索引擎和数据分析引擎全文检索,结构化检索,数据分析海量数据近实时处理Elastic Search的使用场景国外国内Elastic Search的特点搜索的概念用户输入想要的关键词,返回含有该关键词的所有信息。业务场景:互联网搜索:谷歌、百度、各种新闻首页。站内搜索(垂直搜索):企业OA查询订单、人员、部门,电商网站内部搜索商品(淘宝、

2022-01-02 15:26:36 1388

原创 ELK--- ELK简介

文章目录ELK简介特点组件介绍Elastic SearchLogstashKibanaBeatsElastic cloudELK简介ELK是一个免费开源的日志分析架构技术栈总称,官网地址:https://www.elastic.co/cn/。主要包含三大基础组件,分别是Elastic Search、Logstash、Kibana。 但是实际上ELK不仅仅适用于日志分析,它还可以支持其它任何数据搜索、分析和收集的场景,日志分析和收集只是更具有代表性,并非唯一性。架构图如下:随着ELK的发展,新成员B

2022-01-01 22:29:31 5862

原创 JavaScript-Cookie的安装使用

文章目录JS-Cookie介绍特点使用JS-Cookie介绍JavaScript-Cookie是一款用于处理 cookie 的简单、轻量级的 JavaScript API ,使用起来很简单。特点适用于所有的浏览器接受任何字符大量的测试无依赖性支持 ES 模块支持 AMD/CommonJS符合RFC 6265启用自定义编码/解码小于 800 字节gzip 压缩使用安装npm install --save js-cookie引用import Cookies fr

2022-01-01 11:31:16 1671

原创 Java注解面试

注解是什么?注解(Annotation)是从JDK5.0开始引入的新技术 ,注解不是程序本身,但是可以对程序作出解释。这一点和注释(Comment)没什么区别,可以被其他程序(比如:编译器等)读取。注解的格式: 注解是以@注释名在代码中存在的,还可以添加一些参数值,例 如:@SuppressWarnings(value="unchecked")。注解在哪里使用?可以附加在package , class , method , field等上面,相当于给他们添加了额外的辅助信息, 我们可以通过反射机制编

2021-12-27 23:32:39 499

原创 Java序列化面试

什么是Java序列化序列化是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化。可以对流化后的对象进行读写操作,也可将流化后的对 象传输于网络之间。序列化是为了解决在对对象流进行读写操作时所引发的问题。作用持久化对象及其状态到内存或者磁盘Java 平台允许我们在内存中创建可复用的 Java 对象,但一般情况下,只有当 JVM 处于运行时,这些对象才可能存在,即这些对象的生命周期不会比 JVM 的生命周期更长。 但在现实应用中,就可能要求在JVM停止运行之后能够保存(持久化)指定的对象

2021-12-23 20:10:40 777

原创 Redis妙用之分布式锁

文章目录成功的秘诀端赖坚毅的决心。—— 英狄兹雷利问题原因:Redis是单线程的操作,在单线程的操作下不会产生问题,但是在多线程下,对Redis进行GET和SET操作,因为不是原子性操作,所以此时会产生问题。实现思路:当一个线程对进行操作时,对其进行占位,此时其他线程进来,发现已经被其他线程占用,然后进行等待或放弃操作。实现代码:使用线程池封装Jedispublic interface JedisCall { void call(Jedis jedis);}public

2021-12-06 21:52:44 899

原创 Java使用Redis及其优化

文章目录开启远程连接Jedis连接Redis开启远程连接Redis默认是不支持远程连接的,这里需要手动开启远程连接。关闭本机IP绑定,允许远程连接。找到redis.conf中的bind:127.0.0.1将其注释。开启密码校验。找到redis.conf中的requirepass去掉其注释并设置密码。Jedis连接Redis创建一个Maven项目,导入Jedis依赖。<dependency> <groupId>redis.clients&lt

2021-12-05 22:42:51 2632 1

原创 Redis安装及五大基本类型

文章目录走得最慢的人,只要他不丧失目标,也比漫无目的的徘徊的人走得快。— 莱辛

2021-12-04 21:18:07 1266

原创 Docker仓库操作

文章目录DockerHub注册账号登录DockerHub推送镜像退出DockerHub所谓无底深渊,下去,也是前程万里。— 木心DockerHubDockerHub 是一个类似于 GitHub 的代码托管服务,不过它主要是用来托管镜像的。DockerHub的镜像主要分为了两类,一类是官方镜像,另一类是用户自己上传的镜像。DockerHub 地址为 https://hub.docker.com/, 如果觉得有些慢,可以使用国内网易镜像https://c.163yun.com/hub#/m/home

2021-11-29 21:05:59 605

原创 Docker镜像操作

文章目录查看镜像镜像查询拉取镜像删除镜像commit创建镜像Dockerfile创建镜像你不能把这个世界,让给你所鄙视的人。— 安·兰德查看镜像docker imagesEPOSITORY:仓库名称TAG: 用于区分同一仓库中的不同镜像,默认为latest。IMAGE ID:镜像的唯一标识符。CREATED:镜像的创建时间SIZE:镜像的大小镜像查询通过docker search可以去Dokcer Hub查询符合要求的镜像。docker search nginxNA

2021-11-28 22:43:40 569

原创 Docker容器操作

文章目录Docker容器基本操作Docker安装更换镜像源Docker 基本操作拉取镜像创建容器启动容器创建 + 启动停止容器查看当前运行的容器查看所有容器查看最新创建的容器查看最新创建的N个容器删除容器容器重启查看容器信息查看进程查看日志容器内执行命令Docker容器基本操作Docker安装Linux(CentOS、Ubuntu):curl -fsSL https://get.docker.com | bash -s docker --mirror AliyunMacOS:前往网站:

2021-11-27 23:14:05 3354 5

原创 SpringBoot---Tomcat日志配置

Tomcat日志分为两种类型访问日志:主要记录访问者的IP、时间等信息。服务器内部日志:主要记录内部运行、异常等信息。#定义日志生成目录server.tomcat.basedir=tomcat-log#开启访问日志server.tomcat.accesslog.enabled=true#定义日志前缀server.tomcat.accesslog.prefix=demo-log#定义日志后缀server.tomcat.accesslog.suffix=.log#定义日志日期格式se

2021-11-04 20:47:17 1753

原创 Spring Security---自动登录二次校验和持久化令牌

Spring Security为用户提供了方便的记住密码功能,将生成的rememberMeToken放入了cookie中,这也意味着只要token没有过期,一旦泄漏后就会产生安全风险。所以应该提供其它的校验进一步来加强系统的安全性。二次校验在用户自动登录后,可以通过对密码进行二次校验进而确保用户的真实性。尽管Spring Security提供了记住密码功能,但是也为我们提供了二次校验的功能。思路是对一些查询等不进行修改操作的接口,此时我们允许通过二次登录的用户直接进行查看,但是对于一些修改数据的接口,

2021-11-03 19:39:32 1000

原创 Spring Security---实现自动登陆功能

当我们在登录像QQ邮箱这种大多数的网站,往往在登录按键上会有下次自动登录这个选项,勾选后登录成功,在一段时间内,即便退出浏览器或者服务器重启,再次访问不需要用户输入账号密码进行登录,这也解决了用户每次输入账号密码的麻烦。接下来实现自动登陆。applicatio.properties配置用户名密码spring.security.user.name=javaspring.security.user.password=javacontroller层实现@RestControllerpub

2021-11-03 19:08:21 1056

原创 聊一聊SpringBoot中酷炫的Banner

不要着急,最好的总会在最不经意的时候出现。—— 泰戈尔文章目录自定义文本banner自定义图片banner隐藏Banner源码浅析SpringBoot项目在启动的时候,我们可以看到控制台会打印一个Spring的图案,这个是SpringBoot默认的Banner图标。个人觉得Banner对于项目整体实用性其实没那么大,但是生活需要一点酷,工作亦是如此。默认的banner:自定义文本bannerbanner生成网站:http://patorjk.com/software/taag在src\ma.

2021-11-02 21:35:31 6420

原创 聊一聊@SpringBootApplication注解

尚未实现的崇高目标,要比已经达到的渺小目标尤为珍贵。—— 歌德文章目录@SpringBootConfiguration@Component和@Configuration的区别@EnableAutoConfiguration@AutoConfigurationPackageAutoConfigurationImportSelector@ComponentScan我们都知道在SpringBoot项目里有一个关键的注解@SpringBootApplication,在每个启动类上都会有这个注解。首先我们.

2021-11-01 20:21:31 384

原创 Spring Security---会话固定攻击防御

什么是会话固定攻击?会话固定攻击英文叫做 session fixation attack,其攻击原理是利用sessionId的不变性。假设攻击者登录www.xxx.com网站,此时会生成一个sessionId。攻击者利用某种手段欺骗受害者访问该网站,但是会在网站后拼接自己的sessionId。当受害者访问www.xxx.com并进行登录后,此时的sessionId还是攻击者登录后返回的sessionId,因为sessionId没有变化,当攻击者再次登录该网站后,此时系统发现sessionId没有发生变化

2021-10-30 16:44:00 2961

原创 Spring Security---自定义获取用户IP

之前在Spring Security流程的文章里提到过setDetails方法,也就是在WebAuthenticationDetails记录了IP和sessionId。public WebAuthenticationDetails(HttpServletRequest request) { this.remoteAddress = request.getRemoteAddr(); HttpSession session = request.getSession(false); this.

2021-10-28 20:06:48 1320

原创 Spring Security---登陆流程分析

在Spring Security中,认证授权都是通过过滤器来实现的。当开始登陆的时候,有一个关键的过滤器UsernamePasswordAuthenticationFilter,该类继承抽象类AbstractAuthenticationProcessingFilter,在AbstractAuthenticationProcessingFilter里有一个doFilter方法,一切先从这里说起。private void doFilter(HttpServletRequest request, HttpSe

2021-10-28 19:28:41 321

原创 Spring Security---角色授权

之前已经配置好了两个用户java和cpp,不知道如何配置的可以看一下前面的文章。Spring Security—简介及初体验Spring Security—表单登陆配置介绍角色的分配大致是:jerry:admin角色,拥有所有权限(sys、data)tom:user角色,拥有查看数据(data)的权限先写一个简单的controller@RestControllerpublic class HelloController { @GetMapping("/hello") pu

2021-10-27 19:08:36 499

原创 Spring Security---表单登陆配置介绍

Spring Security提供一些对表单登陆的配置,我们可以通过对他们进行配置来达到我们想要的效果。编写一个配置类继承WebSecurityConfigurerAdapter,然后重写configure方法。@Configurationpublic class SecurityConfig extends WebSecurityConfigurerAdapter { @Override public void configure(WebSecurity web) throws E

2021-10-26 22:36:14 471

原创 Spring Security---简介及初体验

Spring Security介绍Spring框架带给了Java春天,但随着Java逐渐再次火了起来,出来了许多优秀的权限管理框架。Shiro和Spring Security无疑是让开发者争议较大的两个框架。对于Shiro,轻量、易于集成、简单易上手等无疑是它最大的优势。难道Shiro就没有缺点了吗?当然有,比如对于OAuth2支持不够,同时在Spring生态大火的前提下,Spring Security作为家族中的一员,明显占据着绝对的优势。简单的说一下Spring Security的老事情。早起有

2021-10-25 22:04:31 183

原创 SpringBoot:上传下载资源实现

文件工具类FileUtilspublic class FileUtils{ //Content-disposition 设置 public static void setAttaResHeader(HttpServletResponse response, String realFileName) throws UnsupportedEncodingException { String percentEncodedFileName = percentEncode(realFil

2021-08-22 20:41:00 185

原创 Fiddler:安卓抓包配置

Fiddler配置Tools --> Options1.下载fiddler https://www.telerik.com/fiddler2.打开HTTPS监听3.打开允许远程计算机连接4.手机配置未获取抓包解决方法关闭防火墙

2021-08-19 21:59:18 382 1

原创 Java 编译出现 int a = false 的原因

今天查看公司项目源码偶然间发现了一个int len = false,这是我有些惊奇。自己先做一个测试,写一段简单的代码通过IDEA打成Jar包,查看Jar包源码通过decode查看反编译后的代码这是因为该值没有被引用,优化器对其进行了优化,而且反编译是无法还原被优化的代码。...

2021-08-17 20:36:19 2077

原创 贪心算法---分发糖果(Hard)

文章目录分发糖果题目:思路:cpp实现:Java实现:TypeScript实现:分发糖果题目:老师想给孩子们分发糖果,有 N 个孩子站成了一条直线,老师会根据每个孩子的表现,预先给他们评分。你需要按照以下要求,帮助老师给这些孩子分发糖果:每个孩子至少分配到 1 个糖果。评分更高的孩子必须比他两侧的邻位孩子获得更多的糖果。那么这样下来,老师至少需要准备多少颗糖果呢?示例1:输入:[1,0,2]输出:5解释:你可以分别给这三个孩子分发 2、1、2 颗糖果。示例2:输入:[1,2,

2021-08-15 21:19:23 880

原创 schema设计陷阱

文章目录太多的列太多的关联过度使用枚举合理的NULL除了字段的正确选择,schema设计的时候也有一些问题需要注意。太多的列MySQL在工作的时候需要通过行缓存拷贝数据,之后进行解码转换成需要的列。然而转换是需要代价的,在MySQL中,MyISAM的变长行结构和InnoDB的行结构每次都需要转换,转换的代价依赖于列的数量,因此需要避免太多的列出现在表中。太多的关联表设计的时候难免少不了关联,但是MySQL限制了每个关联操作最多只能有61张表,有时候尽管少于61张表,但是在执行速度上也会产生影响。如

2021-08-15 18:56:44 135

原创 数据类型优化

字段

2021-08-14 21:54:00 188

原创 贪心算法---分发饼干(Easy) 以及TypeScript sort()方法的排序问题

文章目录分发饼干题目:思路:Java实现:cpp实现:题外话:关于ts的sort()TypeScript实现:分发饼干题目:假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。对每个孩子 i,都有一个胃口值 g[i],这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j,都有一个尺寸 s[j] 。如果 s[j] >= g[i],我们可以将这个饼干 j 分配给孩子 i ,这个孩子会得到满足。你的目标是尽可能满足越多数量的孩子,并输出这个最大数值。示例1:

2021-08-12 21:32:12 637

原创 httpcore中发现了forEach和Iterator不可告人的关系!!!

赛利亚:今天又是充满希望的一天。今天偶然进去httpcore的源码中的HeaderGroup ,发现上面写着一些英格力士。public class HeaderGroup implements Cloneable, Serializable { private static final long serialVersionUID = 2608834160639271617L; private static final Header[] EMPTY = new Header[0]; .

2021-08-07 22:46:25 139 1

原创 Java代码实现KMP算法!!!

文章目录KMP是什么?KMP实现核心Brute-Force暴力求解KMP求解next数组实现KMP实现KMP是什么?KMP算法是一种改进的字符串匹配算法,大大提高了字符串匹配的效率。至于为什么叫KMP,因为这个算法是由Knuth、Morris和Pratt三位大佬发明出来的,取大佬们名字的首字母组成了算法的名字。KMP实现核心KMP算法之所以高效是因为它减少了模式串与主串的匹配次数,这一切都归功于next数组。next数组本质上是一个前缀表,里面存放着神奇的东西,它记录着当匹配失败时需要回退的大小。

2021-08-07 15:20:19 2303

空空如也

空空如也

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

TA关注的人

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