自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 如何在前端展示后端返回的pdf Base64格式字符串

【代码】如何在前端展示后端返回的pdf Base64格式字符串。

2024-04-29 16:05:24 775

原创 读取Excel的工具类——ExcelKit

读取Excel的工具类——ExcelKit

2023-10-25 19:00:00 1079

原创 Elastic的下载

启动完ElasticSearch后,我们就可以通过访问上面的 192.168.1.200:9200 来访问我们的ElasticSearch了。输入第一次启动控制台输出的账号密码,即可。下载好ElasticSearch后,双击 bin 目录下的 elasticsearch.bat 文件即可启动我们本地的ElasticSearch。(自己的密码自己记得,应该每个人生成的初始化密码都是不一样的)对于这个问题,我的解决方法是,修改了config目录下的 elasticsearch.yml 文件。

2023-08-06 22:20:14 1030

原创 ElasticSearch简介

什么是ElasticSearch?ElasticSearch 是一款非常强大的开源搜索引擎,可以帮助我们从海量的数据中快速找到需要的内容。什么是ELK?ElasticSearch 结合 Kibana、Logstash、Beats,被成为 Elastic Stack(ELK,Elastic 技术栈)。ELK 被广泛应用在 日志数据分析、实时监控等领域。其中,ElasticSearch 是 Elastic Stack 的核心,主要负责存储、搜索和分析数据。

2023-02-14 22:00:01 620 1

原创 RabbitMQ消息转换器

发送成功后,我们获取我们的Message可以看到,此时的content_type是 application/json,而消息的可读性也变高了,细心的小伙伴应该也可以看到,这里需要的字节数也变少了。为了看我们发送到rabbitMq的消息的形式,这里,我们还是把消费者服务先停掉,然后重新运行我们刚才发送User对象的测试方法。编写完成后,我们运行该方法。因此,我们正常使用的情况下,我们不会使用默认的JDK的序列化,而是会用我们的。为了观察我们发送到RabbitMQ的对象,我们这里先把监听服务关掉。

2023-01-31 22:15:31 1704 2

原创 RabbitMQ第五个实操小案例——主题交换机(TopicExchange)

这种写法的好处就是,以后假如我们多了来自中国的其他东西,比如china.science,以及加拿大的新闻,我们的监听者都不需要修改任何代码。代码走一波,我们修改一下我们的发布者的代码。如此,如果我们现在要监听的是中国的所有消息,那么我们的routingKey就是。,如果我们想监听的是所有国家的新闻,那么我们的routingKey就是。可以看到,这里计算我们新加了其他的消息,我们的。的监听者成功监听了来自中国的新闻和天气预报。的监听者监听到了来自全世界的新闻。把消息路由到不同的队列。的所有消息,而我们的。

2023-01-02 15:17:22 678

原创 RabbitMQ第四个实操小案例——DirectExchange

编写完代码,我们重启一下我们的消费者服务,然后我们看一下我们的RabbitMQ。可以看到,此时我们的交换机中,绑定的有两个queue,其中queue1监听的RoutingKey有blue和red、queue2监听的RoutingKey有yellow和red。可以看到,direct.queue1 监听到的消息有 Hello, Red 和 Hello, Blue,而direct.queue2 监听到的消息有 Hello, Red 和 Hello, Yellow.

2022-11-17 22:07:21 852

原创 重启虚拟机启动Docker常见问题

虚拟机重启,Docker启动问题:1、Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?2、Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get "http://%2Fvar%2Frun%2Fdoc

2022-11-17 21:41:46 1664

原创 RabbitMQ第三个实操小案例——发布者/订阅者(Publish/Subscribe)、广播交换器(FanoutExchange)

*步骤二、在消费者服务中,编写两个消费者方法,分别监听 fanout.queue1 和 fanout.queue2。可以看到,只发布了一条消息,但是通过交换机发布给两个Queue后,我们消费者的两个方法都监听到了我们同一条消息。写完配置类,我们重启一下我们的消费者服务类,然后我们到RabbitMQ上看一下我们的交换机和队列。监听的方法,现在应该已经写得滚瓜烂熟了吧,这里就直接贴代码了。我们再看一下队列,可以看到,我们两个队列也都注册成功了。OK,这么解释肯定是不够的,下面我们就来说一下。

2022-11-12 21:02:19 1491

原创 RabbitMQ第二个实操小案例——WorkQueue

