自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(410)
  • 资源 (5)
  • 收藏
  • 关注

原创 Canal安装教程

本文将详细介绍Canal在docker环境和windows环境下的安装教程由于同步是基于binlog实现的,所以要先在mysql中开启binlog。

2023-03-12 21:34:19 234

原创 MySQL 数据同步到 Redis 缓存方案

为了减轻数据库的压力,我们一般会通过加入缓存的方式来解决,本着先查询缓存在查询数据库的原则,那么数据库中的数据如何写入缓存则成为首要问题。本文就以redis缓存为例带着大家一起了解一下数据同步的方案。binlog。

2023-03-12 18:20:03 501

原创 Canal同步数据

文章正在构思中,敬请期待。

2023-03-07 23:45:47 81

原创 解决Error error0308010Cdigital envelope routinesunsupported

出现这个错误是因为 node.js V17版本之后最近发布的OpenSSL3.0, 而OpenSSL3.0对允许算法和密钥大小增加了严格的限制,可能会对生态系统造成一些影响.

2023-02-17 15:27:34 299

原创 elasticSearch数据的导入和导出

es数据的导入和导出需要借助于elasticdump工具,这是一个nodejs的插件,安装方式直接使用 npm即可,安装指令如下:

2023-02-14 09:49:27 325

原创 SpringBoot 整合 ES 进行各种高级查询搜索

elasticsearch中的内部对象无法按预期工作,这里的问题是elasticsearch(lucene)使用的库没有内部对象的概念,因此内部对象被扁平化为一个简单的字段名称和值列表。值得我们注意的是在进行聚合操作的fild上,如果我们该字段设置成key或者text,则会出现以下错误。本章git上的代码如果有被注释掉的,只是为了防止和后面的章节不冲突,并无错误,大家自行解注查看即可。因为本文都是数据的搜索,所以我们需要在我们的es服务器里先插入一些数据以供我们后面使用。有时候,我们需要查询一个。

2023-02-08 17:43:08 495

原创 ElasticSearch集群的搭建

ES集群是一个P2P类型(使用 gossip 协议)的分布式系统,除了集群状态管理以外,其他所有的请求都可以发送到集群内任意一台节点上,这个节点可以自己找到需要转发给哪些节点,并且直接跟这些节点通信。在 Elasticsearch 2.0 之前,无阻碍的网络下,所有配置了相同 cluster.name 的节点都自动归属到一个集群中。pretty进行查看。当一个节点配置tribe.*的时候,它是一个特殊的客户端,它可以连接多个集群,在所有连接的集群上执行 搜索和其他操作。

2023-02-07 18:38:43 369

原创 IK分词器和Elasticsearch集成使用

