自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(71)
  • 资源 (2)
  • 收藏
  • 关注

原创 Spring boot3.x 无法向 Nacos2.x进行服务注册的问题

1.Nacos2.0版本相比1.X新增了gRPC的通信方式,因此需要增加2个端口。除了8848还需要开放9848,9849端口。2.maven依赖版本的问题。我使用的版本不兼容nacos2.x,提高版本至2022.0.0.0-RC1.配置中心都是可用的,但是就是无法向nacos进行服务注册。

2024-01-23 09:32:57 731

转载 Java 中的 7 种重试机制

从手动重试,到使用 Spring AOP 自己动手实现,再到站在巨人肩上使用特别优秀的开源实现 Spring Retry 和 Google guava-retrying,经过对各种重试实现方式的介绍,可以看到以上几种方式基本上已经满足大部分场景的需要:如果是基于 Spring 的项目,使用 Spring Retry 的注解方式已经可以解决大部分问题如果项目没有使用 Spring 相关框架,则适合使用 Google guava-retrying:自成体系,使用起来更加灵活强大。

2023-08-04 10:33:16 308

原创 解决系统在大数据情况下如何导出文件(附代码)

背景系统的数据导出是一个重要的功能,而且对于excel类型的数据导出需求尤其多,如果系统的数据量不是很大,则无关紧要。但是系统的数据量如果非常巨大,对于导出数据来说就异常困难。方法一数据很少的情况下,进行数据导出,可以完全交给前端去做。前端人员可以通过接口获取的数据生成excel进行导出。数据量很少或者只允许用户每次导出很少的数据时,这种做法快速有效,成本很低,而且服务端只会承载数据查询的压力,考虑到数据库主从,这个压力就更小了。同样,服务端也可以生成excel,通过流的形式进行输出..

2022-01-03 16:11:56 6532 1

转载 原码, 反码, 补码 详解

本文转载于:作者:张子秋出处:http://www.cnblogs.com/zhangziqiu/本篇文章讲解了计算机的原码, 反码和补码. 并且进行了深入探求了为何要使用反码和补码, 以及更进一步的论证了为何可以用反码, 补码的加法计算原码的减法. 论证部分如有不对的地方请各位牛人帮忙指正! 希望本文对大家学习计算机基础有所帮助!一. 机器数和真值在学习原码, 反码和补码之前, 需要先了解机器数和真值的概念.1、机器数一个数在计算机中的二进制表示形式, 叫做这个数的机器数。.

2021-09-07 15:28:10 474

转载 分布式下WebSocket Session共享解决方案

yua最近在做消息中心模块,想要实现消息实时推送到前端页面展示,直接摒弃了前端定时轮训调用接口来获取消息数据的方式,采用了WebSocket服务端推送。流程是首先前端跟后端应用新建一个连接,并携带当前登录的用户ID,此时WebSocket会创建一个WebsocketSession来唯一绑定该连接,我们会在后端用Map建立用户ID与Session的映射关系:Map后续有新消息到达时,就可以通过该Map映射找到指定用户ID对应的session来推送消息。但有一个问题,后端是多应用节点,每个节

2021-06-04 15:22:24 2168

转载 ArrayList与LinkedList的性能分析

1、 前言经常在面试时,被问到集合的概念,集合 List、Map、Set 等底层设计以及其使用场景与注意细节。但大部分人的回答都是千篇一律,跟网上的答案一模一样,这是致命滴。其实,大家都错了,尤其是网上,更是误导大家,详细原因,且听我来分析。2、集合 List2.1 大家心中的 List在广大的网友心中,List 是一个缓存数据的容器,是 JDK 为开发者提供的一种集合类型。面试时,被问到最常见的就是 ArrayList 和 LinkedList 的区别。相信大部分...

2021-06-03 13:56:46 3103

转载 Java8—Stream

原文来源:https://juejin.cn/post/6968982631211892750?utm_source=gold_browser_extension

2021-06-03 11:57:56 711

原创 微信 40003 问题解决思路汇总

问题请求微信接口有时总是会出现40003错误码,该错误码表示:openid不正确。出现该问题,一般都会满头雾水。解决1.检查appid,appSecret是否正确,appSecret特别需要检查,万一重置,配置文件忘记更改就哭了。2.确保请求参数格式正确,我在进行模版消息推送的时候,模版消息格式错误,结果也给我报了40003。3.accessToken是否正确有效。4.用户的openId必须和当前使用的小程序相匹配。比如进行消息推送的时候,accessToken是小程序A的,你却用小程..