但是,如果现在我们的发布者他每秒发布100条数据,而我们的消费者每秒只能处理90条数据,那么每秒我们的队列将有10条数据被卡在队列中,而队列的容量是有限的,随着累计的时间长了,我们的消息也会因为来不及处理,导致后面发送的消息没来得及被接收就被销毁掉了。看到这里,有些人可能会好奇,怎么消费者1执行的都是奇数的消息,消费者2执行的都是偶数的消息,其实这个不是偶然哈,这个是必然的,现在我们把消费者1的睡眠时间改成5,消费者2的睡眠时间改为50,再看一眼结果。然后,我们编写我们的两个消费者。废话少说,代码走起!

2022-11-12 17:00:55 1004

原创 lombok插件各个注解介绍

打开IDEA,点击File 》 Settings…然后点击Plugins(插件),在Marketplace里面搜索 Lombok 下载即可。(这里我因为已经下载好了,所以他存放的位置是 Installed)下载完成后,我们只需要在我们的项目中引入依赖就可以使用啦!

2022-11-08 14:17:18 716

原创 RabbitMQ第一个实操小案例

然后,我们创建两个Module,一个叫publisher(发布者),一个叫consumer(消费者),为了尽可能地干净,我用IDEA,直接创建了两个空白的Maven工程。这里,我又跑去发送了两次,可以看到,我们都可以正常的接收到消息。下面,我们来写一个最简单的实例,首先,创建一个空白的Module作为父工程。里面一共有7个Demo,下面我们就根据他给的Demo进行实操,熟悉一下我们的RabbitMq。前面的两种,是最基本的,只有发布者和订阅者和一个队列,并没有我们的交换机。OK,发送我们会了,那么接收呢?

2022-11-07 21:22:42 562

原创 什么是RabbitMQ

同步通讯:就像打电话,需要实时响应。异步通信:就像发微信,不需要马上回复。两种方式各有优劣,打电话可以立即得到响应,但是你却不能跟多个人同时通话。发微信可以同时与多个人收发信息,但是往往响应会有延迟。学SpringCloud的时候,我们的Feign 其实就是同步通讯的,他其实有以下这几个缺点耦合度高:(每次有新的需求,都需要更改代码)性能下降:(消费者需要等待提供者响应,如果调用链过长,那么响应的时间等于每次调用的时间之和)资源浪费。

2022-09-28 23:04:27 1742

原创 Docker镜像仓库

命令中挂载了一个数据卷registry-data到容器内的/var/lib/registry 目录,这是私有镜像库存放数据的目录。此时,我们使用我们的服务器的ip地址加端口号8080,即可看到我们私有的镜像仓库。那么,怎么往我们私有的镜像仓库拉取镜像和推送镜像呢?然后使用docker-compose up -d启动即可。可以查看当前私有镜像服务中包含的镜像。基于Docker官方提供的。

2022-09-21 23:31:06 1367

转载 数据库中索引会失效的几种情况(oracle)

创建Oracle 索引的目的是为了避免全表扫描数据,提高查询效率,但是如果sql语句写的不好致使索引失效,反而会影响数据查询效率。众所周知,添加索引的字段必需要在where条件后适当使用才会生效,如果连查询条件都没有,那肯定不会用到索引的。如果没有使用基于函数的索引,那么 where 子句中对存在索引的列使用函数时,会使优化器忽略掉这些索引。但是把函数应用在条件上,索引是可以生效的,把上面的语句改成下面的语句,就可以通过索引进行查找。不等于操作包括:,!

2022-09-05 22:39:45 3553

原创 Docker的自定义镜像