在学习分词之前,我们先看看es自带的分词效果:"token" : "我" , "start_offset" : 0 , "end_offset" : 1 , "type" : "" , … } , {"token" : "是" , "start_offset" : 1 , "end_offset" : 2 , "type" : "" , … } , {

2023-02-07 13:15:23 295

原创 ElasticSearchRepository和ElasticsearchRestTemplate的使用

在上一章节,我们学习到了es通过RestHighLevelClient实现最基本的增删改查的语法,在本章我们继续深入实践一下es的相关操作,在SpringBoot的相关依赖中,es已经帮我们将基本的操作都进行了封装,我们只需要掌握这些api,便可以轻松的操作我们的es。要构建QueryBuilder,我们可以使用工具类QueryBuilders,里面有大量的方法用来完成各种各样的QueryBuilder的构建,字符串的、Boolean型的、match的、地理范围的等等。它们通常用于过滤,排序,和聚合。

2023-02-06 21:29:16 578

原创 SpringBoot整合ElasticSearch实现模糊查询,批量CRUD,排序,分页,高亮

创建对应的请求 --> 设置请求(添加规则,添加数据等) --> 执行对应的方法(传入请求,默认请求选项)–> 接收响应结果(执行方法返回值)–> 输出响应结果中需要的数据(source,status等)

2023-02-06 15:40:48 552

原创 ElasticSearch相关概念

Elasticsearch是面向文档(document oriented)的,这意味着它可以存储整个对象或文档(document)。然而它不仅是存储,还会索引(index)每个文档的内容使之可以被搜索。在Elasticsearch中,你可以对文档(而非成行成列的数据)进行索引、搜索、排序、过滤。

2023-02-05 19:36:00 430

原创 ElasticSearch安装

docker安装方式可以点击上面的链接进行学习,本章主要介绍windows下的安装方式。

2023-02-05 17:28:49 350

原创 ElasticSearch简介

Elaticsearch,简称为es, es是一个开源的高扩展的分布式全文检索引擎,它可以近乎实时的存储、检索数据;本身扩展性很好,可以扩展到上百台服务器,处理PB级别的数据。es也使用Java开发并使用Lucene作为其核心来实现所有索引和搜索的功能,但是它的目的是通过简单的来隐藏Lucene的复杂性,从而让全文搜索变得简单。

2023-02-03 18:12:06 395

原创 MySQL 百万级数据,如何做分页查询?

随着业务的增长,数据库的数据也呈指数级增长,拿订单表为例,之前的订单表每天只有几千个,一个月下来不超过十万。而现在每天的订单大概就是2w+,目前订单表的数据已经达到了700w。这带来了各种各样的问题,今天我先从一个小问题开始。之前所写的代码mysql的分页都是采用的limit方式进行,这种方式固然代码比较简单,但数据量大了之后真的是查的慢。所以此处涉及到mysql大数据量后的分页查询方法及其优化技巧。

2023-02-03 17:31:34 1097

原创 122. 买卖股票的最佳时机 II

因为我们每一步都是最优解,所以只需要考虑最后一天的情况即可,但是为了让利益最大化,所以最后一天手上只有持有现金才能让收益最高,所以我们最终取的结果应该是dp[length][0]声明一个二维数组dp[i][j],之所以使用二维数组是因为变化的状态有两个,一个是哪一天,一个是这一天持股状态是持有还是未持有。这是一道很经典的动态规划类型题目,如果看过我之前写的关于动态规划类型的题目,便会很了解做这种题目的套路。对于dp[i][0]表示在第i天持有的是现金未持有股票,我们只需考虑前一天(i-1天)

2023-02-02 18:19:41 75

原创 Spring Boot 如何快速过滤出一次请求的所有日志?

本文讲述了如何使用MDC工具来快速过滤一次请求的所有日志,并通过装饰器模式使得MDC工具在异步线程里也能生效。有了MDC,再通过AOP技术对所有的切面植入requestId,就可以将整个系统的任意流程的日志过滤出来。使用MDC工具,在开发自测阶段,可以极大地节省定位问题的时间,提升开发效率;在运维维护阶段,可以快速地收集相关日志信息,加快分析速度。

2023-01-31 14:56:04 250

原创 38. 外观数列

今天给大家带来一道比较有意思的题目,先看看题目描述。每一次都是对前面一个字符串的每一位的描述。理解了题目的思路,代码自然就好写啦。n:表示我们要计算多少次。代码如下:(Java版)

2023-01-30 15:35:01 285

原创 还在担心代码越写越乱?试试责任链模式

责任链模式是一种行为设计模式, 允许你将请求沿着处理者链进行发送。收到请求后, 每个处理者均可对请求进行处理, 或将其传递给链上的下个处理者。责任链(Chain of Responsibility)模式的定义:为了避免请求发送者与多个请求处理者耦合在一起,于是将所有请求的处理者通过前一对象记住其下一个对象的引用而连成一条链;当有请求发生时,可将请求沿着这条链传递,直到有对象处理它为止在责任链模式中,客户只需要将请求发送到责任链上即可,无须关心请求的处理细节和请求的传递过程,请求会自动进行传递。

2023-01-29 23:03:54 2626 2

原创 29. 两数相除

直到100>>5=3,刚好大于等于我们的除数3,这时我们将$ 100-2^5*3=4 $,也就是减去了32个3,接下来我们再处理4,同样手法可以再减去一个3。对于这种类型的题目,当题目要求不能使用乘法、除法时,那么则需要我们从移位、或、与、异或等位运算的角度来进行考虑,接下来我带着大家从这道题目入手,看看位运算到底是怎么应用的。要求商,我们首先想到的是减法,能被减多少次,那么商就为多少,但是明显减法的效率太低,那么我们可以用位移法,因为计算机在做位移时效率特别高,余数,是一种数学术语。

2023-01-28 20:50:04 558

原创 数据库日期类型字段,需要兼容不同数据库,应该如何选择?

数据类型所占用的存储空间为8个字节,其中前4个字节用于存储1900年1月1日以前或以后的天数,数值分正负,正数表示在此日期之后的日期,负数表示在此日期之前的日期;为了解决这个问题,设计了一个辅助的措施,就是建立一个数据库函数来进行时间转换,把毫秒数的时间转为指定时区和格式的时间串,DBA在维护时可以使用。我们可以看到,这个定义,保证了这个时间值能够被后续设计开发的人员正确和准确的理解,能够为所有的应用正确理解,能够在所有时区上正确反映为正常的时间形式。用于表示一段时间或一个时间间隔的方法。

2022-12-27 23:09:41 90

原创 实现web实时消息推送的方案总结

推送的场景比较多,比如有人关注我的公众号,这时我就会收到一条推送消息,以此来吸引我点击打开应用。消息推送(push)通常是指网站的运营工作等人员,通过某种工具对用户当前网页或移动设备APP进行的主动消息推送。消息推送一般又分为web端消息推送和移动端消息推送。web端消息推送常见的诸如站内信、未读邮件数量、监控报警数量等,应用的也非常广泛。在具体实现之前,咱们再来分析一下前边的需求,其实功能很简单,只要触发某个事件(主动分享了资源或者后台主动推送消息),web页面的通知小红点就会实时的。

2022-12-25 22:26:22 204

原创 Error(3, 32) java 无法访问org.springframework.boot.SpringApplication

如果以上步骤还无法解决,那有可能就是你的jdk版本和SpringBoot版本不兼容,自己按照下面的版本对应一下吧。

2022-12-09 17:11:33 2663

原创 Spring Boot超大文件上传,实现秒传

分片上传,就是将所要上传的文件,按照一定的大小,将整个文件分隔成多个数据块(我们称之为Part)来进行分别上传,上传完之后再由服务端对所有上传的文件进行汇总整合成原始的文件。断点续传是在下载或上传时,将下载或上传任务(一个文件或一个压缩包)人为的划分为几个部分,每一个部分采用一个线程进行上传或下载,如果碰到网络故障,可以从已经上传或下载的部分开始继续上传或者下载未完成的部分,而没有必要从头开始上传或者下载。本文的断点续传主要是针对断点上传场景。通俗的说,你把要上传的东西上传,服务器会先做MD5校验。

2022-12-08 19:54:35 6552 1

原创 分片上传—webloader

最近研究大文件上传方案的时候偶然间发现的一个百度开源的工具:webloader,用了一下,确实还不错,下面带着大家一起使用一下。

2022-12-08 15:28:12 237

原创 深入浅出MappedByteBuffer

java io操作中通常采用BufferedReader,BufferedInputStream等带缓冲的IO类处理大文件,不过java nio中引入了一种基于MappedByteBuffer操作大文件的方式,其读写性能极高,本文会介绍其性能如此高的内部实现原理。在深入MappedByteBuffer之前,先看看计算机内存管理的一些知识:那么问题来了,为什么会有虚拟内存和物理内存的区别?什么是虚拟内存地址和物理内存地址?计算机会对虚拟内存地址空间(32位为4G)进行分页产生页(page),对物理内存地址空间

2022-12-05 11:20:38 227

原创 SQLite 安装与使用

最近接到一个需求,要求数据库使用SQLite,我就简单的了解了一下,下面也带大家入个门SQLite是一个软件库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。SQLite是一个增长最快的数据库引擎,这是在普及方面的增长,与它的尺寸大小无关。SQLite 源代码不受版权限制。SQLite是一个进程内的库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。它是一个零配置的数据库,这意味着与其他数据库不一样,您不需要在系统中配置。就像其他数据库,SQLite 引擎不是一

2022-12-03 22:15:10 798

原创 SpringBoot配置https

由于HTTPS具有良好的安全性,在开发中得到了越来越广泛的应用,像微信公众号、小程序等的开发都要使用HTTPS来完成。对于个人开发者而言,一个HTTPS 证书的价格还是有点贵,但是呢,国内的一些云服务器厂商提供免费的HTTPS证书,一个账号可以申请数个,当然,在jdk中提供了一个Java数字证书,我可以也可以利用这个工具生成一个数字证书。

2022-11-22 18:57:43 944 1

原创 Spring Boot+Netty+Websocket实现后台向前端推送信息

Netty 是一个利用 Java 的高级网络的能力,隐藏其背后的复杂性而提供一个易于使用的API的客户端/服务器框架。可能在此之前你没有接触过,不过不要担心,下面我们通过一个消息推送的例子来看一下netty是怎么使用的。2.设置主启动类3.NettyServer4.MyChannelHandlerPool通道组池,管理所有websocket连接5.WebSocketHandler处理ws以下几种情况:6.Netty配置管理全局Channel以及用户对应的channel(推送消息)7.s

2022-11-16 13:44:17 1156

原创 分布式追踪与监控:Skywalking

APM(Application Performance Management)应用性能管理,通过各种探针采集并上报数据,收集关键指标,同时搭配数据展示以实现对应用程序性能管理和故障管理的系统化解决方案。目前主要的一些 APM 工具有: Cat、Zipkin、Pinpoint、SkyWalking,这里主要介绍SkyWalking,它是一款优秀的国产 APM 工具,包括了分布式追踪、性能指标分析、应用和服务依赖分析等。Zabbix、Premetheus、open-falcon等监控系统主要关注。

2022-11-11 16:12:28 412

原创 SSO 单点登录和 OAuth2.0 的区别和理解

SSO是的缩写,OAuth是的缩写,这两者都是使用令牌的方式来代替用户密码访问应用。流程上来说他们非常相似,但概念上又十分不同。SSO大家应该比较熟悉,它将登录认证和业务系统分离,使用独立的登录中心,实现了在登录中心登录后,所有相关的业务系统都能免登录访问资源。OAuth2.0原理可能比较陌生,但平时用的却很多,比如访问某网站想留言又不想注册时使用了微信授权。以上两者,你在业务系统中都没有账号和密码,账号密码是存放在登录中心或微信服务器中的,这就是所谓的使用令牌代替账号密码访问应用。

2022-11-09 21:32:25 80

原创 62. 不同路径

接下来,我们继续确定初始条件,对于第一行的格子只能从左边移动而来,对于第一列的格子只能从上面的格子移动而来,所以dp[0][i]=1,dp[i][0]=1。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。对于动态规划类型的题目,我们只需先确定状态转移方程,然后在确定初始条件即可将问题迎刃而解。今天给大家继续带来一道经典的动态规划题目。问总共有多少条不同的路径?

2022-11-07 16:24:36 80

原创 56. 合并区间

以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] = [starti, endi]。请你合并所有重叠的区间,并返回 一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间。如果既不满足交集也不满足子集的话,我们就认为他是一个独立的区间,否则的话,我们就需要将两个结果集进行合并,同时和下一个区间进行对比。今天这道题难度一般,主要是感觉挺好玩的,和大家分享一下。

