自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 mysql 是否包含 返回索引 截取字符串

MySQL有提供一个字符串函数find_in_set(str1,str2)函数,用于返回str2中str1所在的位置索引,如果找到了,则返回true(1),否则返回false(0),其中str2必须以半角符号的逗号【,】分割开。MySQL还提供一个字符串函数locate(substr,str)函数,用于返回str中substr所在的位置索引,如果找到了,则返回一个大于0的数,否则返回0。匹配的字符串作为第一参数时,适用的场景是找到hobby中存在yanggb的记录(hobby为多个以逗号隔开的值)。

2023-06-05 14:29:07 735

原创 es7.17版本之后的查询警告提示解决办法

打开es安装路径,打开config文件夹,编辑。elasticsearch.yml,在里面添加。然后保存退出,重启es,问题解决。

2023-02-20 15:10:24 2014 1

原创 SpringCloud保姆级搭建教程六---ElasticSearch

打开idea,open这个ik分词器的项目,这里要注意一个坑,先打开pom.xml文件,修改一个版本号,这里虽然下载的7.17.3版本的ik分词器,但是在pom.xml中有一个es的版本号并不是这个,如果这里不改,后面仍旧会报错。此时此刻,它是不能直接用的,需要编译打包才可以,我这里是用idea打开的,因为我用mvn命令失败了,应该是我没配置的原因。2、下载好kibana之后,同样的,解压,然后打开文件夹的这个路径,双击kibana.bat。然后要做的就是,在es的这个目录下创建的一个名叫ik的空文件夹。

2023-02-20 14:18:04 878

原创 SpringCloud保姆级搭建教程五---Redis

安装过程就不说了,打开之后,点击连接到redis服务器,输入链接地址和redis的端口号,6379就可以连接redis了。1、首先,要先安装redis到电脑上,这里依然是在windows上演示,之后我会专门写一整套,在服务器上怎么安装各类软件并部署的教程。首先,这个和微服务没有直接的关系,只是在代码开发当中要使用的一个工具而已,为了提高这个系统的性能,加快查询效率等方面而使用它。下载之后,放到一个指定的文件夹,解压,并启动,双击reids-server.exe就算是redis服务端启动了。

2023-02-15 10:30:28 803

原创 Java和JavaScript的关系

他俩的关系就是,没有关系。就相当于周杰和周杰伦。

2023-02-13 14:38:05 105

原创 SpringCloud保姆级搭建教程四---Gateway

6、接下来就是测试呗,配置文件中的路由部分,也就是routes下面写的,已经将bigson和smallson绑定在了gateway上,现在只需要将端口号改成gateway的,就能访问到这俩服务的接口了(都显示小儿子是因为上一节的feign中,bigson调用了smallson的方法)我这里是用的这几个版本,我也不知道对不对,反正就是不报错,在我这,不错就是对。注意缩进哈,这个就是局部过滤器,只给访问bigson的请求,添加请求头和响应头。答,系统保安,所有想访问系统的请求都要通过gateway。

2023-02-09 15:03:59 449

原创 SpringCloud保姆级搭建教程三---Feign

这个时候我们要明白,我们现在在子工程里面加的所有依赖,都是父工程传下来的,所以,这里需要加版本号是因为父工程添加的依赖中并没有feign,所以,我们要去父工程中添加 springcloud的依赖。这里,又有注意点了。所以,首先,在服务A中添加feign的依赖,我这里就还用之前的bigSon去调用smallSon中的方法,但是发现在bigSon中添加Feign依赖的时候,需要我加版本号,这就不对劲了。4、这时候可以启动起来,在浏览器中测试,访问一下,能看到返回的我是大儿子,我是小儿子,就代表成功了。

2023-02-09 11:33:36 480

原创 SpringCloud保姆级搭建教程二---Nacos下载与注册

