自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(108)
  • 资源 (4)
  • 收藏
  • 关注

转载 docker安装es、kibana和ik分词器

我们选择 explore on my own(独自探索,不需要es为我们创建数据),进去后选择下图箭头所指的三条杠,往下拉有一个 dev tools(开发工具)下载es和kibana包,两者版本需对应,本文使用es版本7.12.1、kibana版本7.12.1。ik分词器包也在上面网盘链接,下载好后解压重命名为ik,放到宿主机目录下。以上就是在docker里部署单体es和kibana。kibana启动一般比较慢,需要多等待一会。2、图中为挂载目录,将ik文件复制到该目录下。3、重启es容器即可。

2023-11-19 14:39:49 144

原创 使用springboot对Elasticsearch 进行索引的增、删、改、查

对应spring-data-elasticsearch版本为2.2.8.RELEASE,版本对应可以自行百度,如果不行直接用elasticsearch-rest-high-level-client工具类吧。目前使用spring-boot-starter-parent版本为2.2.8.RELEASE。@Document指定实体类和索引对应关系。@Field指定普通属性。

2023-10-28 22:12:10 1162

原创 Elasticsearch中使用join来进行父子关联

在使用关系数据库进行开发的过程中,你可能会经常使用外键来表示父表和子表之间的关联关系,在Elasticsearch中,有哪些方法可以用来让开发者解决索引之间一对多和多对多的关联关系的问题呢。

2023-10-23 22:31:07 816 1

原创 Elasticsearch的聚集统计,可以进行各种统计分析

Elasticsearch不仅是一个大数据搜索引擎,也是一个大数据分析引擎。它的聚集(aggregation)统计的REST端点可用于实现与统计分析有关的功能。Elasticsearch提供的聚集分为三大类。

2023-10-22 22:12:56 782

原创 使用Elasticsearch来进行简单的DDL搜索数据

说明:Elasticsearch提供了多种多样的搜索方式来满足不同使用场景的需求,我们可以使用Elasticsearch来进行各种复制的查询,进行数据的检索。

2023-10-15 16:27:03 619

原创 elasticsearch索引的基本操作以及别名的使用

在上篇文章写了关于elasticsearch索引的数据类型,这里就详细说下索引的增删改查以及其他的一些操作吧。

2023-10-09 22:50:01 679

原创 Elasticsearch使用mapping映射定义以及基本的数据类型

Elasticsearch的映射相当于数据库的数据字典,它定义了每个字段的名称和能够保存的数据类型,并且内置了20多种字段类型用于支持多种多样的结构化数据,这里仅介绍几种常用的字段类型,如需要了解全部的类型,请参考官方文档的有关介绍。

2023-10-07 22:03:43 442

原创 Elasticsearch(Es搜索(简单使用、全文查询、复合查询)、地理位置查询、特殊查询、聚合操作、桶聚合、管道聚合)

match_phrase_prefix 是针对分片级别的查询,假设 max_expansions 为 1,可能返回多个文档,但是只有一个词,这是我们预期的结果。有的时候实际返回结果和我们预期结果并不一致,原因在于这个查询是分片级别的,不同的分片确实只返回了一个词,但是结果可能来自不同的分片,所以最终会看到多个词。换句话说,上面的查询和下面的查询等价。即 term 查询,就是根据词去查询,查询指定字段中包含给定单词的文档,term 查询不被解析,只有搜索的词和文档中的词精确匹配,才会返回文档。

2023-09-24 22:53:57 2488

原创 docker上安装es

使用docker下载elasticsearch进行搜索,部署kibana容器进行api查询,使得能够操作es,以及下载默认的的elasticsearch分词器

2023-09-17 22:50:59 545

原创 rabbitmq+springboot实现幂等性操作

举个例子:一个消息M发送到了消息中间件,消息投递到了消费程序A,A接受到了消息,然后进行消费,但在消费到一半的时候程序重启了,这时候这个消息并没有标记为消费成功,这个消息还会继续投递给这个消费者,直到其消费成功了,消息中间件才会停止投递。我们利用消息id来判断消息是否已经消费过,如果该信息被消费过,那么消息表中已经 会有一条数据,由于消费时会先执行插入操作,此时会因为主键冲突无法重复插入,我们就利用这个原理来进行幂等的控制,消息内容可以用json格式来进行传输的。1.开启手动ack配置。

2023-09-03 17:16:04 1228

原创 RabbitMQ+springboot用延迟插件实现延迟消息的发送

延迟队列:其实就是死信队列中消息过期的特殊情况延迟队列应用场景:可以用死信队列来实现,不过死信队列要等上一个消息消费成功,才会进行下一个消息的消费,这时候就需要用到延迟插件了,不过要线在docker上装一个插件前置条件是在Docker中部署过RabbitMq。1、打开你的远程工具,首先查看docker中已有的容器,主要是为了查看rabbitmq的容器ID2、将本地下载好的压缩包传到服务器某文件夹下,然后将其复制到Docker中的RabbitMq容器中的plugins文件夹下。