2021-05-08 11:11:14 7677 1

原创 记录:jenkins打包项目,代码不生效

问题:本地提交了代码,分支也没有问题,jenkins打包的分支也是正确的,配置也没有问题,检查了好多地方,docker的镜像也删除了重新打包,但是提交的分支代码还是没有生效,郁闷,very郁闷。原因:项目依赖了一个公共模块,公共模块在打包的时候报错了,但是我并没有在意上面细微的日志输出,只是简单的看了最终build的结果:SUCCESS,而docker容器中已经存在相似标志的层,失败不会影响到docker最终的结果,导致一直没有发现这个问题。解决:修复公共模块打包失败的问题即可。反思:日志的..

2021-05-07 09:05:28 2604

原创 前端生成pdf并导出,解决了图片不能绘制的问题.(一)

生成pdf的方式有多种,前端后端都可生成,各有优缺点,本文主要讲解前端生成pdf的方式,并解决了图片不能绘制的问题。前端生成,使用 html2canvas进行绘制。该方式操作简单,浏览器端即可完成,不会对服务器造成压力,但是生成的pdf质量较差,比较模糊。使用方式:1.页面引入 html2canvas.js 和 jspdf.debug.js 文件。下载地址:https://download.csdn.net/download/love1793912554/16796451,不要积分的2.添加..

2021-04-22 09:53:20 1242

原创 java使用easyExcel生成excel文件直接写入邮件附件并发送

本文章主要是讲述如何使用EasyExcel生成excel文件,并将文件写入到邮件附件中进行邮件发送。一:引入pom依赖<!-- 邮件 --><dependency> <groupId>javax.mail</groupId> <artifactId>mail</artifactId> <version>1.4.7</version></dependency>..

2021-03-05 11:14:54 4049 3

转载 高并发和海量数据下的 9 个 Redis 经典案例剖析!

文章转载于:https://mp.weixin.qq.com/s?__biz=MzI1NDQ3MjQxNA==&mid=2247493368&idx=1&sn=3d6e44cbefc83829a5042f1107f1f6d6&chksm=e9c61f49deb1965fda3ce18c646a1fc416c1b28179f64b51539f9c0e662116f52ac36f77fb67&scene=21#wechat_redirect业务背景这次分享主.

2020-12-24 14:50:53 180

原创 Git仓库如何优雅的进行备份

一:前言在日常的工作学习中,Git扮演着越来越重要的角色,渐渐的在版本管理软件中占据C位。我们已经很习惯的将代码托管于Git服务,在我们的潜意识中,当执行git push完成后,一切都完美了。代码也不会丢,还能按照不同的版本找回来,完全没有后顾之忧。事实上也确是这样,对于Git仓库的备份有人认为很重要,有人认为完全没有必要,对于这个疑问,仁者见仁,智者见智。但我总觉得还是有备无患,所以有了这篇文章。二:思路简单来说,Git的备份其实就是对于文件增量的备份,注意,我说的是增量。当然,你也可以进

2020-11-04 14:16:21 3794

转载 mac下安装nginx

本篇文章转载于【寻梦1314】:https://www.cnblogs.com/meng1314-shuai/p/8335140.html前言:nginx的强大不必多言,所以很自然很应当的我也来玩一玩。当前系统环境:安装工具:homebrew(还没用过的小伙伴可以点链接进行了解或者自行百度)步骤: 1、打开终端,习惯性命令:brew update//结果:Already up-to-date. 2、终端继续执行命令:brew search nginx //查询要

2020-11-02 16:55:19 527

原创 Feign使用时,启动项目提示:@FeignClient注解修饰的接口无法注入,解决办法

看了网上很多种说法,大致有2种情况,分别如下:一:启动类上未使用@EnableFeignClients注解,如果client位于其他模块,一定要加上参数(basePackages)进行包指定扫描。二:版本问题,这个需要特别注意。<!--远程服务调用,springboot2.0版本以上,需要导入下面的包才能使用 @EnableFeignClients 注解-->注释的这个依赖别用,这个虽然不报错,也好像可以使用,但实际是有bug的,会导致无法注入bean<!..

2020-07-20 09:43:32 3687 2

原创 Ubuntu下安装配置gitLab(三)基本操作

创建组使用管理员root创建组,一个组里面可以有很多个项目分支,可以将开发者添加到组里进行权限设置,不同的组就是公司不同的开发项目或服务模块,不同的组添加不同的开发即可实现对开发权限的设置管理。创建项目创建新用户邮箱是我随便写的,企业内部一般会使用企业邮箱。创建完用户后,修改密码将用户添加到组内角色权限说明如下:Guest:访客,可以创建issue,发表评论,不能读写版本库。Reporter: 可以克隆代码,不能提交,...