回顾一下,什么是镜像?镜像是将应用程序及其所需要的系统函数库、环境、依赖、配置打包而成。镜像的结构是分层的,每一层称为一个Layer。其中最底层包含基本的系统函数库、环境变量、文件系统 的层我们称之为BaseImage层最顶层作为镜像的入口,是镜像中应用启动的命令,我们称之为Entrypoint。其他在BaseImage层基础上添加的依赖、安装程序以及完成整个应用的安装和配置,处于BaseImage层和Entrypoint层之间,每一层我们称为一个Layer。下面直接来一个实例(...

2022-08-29 22:30:04 1187

原创 Docker的数据卷

而我的Nginx容器的html目录也映射到他上面,此时,我们修改本地的html目录下的文件或者修改Nginx容器下的html目录中的文件,另一个地方的文件也会发生响应的改变。首先,创建我们的Nginx容器,并将其 /usr/share/nginx/html 目录挂载到html数据卷。之后,我们就可以直接进入刚才说的数据卷映射的宿主机的html目录去修改我们的index.html文件了。然后,我们看一下我们的数据卷 html 的详细信息:(框中部分就是他的宿主机的位置了)。...

2022-08-29 22:15:06 664

原创 Docker的基本操作

例如,如果你的宿主机的ip地址是 192.168.10.11,那么你就访问 192.168.10.11:8090,如果看到这个页面,那么就说明访问成功了。文档告诉我们,docker save 后面可以跟options,而该options的可选项就是最下面的 Options,这里只有一个。拷贝我们的nginx1.22镜像文件成一个压缩包。我们要启动Nginx容器,我们就找到Nginx镜像,然后再到它里面,往下拉,找到标题为。,里面的版本都是可以指定下载的,这里我们指定一下,下载那个1.22版本。...

2022-08-29 22:14:03 567

原创 Docker的安装(以CentOS 7为例)

首先,我们需要联网,并下载我们的工具——yum。等再次看到Complete就表示下载成功啦。下载完成后,我们来启动我们的docker。

2022-08-29 21:57:37 464 1

原创 什么是Docker

微服务虽然具备各种各样的优势,但服务的拆分通用给部署带来了很大的麻烦。特别是一些大型项目组件较多,运行环境也较为复杂,部署时会碰到一些问题:依赖关系复杂,容易出现兼容性问题(分布式系统中,依赖的组件非常多,不同组件之间部署时往往会产生一些冲突。)开发、测试、生产环境有差异(在数百上千台服务中重复部署,环境不一定一致,会遇到各种问题)例如一个项目中,部署时需要依赖于node.js、Redis、RabbitMQ、MySQL等,这些服务部署时所需要的函数库、依赖项各不相同,甚至会有冲突。...

2022-08-29 21:56:23 325

原创 SpringCloud——网关Gateway

Spring Cloud Gateway 是 Spring Cloud 的一个全新项目,该项目是基于 Spring 5.0,Spring Boot 2.0 和 ProjectReactor 等响应式编程和事件流技术开发的网关,它旨在为微服务架构提供一种简单有效的统一的 API 路由管理方式。那么,我们为什么需要网关呢?我们先说一下,在前面的项目中,我们的系统是怎么玩的(架构)。1、首先,我们的系统分成了很多个微服务,例如Order和User。...

2022-08-07 22:35:08 1856 2

原创 SpringCloud——Http客户端Feign

类型作用说明修改日志级别包含四种不同的级别响应结果的解析器http远程调用的结果做解析,例如解析json字符串为java对象请求参数编码将请求参数编码,便于通过http请求发送支持的注解格式默认是SpringMVC的注解失败重试机制请求失败的重试机制,默认是没有,不过会使用Ribbon的重试注意一般情况下,默认值就能满足我们使用,如果要自定义时,只需要创建自定义的@Bean覆盖默认Bean即可。NONE不记录任何日志信息,这是默认值。BASIC方法一、在配置文件中进行配置。...

2022-07-31 18:29:21 804

原创 SpringCloud——注册中心nacos

Nacos是阿里巴巴的产品,也是目前SpringCloud的一个组件,相比Eureka而言,功能更加丰富,在国内受欢迎的程度也更高。Nacos是需要下载的,Windows下载教程如下这是我在码云看到的一个热心网友分享的一个镜像,下载起来比较快,比起直接用家里的网络登录github快多了。)进去后,我们拉到最下面,下载Windows版本的安装包,下载完成后解压到本地。我解压的位置是Dnacos默认占用的端口号是接下来,我们讲一下怎么简单的使用Nacos进行服务的注册。...

2022-07-31 18:21:48 1044

原创 SpringCloud——负载均衡Ribbon

关于上一节说到的负载均衡,SpringCloud底层其实是利用了一个名为Ribbon的组件来实现的。他的流程如下我们发送的请求叫,这个请求会被我们的Ribbon接收,然后Ribbon向Eureka-server服务端请求名为user的服务,Eureka-server就把该服务所对应的服务列表(ip+端口号)返回给Ribbon,然后Ribbon使用负载均衡算法,轮询某一台服务器进行访问,再把结果响应给order。...

2022-07-31 16:35:18 393

原创 SpringCloud——注册中心Eureka