找一个版本,找这个Assets点开,linux下载tar.gz后缀,windows下载.zip后缀。2、我这里用的是windows的2.1.1版本,下载之后解压,放到专属文件夹中,防止以后找不到。进入nacos的bin文件夹,然后打开cmd窗口,不知道怎么打开就看图,写进去cmd按回车就行。12、点击服务列表,查看public下,出现了我们创建的两个微服务,证明,我们已经成功了。9、给两个子服务添加nacos配置文件,一模一样,注意格式和缩进。5、在浏览器中输入,上图中的地址。6、打开界面,就代表成功了。

2023-02-08 11:39:43 315

原创 springcloud保姆级搭建教程一----项目搭建

一、springboot 和 springcloud alibaba 的版本号一定要对应,用版本号相接近的,比如都是2.1.*。13、按照上面的子项目创建步骤,再创建一个一模一样的,只不过名字不一样,端口号随便换一下,应用名随便改一下,实在不会改,看图照抄。4、本身springcloud其实就是父项目和子项目,子项目就是我们说的微服务。12、创建包,创建启动类,写启动类里面的方法(要是不会,就照抄我的)5、添加最最基础依赖,看版本,以及下面的。6、创建模块,也就是子项目,也就是微服务。

2023-02-08 11:37:26 461

原创 Java面试题(30)-java中如何避免死锁

2、避免死锁在资源分配过程中,使用某种方法避免系统进入不安全的状态,从而避免发生死锁。3、检测死锁允许死锁的发生,但是通过系统的检测之后,采取一些措施,将死锁清除掉。2、请求与保持条件一个进程因请求资源而阻塞时,对已获得的资源保持不放。3、不剥夺条件进程已获得的资源,在未使用完之前,不能进行强行剥夺。4、循环等待条件若干进程之间形成一种头尾相接的循环等待资源关系。1、预防死锁通过设置一些限制条件,去破坏产生死锁的必要条件。4、解除死锁该方法与检测死锁配合使用。...

2022-07-28 21:21:06 872

原创 Java面试题(29)-java分为什么区,每个区都是干嘛的

2、堆(heap)被所有的线程共享,存放对象示例以及数组,java堆是GC的主要区域。1·、方法区(method)被所有的线程共享,方法去包含所有的类信息和静态变量。3、栈(stack)每个线程包含一个栈区,栈中保存一些局部变量等。4、程序计数器是当前现成执行的字节码的行指示器。...

2022-07-28 21:14:03 167

原创 Java面试题(28)-HashMap和Hashtable的区别

HashMap在多线程环境下线程不安全,Hashtable线程安全,如果要使用HashMap的话就可以使用concurrent并发包下的concurrentHashMap。HashMap的扩容方式都是以2的幂次进行扩容的,而Hashtable是以原容量的2倍+1进行扩容的。,HashMap允许存储null值,Hashtable不允许存储null值,否则会报控制指针。HashMap不包含contains方法,Hashtable不包含contains方法。Hashtable继承的Dictionary类。...

2022-07-28 16:39:03 207

原创 Java面试题(27)-谈谈垃圾回收机制(GC)

新生代这边用到的垃圾清理算法是复制算法,那么新创建出来的对象都会被保存在幸存者这里,那么在垃圾回收的时候,会用到可达性分析,判断哪个需要被清理,并进行标记,然后把没有标记的复制到from区域,然后将幸存者和to区域的所有对象全部删除,清除完之后会把from和to区域中的内容调换,也就是上一轮清理的幸存者到了to区域,然后这两个幸存者的年龄加1,。标记整理呢,就是想删除哪个,就对其标记,然后删除,然后对内存结构进行整理,这样就没有内存空洞了,好处就是没有内存空洞了,问题就是多了整理这一步,速度比较慢。...

2022-07-24 22:52:57 318

原创 Java面试题(26)-缓存三大问题雪崩,击穿和穿透