2022-11-04 16:21:40 37

原创 docker安装SkyWalking

安装Skywalking可以采用H2存储数据或者存储,我们这里采用ElasticSearch存储,采用OAP处理数据,并基于。

2022-11-01 17:18:41 342

原创 加密后的数据如何进行模糊查询

我们知道加密后的数据对模糊查询不是很友好,今天我们就具体探讨一下加密以后数据怎么继续模糊查查询的问题。我们需要加密存储,一般使用的都是不可逆的慢hash算法,慢hash算法可以避免暴力破解(典型的用时间换安全性),在检索时我们既不需要解密也不需要模糊查找,直接使用密文完全匹配但是手机号就不能这样做,因为手机号我们要查看原信息,并且对手机号还需要支持模糊查找,因此我们今天就针对可逆加解密的数据支持模糊查询来看看有哪些实现方式。

2022-10-31 16:17:37 1382 1

原创 Redis中有哪些阻塞点以及如何解决

我们从 Redis 内部及外部因素总结一下有哪些会影响redis性能的因素。我们就以上四种情况简单分析一下。

2022-10-28 15:30:45 294

原创 4种Redis集群方案及优缺点对比

在服务开发中,单机都会存在单点故障的问题,及服务部署在一台服务器上,一旦服务器宕机服务就不可用,所以为了让服务高可用,分布式服务就出现了,将同一服务部署到多台机器上,即使其中几台服务器宕机,只要有一台服务器可用服务就可用。redis也是一样,为了解决单机故障引入了主从模式master节点故障后服务,需要人为的手动将slave节点切换成为maser节点后服务才恢复。redis为解决这一问题又引入了哨兵模式。