2020-06-27 14:29:18 581

原创 Ubuntu下安装配置gitLab(二)修改默认端口

gitlab的默认端口是80,但是80端口一般会被系统的很多程序占用,比如nginx等。所以修改端口就很有必要了。我们将gitlab的端口由80修改为82,操作很简单步骤如下:sudo vi /etc/gitlab/gitlab.rb找到http://127.0.0.1修改为http://127.0.0.1:82找到nginx['listen_port']配置,解开注释,修改为nginx['listen_port'] = 82将82端口添加到防火墙注意:我使用的是ubunt

2020-06-27 14:12:55 2476

原创 Ubuntu下安装配置gitLab(一)

一:前言目前中小型企业内部的版本管理工具一般都是git系,svn渐渐退出历史的舞台,企业内部一般会自建git版本管理,毕竟互联网代码还是很重要的,自建能一定程度保证公司的代码安全。本文讲解gitlab在ubuntu上的安装和配置。二:安装1.安装依赖包sudo apt-get updatesudo apt-get install -y curl openssh-server ca-certificates2. 邮件配置选择Internet那一项,不带Smarthost的

2020-06-27 14:06:08 3798

原创 解决:druid版本升级导致控制台无法访问,404

下面这个配置一定要加,在低版本中,比如1.1.9中,如果没有配置会默认为true进行开启,但是升级到1.1.18后,如果没有显示开启配置的话,将不能启动控制台。stat-view-servlet: enabled: true源码如下,一看就明白:...

2020-06-18 20:36:09 1639 1

原创 解决Element中的el-dialog在第一次使用后无法再次触发mounted的问题

作为一名非专业前端人员,今天遇到这个问题,小花费了点功夫。最终还是找到了解决办法。现象:el-dialog组件在第一次使用的时候没有问题,mounted也可以触发,但是关闭dialog后再次弹出就不再走mounted,导致可能没有办法及时获取到新的数据。原因:具体原因还真的不知道,反正我在关闭dialog的时候销毁了dialog中的元素也不起作用。待我学习一下。。。。解决办法:网上有很多人说在dialog的外层套一个div来解决,具体方式如下图:可能我的姿势不是很正确,反正一

2020-06-16 17:43:21 6534

原创 程序员看日志,一路成长,就他了——FinderWeb

前言作为一名程序员,代码是你的生活,看日志也就顺利成为了生活的一部分。千万千万不要告诉我,你从未看过日志,这会让我对你程序员的身份产生怀疑的。这部分生活很枯燥,密密麻麻的文字经常看得头昏脑胀。话说我们为什么要看日志呢?我相信绝大部分人看日志绝对不是为了好玩好看,绝大多数情况下可能是代码出bug了。那么我们平常如何看日志的呢?从我入行以来所经历的这些坎坷,看日志可以分为以下几类,本次着重讲述普通版的Finderweb。小白版 高手版 土豪版 普通版小白版刚入门的时候,linux命令都还

2020-06-14 18:03:05 773

原创 Alibaba Sentinel 三 :Sentinel降级

除了流量控制以外,对调用链路中不稳定的资源进行熔断降级也是保障高可用的重要措施之一。由于调用关系的复杂性,如果调用链路中的某个资源不稳定,最终会导致请求发生堆积。Sentinel 熔断降级会在调用链路中某个资源出现不稳定状态时(例如调用超时或异常比例升高),对这个资源的调用进行限制,让请求快速失败,避免影响到其它的资源而导致级联错误。当资源被降级后,在接下来的降级时间窗口之内,对该资源的调用都自动熔断(默认行为是抛出 DegradeException)。sentinel降级策略主要有3点:RT .

2020-06-02 15:01:24 700

原创 Alibaba Sentinel 二 :Sentinel流控规则

流控是Sentinel核心功能之一,流控指的是流量控制。Sentinel的流控操作起来非常简单,在控制台进行配置即可看见效,所见即所得。名词解释资源名: 唯一名称,默认是请求路径针对来源: Sentinel可以针对调用者进行限流,填写微服务的名称,默认是default(不区分来源)阈值类型/单机阈值:可随时更改,无需重启系统QPS:每秒的请求数量,当调用该api的QPS达到阈值的时候进行限流。 线程数: 当调用该api的线程数达到阈值的时候进行限流。流控模式:直接:api

2020-05-22 15:57:39 4951