和总的来说,这三个问题都是因为高并发导致的那么雪崩就是因为海量请求,导致缓存宕机,然后间接导致数据库和程序代码都崩坏。总结导致程序中的各个环节连锁崩溃,就是雪崩。那么解决的方法,就是比如说在我们的网关做,或者或者使用别的方法进行,比如关键词就是,这个就是针对单个功能进行多次请求,比如双十一,或者12306这种会在瞬间有多次请求,那么正好在这个时间点,了,导致本来应该缓存处理的请求,到了数据库的层面,直接了,就是我们的击穿。解决办法呢也是可以通过解决的,或者。......

2022-07-24 22:24:35 1023 1

原创 Java面试题(25)乐观锁和悲观锁

但是,如果修改回来对比的时候,发现快照和现在的数据不相同,那么就证明在我们修改这个数据的时候,有别的乱臣贼子修改了这个数据,那么我们也是有脾气的,我们就不做修改了,直接报错,或者重试。),然后再去进行操作,等操作完成之后,拿快照和现在的数据进行对比,如果快照和现在的数据相同,就证明在这期间没有别人过来修改这个数据,那么我就可以进行更新操作了。乐观锁呢就不一样,乐观锁就和悲观锁相反了,人家比较自信,人家就不锁,但是,人家也不傻,他会生成一个类似于快照的东西(这个生成类似于快照的东西,就是用到了我们的。...

2022-07-24 22:01:55 282

原创 kafka总结概述

消息中间件对比特性ActiveMQRabbitMQRocketMQKafka开发语言javaerlangjavascala单机吞吐量万级万级10万级100万级时效性msusmsms级以内可用性高(主从)高(主从)非常高(分布式)非常高(分布式)功能特性成熟的产品、较全的文档、各种协议支持好并发能力强、性能好、延迟低MQ功能比较完善,扩展性佳只支持主要的MQ功能,主要应用于大数据领域消息中间件对比-选择建议消息中间件建议Kafkakafka介绍。...

2022-07-24 16:54:07 803

原创 FreeMaker模板引擎

FreeMarker是一款模板引擎即一种基于模板和要改变的数据,并用来生成输出文本(HTML网页,电子邮件,配置文件,源代码等)的通用工具。它不是面向最终用户的,而是一个Java类库,是一款程序员可以嵌入他们所开发产品的组件。模板编写为FreeMarkerTemplateLanguage(FTL)。它是简单的,专用的语言,不是像PHP那样成熟的编程语言。那就意味着要准备数据在真实编程语言中来显示,比如数据库查询和业务运算,之后模板显示已经准备好的数据。常用的java模板引擎还有哪些?...

2022-07-24 10:51:29 3042

原创 Mysql主从复制

MySQL数据库默认是支持主从复制的,底层基于MySQL数据库自带的二进制日志功能实现。也称为binlog,这是MySQL自带的一种日志功能,它会记录下所有的增删改语句,但是不记录查询语句。MySQL的主从复制其实就是由主库生成binlog,里面记录用户对数据库产生影响的操作。从库负责读取这个日志,并进行解析得到对应的SQL语句,然后在自己所在的服务器上执行,就可以得到跟主库一致的数据了。master将数据变更写入二进制日志slave将master的二进制日志拷贝到它的中继日志(relaylog)...

2022-07-22 18:26:33 786 3

原创 Seata分布式事务

首先要分析分布式事务的话,就要明白什么是分布式事务嘛,那么分布式事务就是在微服务中,多个微服务做同一个业务的时候,每个微服务要做到同成功同失败,那么这个就是分布式事务嘛,那通过什么玩意来达到这个目的呢,就是我们今天的主角,Seata!!!!本地事务,也就是传统的单机事务。在传统数据库事务中,必须要满足四个原则:分布式事务,就是指不是在单个服务或单个数据库架构下,产生的事务,例如:跨数据源的分布式事务跨服务的分布式事务综合情况在数据库水平拆分、服务垂直拆分之后,一个业务操作通常要跨多个数据库、服务才能完成。例

2022-07-13 21:59:22 2130 2

原创 RabbitMQ学习总结

微服务间通讯有同步和异步两种方式:同步通讯:就像打电话,需要实时响应异步通讯:就像发微信,不需要马上回复两种方式各有优劣,打电话可以立即得到响应,但是你却不能跟多个人同时通话。发送消息可以同时与多个人沟通,但是往往响应会有延迟微服务间基于Feign的调用就属于同步方式,它存在一些问题:耦合度高:每次加入新的需求,都要修改原来的代码性能下降:调用者需要等待服务提供者响应,如果调用链过长则响应时间等于每次调用的时间之和资源浪费:调用链中的每个服务在等待响应过程中,不能释放请求占用的资源,高并发场景下会极度浪费系

2022-07-13 16:53:41 251

原创 Docker学习总结

docker其实就是帮助我们在linux上安装各种软件的小帮手。我是这么认为的哈,他里面引入了两个概念,镜像和容器,镜像就是我们所要安装的软件,只不过是docker所需要的格式,容器就是镜像运行的地方。相当于一个小型linux系统。- Docker是一个开源的应用容器引擎,官网:https://www.docker.com- 诞生于2013年初,基于Go语言实现, dotCloud公司出品(后改名为Docker Inc)- Docker可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然

2022-07-13 16:38:21 962

原创 ElasticSearch 搜索引擎

简称es,是类似于mysql但是专注于搜索的一种数据库。在elastic stack中占据重要地位。 我们的数据库都是正向索引,比如根据id查询数据,那么倒排索引是将关键字进行分词,然后将词条和id保存在一张表中,不同数据分词后有相同的词条的话,就会记录在同一条数据中,并且把id放在一个字段,搜索的时候根据词条先搜索出符合的id,然后根据id查询数据。 下载地址:GitHub - medcl/elasticsearch-analysis-ik: The IK Analysis plugin integra

2022-07-08 23:00:48 1279

原创 Sentinel 微服务保护机制

Sentinel的主要作用就是保护微服务。微服务常见的问题就是雪崩问题:那么什么是雪崩问题呢?简单来说,就是相互依赖的服务中,有其中一方不可用,导致依赖它的一方,因为请求得不到回应,导致请求一直堵塞,当达到了服务的临界值后,tomcat的资源被耗尽,被请求堵塞的服务就会也变成不可用,同样的道理,就会有越来越多的服务损坏,造成不可挽回的微服务崩塌损坏的现象,和自然界的雪崩道理相同,这就是服务雪崩。 那么遇到这种雪崩问题,我们的微服务集群就会彻底崩塌不可使用,为了避免这种情况的发生,大佬们就写出了Hystrix

2022-07-07 18:01:22 876

原创 Jmeter快速入门

Jmeter依赖于JDK,所以必须确保当前计算机上已经安装了JDK,并且配置了环境变量。可以Apache Jmeter官网下载,地址:Apache JMeter - Download Apache JMeter因为下载的是zip包,解压缩即可使用,目录结构如下: 其中的bin目录就是执行的脚本,其中包含启动脚本: 双击即可运行,但是有两点注意:启动速度比较慢,要耐心等待启动后黑窗口不能关闭,否则Jmeter也跟着关闭了默认Jmeter的语言是英文,需要设置: 效果: 注意:上面的配置只能保证本次运行是中文

2022-07-07 16:06:01 150

原创 Java面试题(24)-单例模式的几种写法

第一种写法:懒汉式。顾名思义,很" 懒惰 ",只有实例要用到的时候才创建。记得加上synchronized,不然会有线程安全的问题,比如当有多个线程同时调用getInstance()的时候,就会创建多个实例。加synchronized,可以用于多线程。不加synchronized,不可以用于多线程,只能用于单线程,不然会有线程安全问题。第二种写法:饿汉式。顾名思义,很" 饥饿 ",所以第一时间就是去找吃的,也就是第一时间创建实例。好处:因为没有加synchronized,也就是没有加锁,所以执行效率比懒汉式

2022-06-30 17:55:10 171

原创 服务网关--Gateway

为什么需要网关呢?对微服务的请求不能毫无限制,所以就需要一个东西对其进行筛选,限制等等,那么网关就干的这个事。可以对其进行身份认证和权限校验、服务路由、负载均衡以及请求限流等等操作。 搭建网关的步骤: 编写好启动类之后,配置application.yml 网关搭建总结: SpringCloud Gateway包括许多内置的断言工厂,所有这些断言都与HTTP请求的不同属性匹配。具体如下: 简单的查看几个断言的使用(实际上就是满足一个条件,满足就通过,不满足就不通过) 最后那几个就是断言。过滤器

2022-06-27 16:28:45 849 2

原创 远程调用--Feign

之前使用RestTemplate进行服务之间的调用,在代码风格上来看不太统一和美观,存在代码可读性差,编程体验不统一参数复杂URL难以维护的问题,Feign就可以解决这个问题。Feign是一个声明式的http客户端,它使得调用远程服务就像调用本地服务一样简单,只需要创建一个接口并添加一个注解即可。其作用就是帮助我们优雅的实现http请求的发送,解决上面提到的问题。而且Feign默认集成了Ribbon,所以使用Feign默认就实现了负载均衡的效果。我们在消费者这一方,也就是调用其他服务的这一方进行Feign的

2022-06-27 15:52:08 243

原创 服务治理-Nacos

Nacos下载: mac下第一个 windows下的二个下载地址:https://github.com/alibaba/nacos/releaseshttps://github.com/alibaba/nacos/releases 进入安装路径的bin目录,通过cmd命令行输入即可启动访问控制台现实的nacos管理页面,完成登录: 那么之前我们是用的Eureka进行的服务注册,现在使用Nacos进行相同的功能使用。修改提供者和消费者中的依赖和配置文件。① 在pom文件中引入nacos-disc

2022-06-27 12:53:03 983 2

原创 服务治理--Eureka

将调用地址写死势必会造成一些问题,所以要想办法进行优化,那么就出现了服务治理,也就是Eureka.服务治理是微服务架构中最核心最基本的模块。用于实现各个微服务的自动化服务注册与服务发现。这里引入两个概念:提供者和消费者。每个微服务都可以是消费者也可以是提供者。下面通过代码实现:1、添加Eureka的服务模块2、在pom.xml中添加Eureka服务端依赖3、添加配置文件application.yml,(Eureka本身也是个服务,配置文件中添加路径之后,它会将自己也注册到服务注册中心,在访问的页面可以

2022-06-27 11:25:11 467

原创 微服务总结

微服务简单来说就是功能模块拆分后可以单独负责唯一职责的微应用,也就叫微服务。多个负责自己专一功能的微服务放在一起就叫做服务集群。针对于微服务这一概念,其中包括很多的技术栈和概念,下图可以表示,其中有服务注册,服务配置,服务网关等等等等。常见的微服务技术的架构大致有这么几种,其优缺点如下图: 那么微服务之间的调用问题就是首要问题了,也就是怎么和浏览器一样,放松http请求,从而获取到其他微服务中的信息。引入知识点:RestTemplate 1、首先在spring容器中放入RestTamplate2、在Serv

2022-06-27 10:18:28 237

原创 MinIo使用小结

在进行文件上传的时候,使用到了这项技术,这里简单做一下初步的总结。和阿里云的oss相似,也是有桶的概念,只不过是安装在本地的。首先要下载MinIo;官方链接:打开下载页面,下载window版的exe,然后在下载好的位置,打开cmd,运行 到浏览器打开localhost:9000.看到Minio的客户端界面,默认账户名密码为miniodamin.然后就可以进行使用:上传和下载文档中还有很多的API可以使用。上面展示的直接将文件路径传上去作为参数,但是一般的文佳上传都是MultipartFile,可以

2022-06-24 17:19:32 2073

原创 EasyExcel使用总结

简单总结一下EasyExcel的使用.EasyExcel是阿里处理Excel的一款工具,非常好用。与Apache的poi不同,EasyExcel占用内存小。所以是很好的选择。文档中的功能较多,这里只做简单的读写。使用: 读取:首先我们不管是读取还是写入,都应该用一个字段名和表头相对应的实体类来接收,EasyExcel本身用来接收的是一个linkedHashMap。我们开发过程中,使用实体来接收比较便于后续处理。 其次就是读取还需要一个监听器,这里可以自己定义,也可以使用easyExcel中的监听器,这

2022-06-24 16:30:47 939

原创 Java面试题(23)-Http Https TCP UDP

很常见的四个知识,但是突然发现如果问题它是什么,我不能很清楚流畅的解释出来,所以在此记录一下:Http协议Https Http和Https区别:TCP: UDP: TCP和UDP:

2022-06-21 22:23:09 591

原创 项目部署总结记录

在对于编程知识了解的还是一知半解的时候,类似于部署项目这种话术在我看来是陌生并且伴随着恐惧的,那种恐惧来源于未知。所以,在学会的现在,做一个总结记录。这篇博客自然也就是针对和当时的那个我水平差不多的同学的,大佬们可以略过了。所谓项目部署,其实是分项目和部署两个部分,那么项目就是代码构建的一个系统,就像学生管理系统啊什么的,但是代码只能在你电脑上,也就是本地运行,并且还得打开对应的开发工具,那么部署就很好的解决并相对完美的解决了这么麻烦的问题。首先你要学会什么是客户端和服务器,然后明白,你平时访问就是客户端,

2022-06-20 20:23:54 794

原创 CompletableFuture 并发异步编程

在学习过程中碰到了这么个1.8的新特性,在此记录一下:为了提高代码的执行效率,部分代码可以利用并发异步编程,达到优化的效果。下面的可以说所有的方法都使用了线程池的方法进行测试,也可以使用直接利用lambda表达式直接写任务代码。都阔以。并且每个部分的具体解释,都在代码中有提现。一、CompletableFuture有两个比较常用的方法: 二、如果线程执行完成需要对返回结果以及可能会发生的异常做处理,可以用whenCompleteAsync和exceptionally进行处理三、针对对返回结果以及

2022-06-20 18:36:15 808

原创 springboot预加载

在开发过程中会遇到一些需要提前将数据准备好到某一些地方的时候,也有想要spring容器自动执行的某一段代码,那么spruingboot的加载顺序决定了我们到底要在哪一步做我们想要的预加载。首先就是java本身加载的时候,自己加载的顺序spring加载时的加载顺序总结:参考文章链接:...

2022-06-20 15:02:03 743

原创 Expression #3 of SELECT list is not in GROUP BY clause and contains nonaggregated column……报错的解决办法

问题原因:这个报错是执行有GROUP BY的语句时出现的,原因是MySQL启用了默认的only_full_group_by SQL模式,导致GROUP BY语句报错.解决办法:打开mysql的安装目录找到my.ini配置文件,添加下面这行代码:具体位置如下:然后,右击此电脑-->管理->服务->找到mysql服务,重启此服务,问题解决。...

2022-06-20 14:37:47 1715

原创 windows后台运行JAVA jar包

学习过程中遇到了想在win上运行一个自己写的便签程序,然后总占据一个黑窗口,看着很别扭,所以就想让它到后台运行,故总结记录一下:首先在与jar包同一目录下,创建start.txt和shutdown.txt表示运行和停止。然后再编辑内容start.txt:shutdown.txt:然后将两个文件的后缀名改为bat,双击运行就可以了!...

2022-06-16 09:20:42 7152 2

原创 Java面试题(22)-HTTP 协议包括哪些请求?

最常用的就是GET POST PUT DELETE

2022-06-15 22:13:50 101

原创 Java面试题(21)-HTTP 响应状态码

-HTTP 响应状态码

2022-06-15 22:12:55 150

空空如也

空空如也

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

TA关注的人

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