2023-08-27 20:22:08 624

原创 Rabbitmq消息积压问题如何解决以及如何进行限流

一、增加处理能力优化系统架构、增加服务器资源、采用负载均衡等手段,以提高系统的处理能力和并发处理能力。通过增加服务器数量或者优化代码,确保系统能够及时处理所有的消息。二、异步处理将消息的处理过程设计为异步执行,即接收到消息立即返回响应,然后将消息放入队列中进行后续处理。这样可以避免同步请求的阻塞,提高系统的吞吐量和响应速度。三、消息分片如果消息体较大或者复杂,可以考虑将消息分片处理。将消息拆分为多个小的部分进行处理,减少单个消息的处理时间,从而提高整体处理能力。四、集群扩展。

2023-08-27 17:10:10 2419

原创 springboot整合rabbitmq死信队列

说道死信,可能大部分观众大姥爷会有懵逼的想法,什么是死信?死信队列,俗称DLX,翻译过来的名称为Dead Letter Exchange 死信交换机。当消息限定时间内未被消费,成为 Dead Message后,可以被重新发送到另一个交换机中,发挥其应有的价值!需要测试死信队列,则需要先梳理整体的思路,如可以采取如下方式进行配置:从上面的逻辑图中,可以发现大致的思路:.1. 消息队列分为正常交换机、正常消息队列;以及死信交换机和死信队列。

2023-08-27 15:25:55 654

原创 Spring Boot整合RabbitMQ之路由模式(Direct)

RabbitMQ中的路由模式(Direct模式)应该是在实际工作中运用的比较多的一种模式了,这个模式和发布与订阅模式的区别在于路由模式需要有一个routingKey,在配置上,交换机类型需要注入DirectExchange类型的交换机bean对象。在交换机和队列的绑定过程中,绑定关系需要在绑定一个路由key。由于在实际的工作中不大可能会用自动确认的模式,所以我们在整合路由模式的过程中,依然采用发送消息双确认机制和消费端手动确认的机制来保证消息的准确送达与消息防丢失。

2023-08-27 00:43:08 685

原创 Spring Boot整合RabbitMQ之发布与订阅模式

的模式中,常用的模式有:简单模式,发布与订阅模式,工作模式,路由模式,主题模式。

2023-08-20 16:10:01 843

原创 在docker下进行mysql的主从复制

二进制日志格式,有row、statement、mixed三种格式,row指的是把改变的内容复制过去,而不是把命令在从服务器上执行一遍,statement指的是在主服务器上执行的SQL语句,在从服务器上执行同样的语句。MySQL 主数据库端口为 3306,容器名称为 mysql-master,默认密码为 123456,-d 为后台运行。MySQL 从数据库端口为 3307,容器名称为 mysql-slave,默认密码为 123456,-d 为后台运行。# 同步的数据库名称,如果不配置,表示同步所有的库。

2023-08-15 22:01:05 308

原创 spring boot 整合 HttpClient实现线程池连接

HTTP 协议是现在 Internet 上使用得最多、最重要的协议,越来越多的 Java 应用程序需要直接通过 HTTP 协议来访问网络资源。虽然在 JDK 的 java net包中已经提供了访问 HTTP 协议的基本功能,但是对于大部分应用程序来说,JDK 库本身提供的功能还不够丰富和灵活。HttpClient 是 Apache Jakarta Common 下的子项目,用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本和建议。

2023-07-23 00:21:21 2223

原创 mycat 垂直分库与水平分表使用详解

在了解mycat的常用分片规则之前,有必要再对涉及到分片规则相关的几个配置文件做深入的了解,包括:schema.xml,server.xml,rule.xml等, 其中最核心的schema.xml文件是配置分片规则的入口文件,有必要对该配置文件中的关键参数做了解,且看下面这幅图,回顾下里面的配置;

2023-07-17 22:26:08 341

原创 orcale中触发器的用法以及详解

触发器是Oracle数据库的对象,类似存储过程和函数。存储过程和函数需要用户显示调用才执行,而触发器是由一个事件来触发运行,当某个事件发生时会自动地隐式运行,不能被显示的调用

2023-07-02 19:29:33 411

原创 orcale 存储过程详细教程以及pl/sql的语法

定义 描述表名%rowtype 记录型变量表名.列名%type 引用型变量:= 给变量赋予默认值into 把查询出来的数据进行赋值定义描述表名%rowtype记录型变量表名.列名%type引用型变量:=给变量赋予默认值into把查询出来的数据进行赋值当数据状态不对 或者 格式不对,可以手动抛出错误信息。raise_application_error(参数1,参数2):参数1为错误号码,取值范围:-20000到-20999 , 参数2为自定义的错误信息。