原创 Alibaba Sentinel 一 :Sentinel初识

一: Sentinel简介Sentinel是Alibaba Spring Cloud中的重要一员,它是面向分布式服务架构的流量控制组件,主要以流量为切入点,从流量控制、熔断降级、系统自适应保护等多个维度来帮助用户保障微服务的稳定性。Sentinel有以下几大优势: 丰富的应用场景,出身于阿里巴巴,已经历过千锤百炼。 易于使用,快速接入。您只需要引入相应的依赖并进行简单的配置即可快速地接入 Sentinel。 多样化的流量控制手段。 可视化的监控和规则管理,完备的实

2020-05-21 18:43:35 846

原创 Alibaba Nacos 五 :Nacos配置持久化到mysql

Nacos默认使用自带的嵌入式数据库derby,在有需求的情况下,我们可以将数据存储更改到mysql。Nacos持久化到mysql的操作非常简单。步骤:1. 在mysql中新建数据库nacos_config2. 打开nacos安装目录,在config目录下有一个nacos-mysql.sql文件,运行该文件。3. 打开application.properties,在最下面添加如下配置信息spring.datasource.platform=mysqldb.num=1db.u

2020-05-20 13:21:42 2585 3

原创 Alibaba Nacos 四 :Nacos的野心,不仅仅是服务注册,我还要配置中心

阿里在技术的道路上越走越远,野心也越来越大,实力越来越强。Nacos凭借一己之力,单挑Eureka,Spring Cloud Config。勇气可嘉。本篇文章来实战一下nacos作为配置中心。 基本配置 配置动态刷新 分类配置 使用不同的data ID区分不同的配置 使用不同的GROUP 使用不同的命名空间 1.基本配置按照如图所示,新建module,对应的类,配置文件。启动类:ConfigMainp.

2020-05-20 13:16:42 602

原创 Alibaba Nacos 三 :Nacos天生骄傲,自带负载均衡

Nacos默认已经集成了Ribbon,配合RestTemplate,非常容易就可以实现服务之间的访问。首先,按照上一篇文章的步骤,再新建一个一摸一样的项目,端口是9001,主要是为了测试nacos的负载均衡能力。当然,理论上来说只需要打成jar,部署在不同的机器上。但是这里为了简便一点,我就新建了一个除端口不同其它都相同的项目。建完之后,目录如下:分别启动两个项目,在nacos的web管理页面中可以发现已经有两个服务注册进去了。新建一个调用方项目,通过负载均衡调用9000和9001。

2020-05-20 12:34:32 6907 7

原创 Alibaba Nacos 二 :Nacos的服务注册

服务注册是微服务体系中最重要的组成部分,无论是Eureka,Zookeeper,还是Nacos,都在各自的体系中扮演着重要的服务注册角色。在上一篇文章中我们已经启动了一个单机的nacos服务,本节我们将新建项目注册到nacos中。1: 新建项目建完父工程后,在父工程的中新建子module provier-payment9000,不需要添加任何配置,普通的maven项目就可以了,后面9000代表端口,主要是为了后面验证nacos负载均衡。2: 修改pom文件首先在父..

2020-05-20 12:22:20 929

原创 Alibaba Nacos 一 :下载并启动nacos

Alibaba Spring Cloud已经成为国内主流的新一代微服务架构技术,而Nacos是Alibaba Spring Cloud中的重要成员,它能提供服务注册与发现,配置中心的功能,而且还能配置动态刷新,相当于Eureka + Spring Cloud Config + Bus的集合体,功能十分强悍。下载:进入https://github.com/alibaba/nacos/releases选择合适的版本进行下载,我这里使用的是1.1.4版本。启动:下载后解压,进入解压后的bin目录,

2020-05-20 12:06:58 1565

原创 git日记

一:将本地代码关联到远程git1: 建立本地 git 仓库,cd 到你的本地项目根目录下,执行 git init 命令cd 本地工程根目录git init //这个目录就变成了git可以管理的仓库2: 将本地项目工作区的所有文件添加到暂存区。小数点 “.” ,意为添加文件夹下的所有文件;也可以将 “.” 换成具体的文件名,如果想添加项目中的指定文件,那就把 “.” 改为指定文件名即可git add .3: 将暂存区的文件提交到本地仓库git commit -m "注释说明"4:将本地

2020-05-12 15:30:10 199

原创 深入了解mysql中更新语句是如何工作的?

