自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【商城秒杀项目】-- 项目总结

最近对商城秒杀项目所用到的技术进行了剖析,技术点还是挺多的,本篇博客就来对商城秒杀项目进行一个总结与整理项目相关博客汇总1、【商城秒杀项目】-- 概况2、【商城秒杀项目】-- 对返回json结果的封装、通用缓存Key的设计与封装3、【商城秒杀项目】-- 登录时使用两次MD5加密4、【商城秒杀项目】-- 使用JSR303进行参数校验、全局异常处理5、【商城秒杀项目】-- 分布...

2020-02-27 14:57:18 11489 11

原创 Failed to read artifact descriptor for org.pentaho:pentaho-aggdesigner-algorithm:jar:5.1.5-jhyde解决方案

在学习Flink时,需要在maven项目里引用Flink的相关依赖包。

2024-02-22 17:20:21 476

原创 部署springboot项目读取外部配置文件

其实springboot可以读取外部配置文件,即在springboot应用启动后,不直接使用jar包里面的配置文件,而是读取某个目录下的配置文件,然后进行覆盖,从而实现应用与配置分离,这样就不用每次部署都修改配置文件了。

2023-07-03 18:39:17 1374

原创 IDEA远程Debug调试工具(Remote)的使用

将服务器上部署的代码用Debug模式启动并暴露一个端口,然后用Remote连接服务器去访问这个端口,实现远程Debug调试

2023-06-28 12:46:29 1690

原创 Java根据URL下载文件出现301 Moved Permanently

项目场景:根据指定的资源URL将该资源下载保存到指定路径问题描述:用浏览器访问资源URL可直接将该资源下载下来,并且文件里面的内容也是想要的,文件打开如下图:用代码来下载该文件时,文件可以成功下载,但是文件里面的内容不是想要的,文件打开如下图:下载文件的代码如下:package com.ue.util;import java.io.*;import java.net.HttpURLConnection;import java.net.URL;import jav.

2020-10-16 15:08:11 2086

原创 MySql常用函数汇总

MySQL数据库中提供了很丰富的函数,其中包括数学函数、字符串函数、日期和时间函数、条件判断函数、系统信息函数、加密函数、格式化函数等。使用这些函数,可以极大地提高用户对于数据库的管理效率,从而更加灵活地满足不同用户的需求;例如,字符串连接函数可以很方便的将多个字符串连接在一起。本文将MySQL的函数分类并汇总,以便以后用到的时候可以随时查看。函数汇总如下数学函数字符串函数日期和时间函数条件判断函数系统信息函数加密函数其他函数数学函数(1)ABS(x):返回x的绝对值(2)PI():返回圆周率π,默

2020-10-08 16:45:46 316 1

原创 MySQL多行合并--GROUP_CONCAT函数的使用

在表设计中,一个字段可能会对应多条数据,但在有的查询场景下,需要实现将多行数据合并成一行数据,在MySQL中可以使用GROUP_CONCAT函数来实现;GROUP_CONCAT函数会计算哪些行属于同一组,并将属于同一组的列显示出来,要返回哪些列,由函数参数(就是字段名)决定,此外分组必须有个标准,就是根据group by指定的列进行分组例如:在权限设计中,一个角色ID(rid)会对应多个用户ID(uid),按照一般的SQL语句是这样的SELECT r.*, u.uid FROM t

2020-09-23 18:16:49 942

原创 Java调用replaceAll()方法出现java.lang.IllegalArgumentException: Illegal group reference异常

项目场景:处理从数据库里查出来的数据,需要将其中某个字段里的指定字符串换成其他字符串,如下:问题描述:使用replaceAll方法进行字符串替换,结果出现java.lang.IllegalArgumentException: Illegal group reference异常,如下:原因分析:String的replaceAll(regex, replacement)方法会调用java.util.regex.Matcher.appendReplacement(sb, replace

2020-09-16 17:35:15 1071 1

原创 Selenium简介及使用案例

本文目录一、Selenium简介一级目录二级目录三级目录一、Selenium简介Selenium是一个用于Web应用程序自动化测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7、8、9、10、11),Mozilla Firefox,Safari,Google Chrome,Opera等。这个工具的主要功能包括:测试与浏览器的兼容性——测试你的应用程序是否能够很好的工作在不同浏览器和操作系统之上。测试系统功能——创建回归测试检验软件功能和用户需求。支持