2023-07-01 23:25:27 721 1

原创 Apache Commons 中的 StringUtils 类提供了许多有用的字符串处理方法,你都知道吗?

Apache Commons 中的 StringUtils 类提供了许多有用的字符串处理方法,下面列举一些常用的:isEmpty 和 isNotEmpty:判断字符串是否为空或非空。trim 和 strip:去掉字符串的空格。join:将数组、集合或迭代器中的元素以指定的分隔符连接起来。substring 和 substringBefore/After/Between:截取子字符串。replace 和 replaceIgnoreCase:用指定的字符串替换文本。

2023-06-18 00:18:55 352

原创 HttpClient的主要功能以及基本使用

httpclient在第三方调用是非常关键的,学会这工具十分有用

2023-06-17 19:38:28 1187

原创 docker中运行PostgreSQL容器

5.要连接可以用navicat和pgadmin,pgadmin可能更好用一些,但是有些插件要自己安装,你可以将压缩包复制进容器中,然后按照liunx那种方式进行操作就可以了。该 docker run 命令将在 Docker 容器中创建一个正在运行的 PostgreSQL 数据库,-v表示将数据库卷挂载到容器下面的那个目录上面去了。我们如何在docker中运行postgresql容器,要进过如下几个步骤就可以了。要ports有映射才开启成功,如果不成功可以查看日志,我这里改了名字。让我们分解一下这个语法。

2023-06-11 16:35:07 4303

原创 使用imp和exp命令对orcale进行导入和导出

orcale进行数据的导入和导出

2023-06-10 23:24:26 602

原创 docker中orcale新建用户,以及权限授予

因为有新来员工要操作数据库的关系,我们一般不授予用户删除表的权限,或者因为用户要查一些数据,要授予用户查询视图的权限。

2023-06-05 22:27:59 544

原创 Shell脚本的使用和介绍

shell是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。

2023-03-11 21:51:15 783 1

原创 桥接模式