上一篇文章我详解介绍了mysql中的查询语句是如何工作的,我相信你还记得,一条查询语句需要经过 连接器、分析器、优化器、执行器,最终才能到达存储引擎。那么,更新语句是如何工作的呢?我们来看一下下面这条语句update T set money = money + 1 where ID = 1;首先可以确认的是,查询语句的那一套流程,更新语句也是同样会走一遍。执行更新语句...

2020-03-29 17:19:43 519

原创 深入了解mysql中sql查询语句是如何工作的?

写sql语句或许是很多后端程序员都需要做的事情,但是经常写sql语句的你知道一条sql查询语句是如何执行的吗?本篇文章带你一探究竟首先带着问题去学习:下面的sql再简单不过了,执行完这条sql,你会得到一个结果。那么这个结果是如何产生的呢?select * from T where id = 1;先给大家看一张mysql基本的架构图总体来说:mysql可以分为se...

2020-03-28 22:04:54 286

原创 企业微信扫码登录

最近公司的系统需要和企业微信进行打通,首先需要公司的人员可以使用企业微信进行扫码登录。使用企业微信扫码登录的流程比较简单,我做一个demo记录一下。注意:下面代码中重定向的地址是我进行穿透的地址。第一步:企业微信管理后台新建一个需要扫码登录的项目第二步:在项目中引入微信提供的js文件,该js文件主要用于生成二维码。http://rescdn.qqmail.com/n...

2020-03-21 17:57:44 7555

原创 git笔记

git一:常用命令1: git init |初始化仓库2: git status |查看当前仓库的状态,可以看见所在的分支3: git add 文件名 |将文件添加到暂存区4: git rm --cached 文件名 |从暂存区移除文件5: git commit 文件名 |将文件提交到本地库6: git commit -m "提交注释" 文件名 ...

2020-03-15 18:44:58 195

转载 rocketMQ安装部署详细解析

本篇文章转载于关惜寒(https://blog.csdn.net/tubunanhai/article/details/81738416),感谢作者的分享。一、简介rocketMQRocektMQ是阿里巴巴在2012年开源的一个纯java、分布式、队列模型的第三代消息中间件,不仅在传统高频交易链路有着低延迟的出色表现,在实时计算等大数据领域也有着不错的吞吐。2016年11月11号,双...

2020-02-16 10:09:49 580

原创 SSM集成SpringSecurity(十一):rememberMe和获取登录用户信息

rememberMespringSecurity提供了一个rememberMe功能,可以让用户在一定时间内进行无密码登录。比如说在有效的时间内关闭了浏览器,然后重新打开一样有效。该功能不是记住密码,大家不要弄混淆了。1: login.jsp文件加入,name必须是remember-me记住我:<input type="checkbox" name="remember-me"...

2020-02-13 17:17:40 722 1

原创 SSM集成SpringSecurity(十)自定义过滤器实现验证码检查

很多系统进行登录的时候,都会要求用户输入验证码。我们可以让springSecurity在进行用户密码校验之前进行验证码的校验,验证码验证通过再进行用户密码的校验。我们需要自定义过滤器。1: 在jsp目录下新增一个imageCode.jsp文件,该文件用于生成验证码<%@ page language="java" contentType="text/html; charset=UTF...

2020-02-13 16:59:43 977 1

原创 SSM集成SpringSecurity(九)spring security密码处理

前面我们一直使用的是明文密码,明显是不对的。现在我们来处理一下。1:在spring-security.xml文件中维护下面的bean,并修改authentication-manager<bean id="passwordEncoder" class="org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder"/...

2020-02-13 16:54:08 539

原创 SSM集成SpringSecurity(八)基于RBAC实现菜单权限 ——下

一:mapper包下建立UserMapper接口并建立对应的sql映射文件UserMapper.xmlpackage com.xhc.mapper;import com.xhc.domain.Permission;import com.xhc.domain.User;import java.util.List;public interface UserMappe...

2020-02-13 16:50:25 683 1

原创 SSM集成SpringSecurity(七)基于RBAC实现菜单权限 ——上

准备环境一:把mybatis配置进来(1): 在resources目下新增jdbc.properties配置文件,用于配置数据库的相关信息jdbc.url = jdbc:mysql://IP地址:3306/ssm_securityjdbc.driverClass = com.mysql.jdbc.Driverjdbc.username = 数据库用户名jdbc.passw...

2020-02-13 16:41:54 813 1

js生成pdf所需文件.zip

js生成pdf所需文件

2021-04-21

小程序中计算两地之间的距离.zip

小程序中计算两地之间的距离,详细,前后端代码都有。

2019-07-13

空空如也

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

TA关注的人

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