2022-10-24 19:25:00 169

原创 22. 括号生成

数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。生成n对括号,则要保证括号都合法的话,那么最基本的要求便是。按照这种思路进行递归和剪枝,便可以罗列出所有的括号匹配情况。今天给大家分享一道递归+剪枝类型的题目。

2022-10-21 15:03:55 90

原创 Redis 的大 Key 对持久化有什么影响?

当 AOF 写回策略配置了Always 策略,如果写入是一个大 Key,主线程在执行 fsync() 函数的时候,阻塞的时间会比较久,因为当写入的数据量很大的时候,数据同步到硬盘这个过程是很耗时的。AOF 重写机制和 RDB 快照(bgsave 命令)的过程,都会分别通过 fork() 函数创建一个子进程来处理任务。创建子进程的途中,由于要复制父进程的页表等数据结构,阻塞的时间跟页表的大小有关,页表越大,阻塞的时间也越长;

2022-10-10 13:19:58 113

原创 服务网关与流量网关

在了解这个问题 之前,我们需要知道什么是网关,很多地方将网关比如成门, 没什么问题, 但是需要区分网关与网桥的区别。工作在数据链路层,在不同或相同类型的LAN之间存储并转发数据帧,必要时进行链路层上的协议转换。可连接两个或多个网络,在其中传送信息包。是一个大概念,不具体特指一类产品,只要连接两个不同的网络都可以叫网关,网桥一般只转发信息,而网关可能进行包装。