学习Eureka之前,我们先来说一下微服务中常用的两个术语。中,被其他微服务调用的服务。(提供接口给其他服务)中,调用其他服务的服务。(调用其他服务的接口)切记,提供者和消费者是针对进行划分的。前面的案例中,order就是消费者,user就是提供者。注意一个服务,既可以是消费者,也可以是提供者,当然也可以同时是提供者,也是消费者。比如,A调用B,B调用C,那么B对A而言就是提供者,B对C而言,就是消费者。...

2022-07-31 16:28:52 203

原创 SpringCloud——什么是微服务

*单体架构**将业务的所有功能集中在一个项目进行开发,打成一个包进行部署。优点1、架构简单2、部署成本低3、适合小型项目缺点1、耦合度高2、不利于大型项目的开发**分布式架构**根据业务功能对系统进行拆分,每个业务模块作为独立项目开发,称为一个服务。优点1、降低服务藕合2、有利于服务升级拓展。特征1、单一职责拆分粒度更小,每一个服务对应唯一的业务功能,做到单一职责,避免重复业务开发。2、面向服务对外暴露业务接口3、自治团队独立、技术独立、数据独立、部署独立。...

2022-07-31 16:17:53 252

原创 Vue使用iview组件库

步骤一、使用npm下载ivew组件库步骤二、在main.js中配置iview步骤三、使用iview组件在官网随便找一个来看看效果。这里以官网的按钮为例:我们直接抄他代码就完事了,比如,在我们的App.vue里面我们打算加一个蓝色的按钮和红色的按钮,那么就是:效果如下:其他的组件也是这么扣,然后我们再给他写个样式啥的,这不就搞定了嘛。...

2022-07-11 13:24:04 3080

原创 Vue脚手架(快速搭建Vue工程)

脚手架,即 预先定义好的目录结构及基础代码。而Vue的脚手架是Vue-cli,脚手架能帮助我们快速生成一个Vue的项目模板。他的主要功能如下:环境准备:node.js(>=6.x,首选8.x) + git然后我们就可以下载我们的vue-cli了。在cmd中输入:(-g表示全局安装,也就是global的缩写),npm记得设置淘宝的镜像源,会比较快。查看自己是否已经设置了淘宝的镜像源,请在cmd输入:如果显示结果如上,那么就说明已经设置过了,如果不是,那么请使用以下语句进行配置:配置完成后,我们就可以使用以下

2022-07-11 13:08:18 797

原创 使用BigDecimal的坑

BigDecimal常见的四个坑

2022-07-01 11:53:21 1173

原创 Windows下载指定版本的JDK

windows下载指定版本的jdk教程

2022-06-22 00:11:29 827

原创 Mysql求取超过经理收入的员工信息

题目:现有Employee表如下:员工和经理都有自己的Id,而员工特有一个ManagerId对应的是经理的Id。先要编写一段mysql代码查询员工收入超过他们经理的员工的姓名。例如上表我们应该输出的结果如下:解题思路:这里有个比较需要注意的点就是,要用两张Employee表来进行查询。我们给第一张Employee表取名为A,第二张取名为B。通过查询每个员工的经理信息(A.ManagerId = B.Id),并进行对比操作(A.Salary > B.Salary)。源码如下:select

2022-02-11 02:52:32 787

原创 Mysql求第N高的薪水

Mysql求第N高的薪水先来个简单的:假如有表如下:我们来一个求最高的薪水,那么代码其实应该一下子就能写出来:select salaryfrom EmployeeORDER BY salary descLIMIT 0,1那如果是求第二高的呢?select distinct salaryfrom EmployeeORDER BY salary descLIMIT 1,1这里有个点需要注意一下就是,假如前两个最高的值都为100,那么,逻辑上我们并不能将第二个100看成第二高,而是

2022-02-10 00:50:52 896

原创 系统的直接内存