桥接(Bridge)是用于把抽象化与实现化解耦,使得二者可以独立变化。这种类型的设计模式属于结构型模式,它通过提供抽象化和实现化之间的桥接结构,来实现二者的解耦。1.实现,每个手机品牌,都可以其方法图示phone类,,并调用Brand里的方法package qiaojie;public class phone { private Brand brand; public phone(Brand brand) { super(); this.brand = brand;

2021-01-07 21:40:52 86

原创 redis对key的通用操作

1、key是一个字符串,通过key获取redis中保存的数据基本操作设置key,并用String进行赋值redis> set zhu deokzhu为键的名字,de为键的值获取键的值redis> get zhude查看key相似查找,查找某一类值的keyreis>keys zh*zhu查找某个指定的keyredis> keys zhu查看下面所有的keyredis>keys *查看key的类型redis>type zhu

2021-01-02 17:57:10 190

原创 java建造者模式详解

## 1、模式的定义与特点建造者(Builder)模式的定义:指将一个复杂对象的构造与它的表示分离,使同样的构建过程可以创建不同的表示,这样的设计模式被称为建造者模式。它是将一个复杂的对象分解为多个简单的对象,然后一步一步构建而成。它将变与不变相分离,即产品的组成部分是不变的,但每一部分是可以灵活选择的。2、图示类用来构建房子,新建实体类house,具体方法用抽象类HouseBuilder,然后用HighBuilding、CommonHouse来实现接口的方法,然后交给HouseDirection来指

2020-12-26 19:36:10 160

转载 JAVA中ByteArrayInputStream和ByteArrayOutputStream详解

1.ByteArrayInputStreamByteArrayInputStream中包含一个内部缓冲区,用来包含那些可能从流中读的字节数组。还有一个内部计数器来跟踪下一个将被读取的字节。ByteArrayInputStream只能用字节数组来进行构造。主要包括的方法有和InputStream类似,请点击这里,只是重写了抽象方法。下面是一段测试代码:import java.io.ByteArrayInputStream;import java.io.IOException;import java.

2020-12-24 19:50:35 1092 1

原创 java序列化和反序列化

1.什么是序列化和反序列化?(1)序列化就是把Java对象转化为字节流序列(二进制串)的过程(2)反序列化就是把字节流(二进制串)恢复为Java对象的过程二、序列化和反序列化的的作用对象的序列化主要有两种用途:1、 把对象的字节序列永久地保存到硬盘上,通常存放在一个文件中;2、 在网络上传送对象的字节序列。在很多应用中,需要对某些对象进行序列化,让它们离开内存空间,入住物理硬盘,以便长期保存。比如最常见的是Web服务器中的Session对象,当有 10万用户并发访问,就有可能出现10万个Ses

2020-12-22 17:44:29 62

原创 java对二叉树的前序、中序、后序遍历

一、前序遍历访问顺序:先根节点,再左子树,最后右子树二、中序遍历访问顺序:先左子树,再根节点,最后右子树;  三、后序遍历访问顺序:先左子树,再右子树,最后根节点构成二叉树的图片如下四、构建一个节点类,并实现遍历方法class HeroNode{ private int no; private String name; private HeroNode left; private HeroNode right; public int getNo() { return no;

2020-12-22 16:51:51 124

原创 ArrayList的详细讲解

1、ArrayList 定义: ArrayList 类是一个可以动态修改的数组,与普通数组的区别就是它是没有固定大小的限制,我们可以添加或删除元素。2、ArrayList是接口List的实现类,他的方法如下:查看API类在: https://www.runoob.com/manual/jdk11api/java.base/java/util/ArrayList.html3、ArrayList的简单使用,如增加元素,先new出一个方法,然后使用其方法就可以了import java.util.Arra

2020-12-21 17:13:53 4458

原创 单一职责原则

1 定义:就一个类而言,应该仅有一个引起它变化的原因。通俗的说,一个类只负责一项职责。2.作用:在某些时候,我们要进行职责扩散,就是因为某种原因,职责P被分化为粒度更细的职责P1和P2。这样有时候还要考虑一下其他的类的更改,这样会比较麻烦,比如 动物行走,而这个时候要细分了,比如这时候可以划分为了:爬行动物,水生动物,鸟类,行走的动物,他们的行走方式各不相同,改起来还要一个个去找前面类的名称之类的,及其不方便,这样便可使用单一职责原创了。代码如下,把动物行走拆分成陆生动物走路,水生动物游泳两个接口,并

2020-12-19 16:02:50 149 1

原创 sql的基本操作详解

一、 什么是视图?视图(view)是一种虚拟存在的表,是一个逻辑表,本身并不包含数据。作为一个select语句保存在数据字典中的。二、 为什么要用视图?视图隐藏了底层的表结构, 简化了数据访问操作, 客户端不再需要底层表的机构及其之间的关系。视图是一个查询结果集, 随实体数据表数据变化而变化。视图提供了一个统一访问的接口。(即可以允许用户通过视图访问数据的安全机制, 而不授予用户直接访问底层表的权限), 从而加强了安全性, 使用户只能看到视图所显示的数据。视图还可以被嵌套, 一个视图中可以嵌套另

2020-12-16 19:51:03 503 1

原创 mybatis框架内ResultHandler接口详解

接口代码如下:package org.apache.ibatis.session;public interface ResultHandler { void handleResult(ResultContext context);}可以看出创建了一个内部函数,是ResultContext的对象里面有四个方法package org.apache.ibatis.session;public interface ResultContext { Object getResultOb

2020-12-16 17:59:32 1164

原创 微信公众号获取accessToken

定义一个实体类,存放accessToken和过期时间package com.zhu.information;public class AccessToken { private String accessToken; private long expireTime; public String getAccessToken() { return accessToken; } public void setAccessToken(String accessToken) { this.a

2020-12-15 17:32:38 134

原创 java实现重载,重写与拷贝

重载(Overloading)方法重载是让类以统一的方式处理不同类型数据的一种手段。多个同名函数同时存在,具有不同的参数个数/类型。重载Overloading是一个类中多态性的一种表现。Java的方法重载,就是在类中可以创建多个方法,它们具有相同的名字,但具有不同的参数和不同的定义。调用方法时通过传递给它们的不同参数个数和参数类型来决定具体使用哪个方法, 这就是多态性。public class Dog { //构造函数 public Dog(){

2020-12-08 23:55:56 186

原创 @Configuration的简单使用

定义people实体类package com.zhu.Autos;public class people { private String name; private Integer age; public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getAge() { return age; } publi

2020-11-25 15:36:04 195

原创 AOP编程的简单实现

AOP是什么AOP是一种编程范式,提供从还有一个角度来考虑程序结构以完好面向对象编程(OOP)。AOP为开发人员提供了一种描写叙述横切关注点的机制,并可以自己主动将横切关注点织入到面向对象的软件系统中。从而实现了横切关注点的模块化。AOP可以将那些与业务无关,却为业务模块所共同调用的逻辑或责任。比如事务处理、日志管理、权限控制等。封装起来,便于降低系统的反复代码,降低模块间的耦合度,并有利于未来的可操作性和可维护性。AOP能干什么,也是AOP带来的优点减少模块的耦合度 使系统easy扩展 设计决.

2020-11-22 11:50:06 139

hower.html

叠加到一起的正方形,改变3d参数就可以旋转,并且可以变换面的颜色,有能力的,可以添加东西到盒子里,也可以设置边框和渐变颜色。

2019-12-10

空空如也

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

TA关注的人

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