2020-09-10 17:34:54 3441 3

原创 MyBatis-Plus之性能分析插件、条件构造器、代码生成器

本文目录一、Mybatis-Plus之性能分析插件1、导入性能分析插件2、测试使用性能分析插件二、Mybatis-Plus之条件构造器体验QueryWrapper条件构造器的实例三、MyBatis-Plus之代码生成器1、测试MP代码生成器的使用2、期间所遇问题一、Mybatis-Plus之性能分析插件我们在平时的开发中,会遇到一些执行慢的SQL,MP提供的性能分析插件可用于输出每条SQL语句及其执行时间,还可以为SQL执行时间设定一个值,如果超过这个值,那SQL会停止运行,方便我们对慢SQL进行优化,

2020-08-23 11:28:33 711 2

原创 MyBatis-Plus之select、delete

本文目录一、Mybatis-Plus之查询操作1、查询操作常用API2、分页查询2.1、在配置文件里注册分页插件2.2、直接使用MP内置的Page对象进行分页,测试代码如下二、Mybatis-Plus之删除操作1、物理删除操作常用API2、逻辑删除2.1、在数据库里增加deleted字段2.2、在实体类对应的属性上加上@TableLogic注解![在这里插入图片描述](https://img-blog.csdnimg.cn/20200821170000834.png?x-oss-process=image/

2020-08-21 17:12:03 6994

原创 MyBatis-Plus之简介、快速入门、insert、update

MyBatis-Plus简介顾名思义,MyBatis-Plus是一个MyBatis的增强工具,是用来简化JDBC操作的,它可以大量节省我们的工作时间,因为所有的CRUD代码它都可以自动化完成,与MyBatis-Plus类似的组件还有JPA、tk-mapper官网:https://mp.baomidou.com参考教程:https://mp.baomidou.com/guide...

2020-07-24 16:57:51 1804

原创 SpringCloud入门总结

SpringCloud各组件概括SpringCloud主要包括以下几个组件核心组件Eureka:服务提供者注册中心Ribbon:服务消费者相关组件,可直接通过服务提供者名称调用提供者所注册的服务,摒弃IP+Port调用的方式Hystrix:服务提供者组件,主要作用是服务熔断和服务降级,解决服务调用时系统阻塞的情况(即解决服务雪崩效应)Zuul:在用户访问服务消费者前加锁,提高微服务架构系统的安全性;将域名+Port映射到IP2+PortConfig:解决分布式多模块开发配置文件统一

2020-05-29 17:38:38 353

原创 Docker网络配置

Docker网络模式介绍Docker在创建容器时有四种网络模式:bridge/host/container/none,bridge为默认的,不需要用--net去指定,其他三种模式需要在创建容器时使用--net去指定1.bridge模式(默认模式)docker run时使用--net=bridge进行指定,这种模式会为每个容器分配一个独立的Network Namespace,同一个宿主机...

2020-04-06 18:10:19 294

原创 Config配置搜索路径

前面所有的GIT远程端配置文件都放在是根目录的,所有请求默认都是根目录,但是有时候,项目很多,配置文件需要根据子目录来划分,这时候,就需要来配置搜索路径了;比如aaa项目的配置文件放aaa目录下,bbb项目的配置文件放bbb目录下,不配置的话是找不到的那些配置文件的,需要配置search-paths属性来实现在microservice-config-server-4001项目的yml文件加个配...

2020-04-05 15:30:27 810

原创 Config整合注册中心及生产者

上一篇博客介绍了SpringCloud Config的简介、Config Server及Client的使用,在微服务开发中,是需要将config整合进其他模块里的,本篇博客就来介绍下eureka整合config以及服务器提供者整合config,需要用到git上的两个配置文件:Config整合注册中心先搞个配置文件(eureka_config.yml)上传到git仓库去,文件内容如下:...

2020-04-05 14:21:25 192

原创 SpringCloud Config简介、Config Server及Client的使用

SpringCloud Config简介SpringCloud Config是SpringCloud团队创建的一个全新项目,用来为分布式系统中的基础设施和微服务应用提供集中化的外部配置支持,它分为服务端与客户端两个部分。其中服务端也称为分布式配置中心,它是一个独立的微服务应用,用来连接配置仓库并为客户端提供获取配置信息、加密 / 解密信息等访问接口;而客户端则是微服务架构中的各个微服务应用或基...

2020-04-05 11:15:09 440

原创 Zuul API路由网关服务

Zuul API路由网关服务简介如上图,这里的API路由网关服务由Zuul实现,主要就是对外提供服务接口的时候,起到了请求的路由和过滤作用,也因此能够隐藏内部服务的接口细节,从而有利于保护系统的安全性Zuul API路由网关服务的应用新建一个microservice-zuul-3001模块,把zuul也注册到eureka服务里,端口为3001;先修改下hosts文件,专门为zuul...

2020-04-03 11:29:08 213

原创 Hystrix集群监控Turbine

前面Dashboard演示的仅仅是单机服务监控,但实际项目基本都是集群,集群监控用的是Turbine,Turbine是基于Dashboard的先搞个集群,在microservice-student-provider-hystrix-1004项目的基础上再搞一个microservice-student-provider-hystrix项目,将代码和配置都复制一份,然后修改几个地方(这里用idea...

2020-04-01 16:51:59 148

原创 Hystrix服务监控Dashboard

Hystrix服务监控Dashboard仪表盘简介Hystrix提供了实时的服务调用监控项目Dashboard,能够实时记录通过Hystrix发起的请求的执行情况,可以通过图表的形式展现给用户看Hystrix服务监控Dashboard的使用新建一个项目(microservice-student-consumer-hystrix-dashboard-90),在pom里加入依赖:&l...

2020-03-31 15:33:25 128

原创 Feign与Hystrix整合(将服务熔断、服务降级彻底解耦)

在上篇博客的代码里,用@HystrixCommand fallbackMethod进行服务熔断、服务降级是很不好的,因为是在服务提供者里进行处理的,和业务代码耦合度太高,不利于维护,所以需要解耦,将服务熔断、服务降级放在服务消费者里进行处理,本篇博客介绍下Feign与Hystrix整合实现解耦具体步骤1、修改microservice-student-provider-hystrix-100...

2020-03-31 10:53:48 868

原创 Hystrix断路器简介及应用

Hystrix断路器简介Hystrix对应的中文名字是“豪猪”,豪猪身上长满了刺,能保护自己不受天敌的伤害,代表了一种防御机制,这与Hystrix本身的功能不谋而合,因此Netflix团队将该框架命名为Hystrix,并使用了对应的卡通形象做作为Logo:在一个分布式系统里,许多依赖不可避免的会调用失败,比如超时、异常等,如何能够保证在一个依赖出问题的情况下,不会导致整体服务失败,...

2020-03-30 16:37:10 204

原创 Feign简介及应用

在前面的博客里已经集成了通过Ribbon去调用注册中心里已注册好的服务,但这样还是会使代码不方便维护,原因如下图:Feign简介Feign是一个声明式的Web Service客户端,它使得编写Web Serivce客户端变得更加简单。只需要使用Feign来创建一个接口并用注解来配置它既可完成,它具备可插拔的注解支持,包括Feign注解和JAX-RS注解,Feign也支持可插拔的编码器和...

2020-03-28 23:34:13 830

原创 Ribbon的负载均衡

前面的博客用Ribbon搭建了初步的例子,但是还没实现真正的负载均衡,因为只有一个生产者,要达到负载均衡效果需要先搞三个服务提供者形成集群,然后才能演示负载均衡,以及负载均衡策略。本篇博客跟前面搭建Eureka集群一样,使用一个启动类来跑三个yml配置不同的工程,以达到集群的效果来演示负载均衡参照microservice-student-provider-1001模块重新建一个microser...

2020-03-28 17:09:42 164

原创 微服务调用Ribbon

Ribbon简介Ribbon是Netflix发布的负载均衡器,它有助于控制HTTP和TCP的客户端的行为,为Ribbon配置服务提供者地址后,Ribbon就可基于某种负载均衡算法,自动地帮助服务消费者去请求。Ribbon默认为我们提供了很多负载均衡算法,例如轮询、随机等,当然,我们也可为Ribbon实现自定义的负载均衡算法在SpringCloud中,当Ribbon与Eureka配合使用...

2020-03-28 15:45:35 227

原创 Eureka高可用集群配置及自我保护机制

Eureka高可用集群配置当注册中心扛不住高并发的时候,就需要用集群来扛,在前面的基础上再新建两个简单的springboot模块(microservice-eureka-server-2002、microservice-eureka-server-2003)1、统一三个模块的pom依赖2、在2002跟2003的主启动类MicroserviceEurekaServer2002Ap...

2020-03-27 14:43:44 177

原创 服务治理组件Eureka简介、初步使用

Eureka简介Eureka是Netflix开发的服务发现框架,本身是一个基于REST的服务,主要用于定位运行在AWS域中的中间层服务,以达到负载均衡和中间层服务故障转移的目的。SpringCloud将它集成在其子项目spring-cloud-netflix中,以实现SpringCloud的服务发现功能。Eureka包含两个组件:Eureka Server和Eureka Client...

2020-03-27 11:51:33 232

原创 SpringCloud简介、入门案例

SpringCloud简介SpringCloud是一系列框架的有序集合,它利用SpringBoot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用SpringBoot的开发风格做到一键启动和部署。SpringCloud并没有重复制造轮子,它只是将目前各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过Spri...

2020-03-26 22:55:45 152 1

原创 Nginx工作原理

Nginx工作原理Nginx由内核和模块组成。Nginx本身做的工作实际很少,当它接到一个HTTP请求时,它仅仅是通过查找配置文件将此次请求映射到一个locationblock,而此location中所配置的各个指令则会启动不同的模块去完成工作,因此模块可以看做Nginx真正的劳动工作者。通常一个location中的指令会涉及一个handler模块和多个filter模块(当然,多个locat...

2020-03-22 15:28:12 374

原创 Nginx实现虚拟主机

什么是虚拟主机虚拟主机使用的是特殊的软硬件技术,它把一台服务器主机分成一台台“虚拟”的主机,每台虚拟主机都可以具有独立的域名,具有完整的Intemet服务器功能(WWW、FTP、Email等),同一台主机上的虚拟主机之间是完全独立的。从网站访问者来看,每一台虚拟主机和一台独立的主机完全一样利用虚拟主机,不必为每个要运行的网站提供一台单独的Nginx服务器或单独运行一组Nginx进程。虚拟主...

2020-03-21 17:35:07 232

原创 Nginx配置实例 -- 动静分离

什么是动静分离动静分离是指在web服务器架构中,将静态页面与动态页面或者静态内容接口和动态内容接口分开不同系统访问的架构设计方法,进而提升整个服务访问性能和可维护性将静态html页面,css样式,js文件,以及图片文件这些静态资源放到Nginx服务器中,然后把动态请求显示的文件放到类似于Tomcat这样的容器服务器中;这样方便维护,也可以提高系统性能Nginx实现动静分离通过Ngi...

2020-03-19 17:08:17 300

原创 Nginx配置实例 -- 负载均衡

什么是负载均衡一个网站在创建初期没多少流量的时候,网站能正常访问;但是等这个网站流量上升,并发量大的时候,网站会出现访问延迟,甚至访问失败的问题;这时候,就需要用到负载均衡,即我们以前部署的是单一服务器,现在部署多个服务器集群,把流量分发到集群中的不同的机器上,这个就是负载均衡技术实现要做的事;使用了负载均衡后,每个节点机器上处理的请求相对会少很多,所以能够解决访问延迟卡顿和访问失败的问题,提...

2020-03-18 16:48:04 147

原创 Nginx配置实例 -- 反向代理

反向代理实例一1、要实现的效果打开浏览器,在浏览器地址栏输入地址www.1234.com,可以跳转到Linux系统的Tomcat主页面中2、准备工作将Tomcat的安装文件放到Linux系统中、解压,然后进入Tomcat的bin目录中执行./startup.sh启动Tomcat服务器 对外开放访问的端口firewall-cmd --add-port=8080/tcp --pe...

2020-03-18 15:19:41 1507

原创 Nginx的安装、常用命令、配置文件

在Linux系统中安装Nginx进入Nginx官网下载Nginx的压缩包官网地址:http://nginx.org安装Nginx所需的pcre依赖#第一步:联网下载pcre压缩文件依赖wget http://downloads.sourceforge.net/project/pcre/pcre/8.37/pcre-8.37.tar.gz#第二步:解压压缩文件tar...

2020-03-17 18:41:52 114

原创 Nginx简介

Nginx概述Nginx是一个高性能的HTTP服务器和反向代理服务器,特点是占有内存少,并发能力强,事实上Nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用Nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等Nginx之作为web服务器Nginx可以作为静态页面的web服务器,同时还支持CGI协议的动态语言,比如perl、php等。但是不支持java,java程...

2020-03-17 16:41:56 238

原创 关于docker上安装的MySQL无法使用group by的问题

问题描述:同一段使用了group by来进行分组的SQL,在本地的MySQL执行是没问题的,但放到docker上安装的MySQL(版本是5.7)去执行就有问题,如下图:问题出现的原因:默认情况下,MySQL5.7镜像中的sql_mode含有only_full_group_by,如果MySQL启用了only_full_group_by SQL模式的话,MySQL将拒绝选择列表,即不能使用...

2020-03-08 15:22:34 1476

原创 用thymeleaf作模板的项目打成jar包运行时报错:Error resolving template,template might not exist or might not be access

问题描述:在springboot项目中使用thymeleaf模板,项目在开发环境运行是没问题的,但打成jar包运行时会报错,错误如下图:看错误是模板页不存在,但在jar里是能找到模板页的,报错的位置如下:这里我使用了th:replace标签来嵌入页面,这就是问题的症结所在,是因为指向模板的路径前有斜杆就会出错,所以在引用模板文件的时候不用“/”打头就可以解决了,通过类似相对路径的方...

2020-03-08 11:23:28 2068

原创 Linux的安装步骤

一、Linux简介Linux内核最初只是由芬兰人李纳斯·托瓦兹(Linus Torvalds)在赫尔辛基大学上学时出于个人爱好而编写的。Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。Linux能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的...

2020-03-04 18:36:07 427

原创 【商城秒杀项目】-- 接口限流防刷

接口限流防刷的目的限制同一个用户一段时间之内只能访问固定次数,在服务端对系统做一层保护实现思路利用缓存实现,当用户每次点击访问接口的时候,在缓存中生成一个计数器,第一次请求的时候将这个计数器计数为1后存入缓存,并给其设定有效期,比如一分钟,如果一分钟之内再访问,那么数值加一;一分钟之内访问次数超过限定数值,就直接返回“访问过于频繁”;等到下一个一分钟,数据又重新从0开始计算,因为给缓存...

2020-02-26 15:09:11 1580

原创 【商城秒杀项目】-- 使用数学图形验证码来进行限流

秒杀接口地址隐藏可以防止恶意用户通过频繁调用接口来请求的操作,但是无法防止机器人,刷票软件还是可以恶意频繁点击按钮来刷请求秒杀地址接口高并发下场景,在刚刚开始秒杀的那一瞬间,迎来的并发量是最大的,减少同一时间点的并发量,将并发量分流也是一种减少数据库以及系统压力的措施(使得1s中来10万次请求过渡为10s中来10万次请求)本篇博客记录如何使用数学图形验证码来进行限流,限流削峰操作具体可参考...

2020-02-26 14:05:14 1020

notebooksystem.zip

这是我日常练习的记事本系统项目的源码,使用了springboot、MySQL、mybatis、Lucene等技术

2019-11-26

二维码生成所需jar包.zip

此资源是Qrcode的jar包,用于java生成和解析二维码

2019-06-20

jQuery选择器总结

jQuery是一个JavaScript类库,其中的选择器特别强大,可轻易选择需要的元素,这里简单地总结了一下

2018-10-02

空空如也

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

TA关注的人

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