文章目录直接内存定义直接内存的基本使用内存溢出直接内存的释放及其原理直接内存定义直接内存(Direct Memory):直接内存是系统的直接内存,常见于NIO操作时,用于数据缓冲区。分配回收成本较高,但读写性能高,不受JVM内存回收管理。下面,我们说一下啊为什么使用直接内存读写的性能会比较高。请看下图:这里我们知道,我们的Java是运行在我们的虚拟机中的,通过虚拟机命令再去间接调用系统的内核函数,即我们上面看到的用户态跟内核态。(可以简单想象成,Java代码运行后调用本地方法区的代码,然后本地方

2022-01-28 23:57:32 1226

原创 StringTable的性能调优

文章目录StringTable的性能调优1、通过-XX:StringTableSize=桶个数调整2、考虑是否将字符串对象入池StringTable的性能调优1、通过-XX:StringTableSize=桶个数调整我们前面说过StringTable是靠我们的HashTable来实现的。即,当我们的空间足够大的时候,我们的数据就会比较分散,查询的效率也会因此降低,反之,当我们的空间比较小的时候,我们的数据就会比较集中,查询的效率也会因此提高。当然了,StringTable 的空间大小并不是越小越好,太

2022-01-26 01:07:21 560

原创 JVM的内存结构(下)——堆和方法区

文章目录JVM的内存结构4、堆4.1、定义4.2、内存溢出4.3、内存诊断5、方法区5.1、定义5.2、组成5.3、内存溢出5.4、运行时常量池5.5、StringTable(串池)JVM的内存结构4、堆4.1、定义堆(Heap):通过 new 关键字创建出来的对象都会使用堆内存。特点:1、线程共享,堆中对象都需要考虑线程安全问题2、有垃圾回收机制4.2、内存溢出废话不多说,代码来一波。先来一个堆内存溢出的例子:import java.util.ArrayList;import jav

2022-01-21 19:05:11 1035

原创 JVM的内存结构(上)——程序计数器、虚拟机栈、本地方法栈

文章目录JVM的内存结构1、程序计数器(PC Register)2、虚拟机栈(JVM Stacks)2.1、定义2.2、栈内存溢出2.3、线程运行诊断3、本地方法栈(Native Method Stacks)JVM的内存结构1、程序计数器(PC Register)作用:记住下一条jvm指令的执行地址如下图:我们打的每一条java代码,其实都是在底层执行JVM的指令。每条指令都有其对应的地址,前面说过了,解释器的作用就是逐条执行我们的代码(JVM指令),那么,解释器怎么知道下一条要执行的指令是哪条呢?

2022-01-21 18:32:23 1087

原创 JVM简介

文章目录JVM简介1、什么是JVM2、JVM的组成部分JVM简介1、什么是JVMJVM:Java Virtual Machine(java虚拟机),是java的运行环境。(java二进制字节码的运行环境)使用JVM的好处是:1、跨平台2、自动内存管理与垃圾回收机制3、多态那么,jvm、 jre 和 jdk 的区别是啥呢?请看下图:普通用户只是运行java程序的话,只需要装jre即可。开发人员则需要安装jdk。要想长远发展与更好地开发,我们就得学好我们的JVM,理解底层的实现原理。这里

2022-01-21 18:13:50 296

原创 将SpringBoot项目部署到腾讯云

文章目录将SpringBoot项目部署到腾讯云1、下载MySql2、导入sql文件3、下载JDK4、将本地程序打包成jar5、腾讯云部署jar将SpringBoot项目部署到腾讯云注意:1、如果已经下载好MySql和JDK,可以直接跳过1、3步骤。但是不要忘记步骤2哦。2、如果已经有Mysql但是想要换版本号,切记不要直接下载,要先把旧版本的Mysql删除干净再重新下载。1、下载MySql这里,我们将mysql下载到我们的/usr/local/目录下。cd /usr/localmkdir

2022-01-21 15:54:26 3912 9

原创 Mysql将Windows数据库转移到Linux

这里我们借助Navicat工具进行演示:使用工具Navicat连接上数据库之后,右键选择我们想要导出的数据库,选择Dump SQL File…选择一个路径导出sql文件。(我把他导出到了桌面,比较好找)导出成功后,我们可以在桌面看到一个叫heartbay.sql的文件,通过XShell直接拖拉到我们的云服务器(这里我放的位置是/root/heartbay/ 目录。然后我们创建一个同名的数据库文件,比如我的叫heartbay。mysql -u root -p#输入密码create databa

2022-01-21 14:43:02 1519

原创 Linux修改mysql密码

Linux下载mysql后,会给一个初试账号和密码。初始账号默认为root,初试密码是随机生成的,我们可以看一下:cat /var/log/mysqld.log | grep password这里我的初始密码是:wnw=PjFA.2b.(最后这个点也是密码的一部分)我们登录我们的mysql。mysql -u root -p #会提示输入密码#输入我们的密码(wnw=PjFA.2b.)然后我们就可以修改我们的初始密码了。(新密码必须包含大小写字母、数字和特殊符号,缺一不可)ALT

2022-01-21 14:40:56 1352

空空如也

空空如也

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

TA关注的人

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