2022-10-09 19:11:00 1133

原创 543. 二叉树的直径

当然很多人想当然的认为树的考查只有深度优先遍历(DFS)以及广度优先遍历(BFS),其实这个说法是错误的,因为DFS只是对应二叉树的前序遍历,BFS也只是对应层次遍历而已。给定一棵二叉树,你需要计算它的直径长度。一棵二叉树的直径长度是任意两个结点路径长度中的最大值。这条路径可能穿过也可能不穿过根结点。今天给大家带来一道树类型的深度优先遍历题目。对于树类型的题目,无论怎么考无非就是考察。

2022-10-07 18:52:08 69

分布式+链路追踪+skywaling+探针

分布式+链路追踪+skywaling+探针

2022-11-11

计算机网络第五版课后答案已经ip类型题目详解

里面的有第五版(谢希仁)微课版完整的课后答案以及ip类型的题目及其详解

2018-12-23

学生在线管理系统

使用bootStrap,ssm,jquery,excel导出等功能实现在线学生管理系统

2018-12-09

在线视频播放器

里面使用springboot以及bootstrap,video,js,bootstrap-box,在线翻译等主流技术搭建一个在线播放视频,音频的播放器,可以实现即时更新,即时切换,在线翻译,在线搜索资源等技术,里面有详细的文档说明次代码

2018-12-06

vue实现用户管理系统

里面有详细的步骤和页面设计的样式来使用vue实现用户管理系统

2018-11-18

java_I/O流的教程

里面有java流的详解----从入门到掌握,里面有详细的代码解释,也有详细的笔记教程,望采纳

2018-11-18

空空如也

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

TA关注的人

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