自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

With_Her的博客

我的博客

  • 博客(76)
  • 资源 (1)
  • 收藏
  • 关注

原创 JWT实现Token会话校验

前述:最近新项目,会话相关不是我搞的,但是比较好奇,就翻了翻,发现用到了JWT。之前没听过更没用过。所以更好奇了。要扩充知识的广度。所以专门了解一下。JWT是啥?比较官方的表述是这样的:JWT(JSON WEB TOKEN):JSON网络令牌,JWT是一个轻便的安全跨平台传输格式,定义了一个紧凑的自包含的方式在不同实体之间安全传输信息(JSON格式)。它是在Web环境下两个实体之间传输数据的一项标准。实际上传输的就是一个字符串。广义上讲JWT是一个标准的名称;狭义上JWT指的就是用来传递

2022-01-05 14:36:27 996

原创 Nacos配置与踩坑总结

核心问题:1.不同域名,走不同配置2.开关、配置、JSON三种配置类型解决方案设计思路:1.分三大类:业务配置、域名配置、域名自定义配置业务配置:用于配置所有业务中的配置信息针对业务情况,分为三类业务配置:开关配置、基础配置、数据配置(黑/白名单) 每种配置都为单独的nacos针对大促情况:将三类配置各自再两个环境配置,共三个环境配置,方便在不同配置环境中自由切换域名配置:用于配置域名走哪个配置环境,实现出现问题快速将某域名切换到不同环境域

2021-11-30 10:38:11 3474 2

原创 高并发场景下,库存问题解决方案

背景:业务场景:库存扣减场景,消费方调用dubbo服务,扣减订单的库存Dubbo配置:5s超时时间,未配置默认重试次数消费方:对商品加redis分布式锁,防止并发扣减,失效与超时时间为10s问题:用户对相同商品的订单,同时发起扣减库存请求,造成了未扣减,或同一订单多扣减的情况疑惑:未扣减可能是失败了,但为什么会同一订单多扣减?明明加了redis锁啊!但问题,就出在redis锁上复现:1.大量相同商品扣减请求发出2.消费方对一笔订单A的商品加锁,其他订单请求进来..

2020-09-27 23:18:28 2039

原创 订单库存回补方案与实现思路

一、思路1.如何回补?记录需要回补的数据,进行回补。2.记录什么数据?单出入库分为两个阶段:A.订单解析获取要扣减的库存。B.扣减库存。所以我们按这两个阶段,分两种类型数据:订单数据/库存修改数据3.如何记录?A阶段失败则记录订单数据,B阶段失败则记录库存修改数据4.如何回补?查询不同类型的待回补数据,进行回补。5.回补失败怎么办?回补失败则重试一次6.如果仍然失败呢?仍然失败则说明数据异常,不再尝试回补。留待开发人员观察数据原因二、实现A阶段1.如订单解析阶段失败.

2020-09-18 23:11:00 963

原创 使用mybatis按时间范围查询数据与数据库查询不一致(时区问题)

前述:有个按时间范围查询的需求,结果总是查不到今天的数据,或者说查不到最近13小时内的数据很奇怪详述:原来是时区问题,没有走默认的东八区,而是走了其他时区mysql时区设置默认是操作系统时区 而mybatis中间使用Calender做类型转换,为CST时区其他在ym中配置dataSource信息中,我们需要在url中指定时区:在url后加上serverTimezone=GMT%2B8 即可总述:以前都是默认走东八区,这次遇到了竟然没有走默认的东八区,我也很奇...

2020-07-02 22:45:26 2983

原创 浅谈SpringBoot自动配置

要点: 约定大于配置 starter、spring.factories @EnableAutoConfiguration 前述:MAC中的配置:Boot中的配置:这是springboot相较springmvc,带给我们最直观的使用感受曾经在mvc框架下,我们要构建项目,需要以xml形式写一堆配置文件,书写易错,配置繁杂,管理麻烦终于!springboot的出现,将我们从这配置的苦海中带到天堂。"腰不疼了,头发掉的也少了"详述:一、..

2020-05-31 23:47:43 665

原创 Mybatis踩坑记:JOIN ON 后多条件要加()

前述:今天遇到一个诡异的问题,mybatis按时间范围查询数据不正确,拿Console窗口打印出来的sql去数据库跑又没问题我怀疑人生了详述:sql需要按时间查询,结果发现数据不正确,结果查询出来的时间竟然还有超出的!匪夷所思!经排查原来是我LEFT JOIN ON后面有多个筛选条件,这里一定要将ON后面的筛选条件加(),不然mybatis处理时逻辑会不正确!总述:知其然,还要知其所以然特此记录...

2020-05-28 13:30:10 3018

原创 MAC下Redis开启局域网IP可访问

前述:MAC下搭建了本地Redis后,127.0.0.1可以访问,但在尝试局域网IP访问,却发现并不行。我目前本地用的redis 4.0.14详述:原因是因为redis.conf中的bind,保护模式的原因1.关闭 bind2.关闭保护模式:protected-mode no3.题外,开不开这个都没事,主要是为了后台可运行redis开启守护进程:daemonizeyes4.重启redis(终端进入到redis所在的文件目录)启动命令:redis-server指定配..

2020-05-22 22:14:11 1487

原创 Jrebel

https://jrebel.qekang.com/[email protected]仅个人用途,商业用途请自行购买正版

2020-05-16 18:32:21 282

原创 忘记mysql密码(for mac)

前述今天配了一天的环境,其中遇到了一个mysql密码的问题:直接安装mysql-5.7.10,之后以为密码默认是没有的,结果一直报密码错误,尝试多次root也不行没办法,只能重置密码了详述:1.关闭mysql服务,mac可以在系统偏好中关闭2.进入终端(mysql默认路径安装),输入:cd /usr/local/mysql/bin/3.执行命令获取管理员权限:su...

2020-03-09 20:00:54 372

原创 Mysql中的索引

前述:一直都知道mysql中的索引,但都了解不深,这次专门花时间将mysql中的索引相关知识好好的了解一番详述:Mysql索引的类型:mysql索引的类型,是我们认识mysql的开始。充分了解mysql所提供的索引类型,也更便于我们了解在什么场景使用什么索引。但一开始网上查资料时,发现对于mysql索引类型、分类,所查出来的资料,对于这个类型的数量都有或多或少的出入,让我很...

2020-03-01 16:03:09 472

原创 Mysql中的最左前缀原则

前述:在了解mysql索引机制时,组合索引提到了遵循最左前缀原则,所以对此进行了了解,在此记录对于我们的sql有没有使用索引,可以使用explain关键字来查看sql语句的执行计划详述:由上面所说的,最左原则一般作用用于mysql中的组合索引中的假设现在创建一个表mytable,且创建a,b,c组合索引,索引名为abc,CREATE TABLE mytable ...

2020-02-19 17:25:59 754

原创 Maven项目依赖管理中的scope标签

目录前述详述compile:test:runtime:provided:system:importscope的依赖传递性总结:前述scope中在maven项目依赖管理中,负责管理依赖是否参与测试、打包、编译、运行周期,以及依赖之间的传递性。有compile,test,runtime,provided,system五个参数,默认为compile...

2020-02-11 16:45:02 529

原创 零拷贝,NIO中的零拷贝

目录前述什么是“零拷贝”?目的与好处详述(Linux中的零拷贝)普通拷贝(I/O)操作sendfile方式的零拷贝带有DMA收集拷贝功能的sendfile实现的I/O注意⚠️新问题解决mmap(内存映射)方式NIO中的零拷贝ChanneltransferTo()——sendFilemap()/MappedByteBuffer——mmap...

2020-02-05 00:42:49 632 1

原创 mac安装maven后,遇到zsh: command not found: mvn的问题

前述因为idea自带了maven,所以电脑一直没装maven,昨天突然给mac装了maven,但发现装好后,在敲mvn -v命令时,遇到了有些莫名其妙的问题,这里记录下。至于安装maven的教程网上有很多,可以自行搜索下。也可以看看这篇:https://www.jianshu.com/p/bb0c81bec337,也讲解了我遇到的问题问题一现象:安装好maven后,敲mvn ...

2020-02-02 14:09:26 32807 19

原创 布隆过滤器

目录前述:概述:1.结构:2.特点:3.为什么要用它?详述:1.存储原理:2.查询原理问题1.可能存在?2.一定不存在?使用:1.防止redis穿透2.防止恶意链接或者垃圾邮件,短信之类3.检索系统查询当前的输入信息是否存在于数据库中4.总之总结:前述:最近在深入了解redis时,提到了在遇到redis穿透问题时,可以利...

2020-01-29 17:21:50 204

原创 Redis概述与进阶技术点

前述:一直有用redis,但对redis的了解很片面,这次花了些时间,系统性的将redis了解的一遍,在这里记录,如果疑惑、补充、不对的地方,希望你可以及时留言交流!基本概念 redis是什么?(https://www.jianshu.com/p/2a23257af57b) 1.基于内存亦可持久化的日志型、Key-Value数据库。 2.支持存储的valu...

2020-01-14 16:49:37 349 1

原创 数据的读写分离——主从同步 分析

前述最近在研究redis,redis中提到了主从同步,而我常用的mysql数据库中也有主从同步的概念。故而这次对数据的主从同步进行了了解为何要读写分离?访问量大、访问量大、访问量大我们现在很多技术解决方案,都是为了解决:随着用户量增长,访问量越来越大,而原本的服务架构不足以支撑如此的访问量而往往读操作是越大部分。我们以往单数据库,一个数据库负责了所有读写操作所以就提...

2020-01-09 18:45:21 804

原创 IO多路复用原理解析(C10k问题,select,poll,epoll)

目录前述:何为C10k问题?何为多路复用?select、poll与Epollselect与poll的主要思路:但能不能减少遍历?能不能保存就绪的socket?Epoll就彻底解决了这些问题Epoll总结前述:何为C10k问题?即:最初的服务器是基于进程/线程模型。新到来一个TCP连接,就需要分配一个进程。假如有C10K,就需要创建1W个进程,...

2020-01-05 22:37:41 666

转载 浅谈lambda表达式

Java8发布已经有一段时间了,这次发布的改动比较大,很多人将这次改动与Java5的升级相提并论。Java8其中一个很重要的新特性就是lambda表达式,允许我们将行为传到函数中。想想看,在Java8 之前我们想要将行为传入函数,仅有的选择就是匿名内部类。Java8发布以后,lambda表达式将大量替代匿名内部类的使用,简化代码的同时,更突出了原来匿名内部类中最重要的那部分包含真正逻辑的代码。尤其...

2019-12-17 15:11:50 177

原创 系统操作日志的实现——自定义注解、切面、线程池...

前述:项目需要系统操作日志,非查询操作,都进行统计,如:小明编辑用户信息。我的实现思路:1.利用注解+切面实现,自定义注解:@SysLog,切面使用@AfterReturning(value = "sysLog()",returning="rObj")注解,注:只有当执行方法正常返回时,进行切面拦截2.由子线程执行。有这么几个看得见好处:(1.)这样降低切面中的操作与业务代码的耦合,(...

2019-11-17 21:02:30 1040

转载 修改HttpServletRequest中header中的信息

废话一堆:由于业务有统一的鉴权系统,页面请求时在header中带过来gsid,正常业务没有问题,但是当需要下载文件时,前端统一用json解析响应,当响应文件时,对于前端来说不好处理,就决定使用简单的get请求下载文件,将gsid通过url带过来,这样的话后端鉴权就需要处理,当header中没有gsid时,从参数中取,为了尽可能少的改变公用的业务代码(指sso),就在当前项目中自定义权限拦截器。...

2019-11-17 19:48:31 2403

原创 redis的 : 命名方式以及模糊查询与删除

朋友向我发了一个redis缓存的截图,如下:问我该如何删掉region内所有的缓存我一开始也不太清楚,平时对redis都是一般get,set,对于这种有层级的显示缓存就不太了解不了解就去了解一下然后发现:原来在set的时候,key命名时以冒号分开,即可实现这种分层级的展示如:redis.set("a:b:c");在redis可视化工具中就会这样展示那么问题来了...

2019-10-09 09:54:32 1103

转载 EJB是什么?

1.我们不禁要问,什么是"服务集群"?什么是"企业级开发"?既然说了EJB 是为了"服务集群"和"企业级开发",那么,总得说说什么是所谓的"服务集群"和"企业级开发"吧!这个问题其实挺关键的,因为J2EE 中并没有说明白,也没有具体的指标或者事例告诉广大程序员什么时候用EJB 什么时候不用。于是大家都产生一些联想,认为EJB"分布式运算"指得是"负载均衡"提高系统的运行效率。然而,估计很...

2019-09-16 17:58:14 146

原创 关于切面的ProceedingJoinPoint

我们在使用切面解决问题时,经常用到下面的方法: @Around("productor()") public Object beforeMethod(ProceedingJoinPoint point){ return joinpoint.proceed(); }当时用@Around进行切面时,会传入ProceedingJoinPoint对象,那该对象我们可以进行哪些操作呢...

2019-09-11 17:51:04 1903

原创 springcloud-config的服务化,高可用配置

在上一篇的《springcloud-config配置中心的搭建与使用》中:https://blog.csdn.net/With_Her/article/details/99288542,我们已经搭建并使用了springcloud-config服务中心,但是会发现,客户端直接通过配置的uri来调用服务中心,那么客户端和服务中心的耦合程度太高,如果服务中心修改ip地址,那么所有的客户端都要修改一遍配...

2019-08-13 16:26:11 232

原创 springcloud-config配置中心的搭建与使用

前言:公司的所有cloud微服务项目,目前都是在配置文件中配置了多套环境的配置文件,然后在启动时指定配置文件来加载启动。这样虽说可以,但是十分不便捷。在项目启动后,不能动态的修改配置参数,如果修改配置信息,只能通过重启服务器来实现。之前对接的一个其他团队做的项目中,他们用到了apollo配置中心来统一管理配置文件,那么springcloud中有没有提供类似的配置中心服务呢?答案是 当...

2019-08-12 16:22:48 1064

原创 git的webhook功能

前述:在研究springcloud-config时,遇到了@RefreshScope能否通过git修改都,直接动态刷新配置信息的问题(可以点击这里查看:https://blog.csdn.net/With_Her/article/details/99288542),了解到了git的webhook功能,在这里总结记录一下!关于webhook:webhook说白了,就是git的一个触...

2019-08-12 15:57:27 1780

原创 将springboot升级到springcloud

前述:之前公司来了个项目,那会儿自己用的是springboot框架搭的,后来又接手了公司另一个已开发的项目,是springcloud架构的微服务项目,而且要和之前的自己用springboot项目要相互打通,一个是springboot,一个springcloud。那么相互之间如何调用的问题便抛了出来springcloud服务之间是服务调用,而未集成cloud的springboot框架的项目...

2019-08-08 11:02:12 5222

转载 Spring Cloud版本 version命名说明

spring boot/cloud 项目中,看到如下配置: <parent> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-parent</artifactId> &lt...

2019-08-07 16:43:55 1718

转载 TCC分布式事物、可靠消息服务、服务降级方案

之前网上看到很多写分布式事务的文章,不过大多都是将分布式事务各种技术方案简单介绍一下。很多朋友看了还是不知道分布式事务到底怎么回事,在项目里到底如何使用。所以这篇文章,就用大白话+手工绘图,并结合一个电商系统的案例实践,来给大家讲清楚到底什么是 TCC 分布式事务。首先说一下,这里可能会牵扯到一些 Spring Cloud 的原理,如果有不太清楚的同学,可以参考之前的文章:《一文读懂Spr...

2019-07-26 15:36:38 668

转载 一文读懂SpringCloud与Eureka,Feign,Ribbon,Hystrix,Zuul核心组件间的关系

概述毫无疑问,Spring Cloud是目前微服务架构领域的翘楚,无数的书籍博客都在讲解这个技术。不过大多数讲解还停留在对Spring Cloud功能使用的层面,其底层的很多原理,很多人可能并不知晓。因此本文将通过大量的手绘图,给大家谈谈Spring Cloud微服务架构的底层原理。实际上,Spring Cloud是一个全家桶式的技术栈,包含了很多组件。本文先从其最核心的几个组件入手,来剖...

2019-07-24 20:44:40 1014

原创 接收处理时间类型(Date)

在新项目中,突然遇到用postman去传一个时间格式字符串,接口是date类型,无法自动转换的问题以前项目框架都会自动转的,很费解后来引入了如下pom,即可自动将string类型转换为Date类型<!--接口返回数据data时间转换字符串--> <dependency> <groupId>com.fasterxml.jackson....

2019-07-17 11:17:48 2265

原创 SpringBoot下Redis切换db

我的springboot版本:1.5.6redis下,数据库是由一个整数索引标识,而不是由一个数据库名称。默认情况下,一个客户端连接到数据库0。一个redis实例,一般有默认有16个db,当然,也可以自己在redis的配置文件中配置redis的db数量/etc/redis/redis.conf文件中,有个配置项 databases = 16(‘16’,可自己配置具体大小,一般默...

2019-06-04 16:59:17 7308 6

原创 jetty启动配置JVM参数 与-D命令

cd到start.jar所在目录,jetty的webapps的父目录运行命令java -jar start.jar --add-to-start=jvm这个命令会帮你在start.ini里面加上一些JVM默认配置参数(注释状态),然后你想用哪些参数,把相关的注释取消掉就好了。注意:记得把--exec这个参数取消注释,官方解释是想要在ini文件里面加JVM参数配置,就要加上--e...

2019-06-03 09:59:04 3736

原创 启动mysql的federated引擎与使用

查看当前是否开启federated引擎:SHOW ENGINES如果Support为NO,则表明未开启如何开启?修改mysql的配置文件:linux为my.cnf,windows为my.ini在配置文件中添加federated重启mysql服务,再输入SHOW ENGINES命令,即可看到federated引擎已开启了那么目前我用federated引擎做什么呢...

2019-04-17 16:13:05 5506

原创 idea配置tomcat

1.添加tomcat。2.点击Edit Configurations后打开如下界面。|3.点击加号4.在这里配置tomcat信息,5.填写好基本tomcat信息后,点击ok。我们就配置好了Tomcat,此时我们会看到。项目中显示了我们刚才配置的的Tomcat。但是直接运行的话,会报错,所以我们还需要配置6.下面打开Project Structure7.打开后,在Modul...

2019-04-12 16:35:25 64148 7

原创 更换JDK相关问题

我是用jdk1.8-1.7变更,更改了环境变量后,java -version还是显示jdk1.8解决方法:1.删除C:\Windows\System32目录下的java.exe、javaw.exe、javaws.exe三个文件2.删除环境变量Path中C:\ProgramData\Oracle\Java\javapath的配置原因分析:1.当使用安装版本的JDK程序时(一般是...

2019-03-27 13:43:27 161

原创 PLsql连接到本地/远程Oracle数据库

Oracle数据库下载与安装:https://blog.csdn.net/With_Her/article/details/88194720一、说明网上看到很多博客让下载Instant Client,这个是oracle的轻量级客户端,如果你不想本地安装oracle,可以下载Instant Client来配置,我在这边文章就不多说了,网上也有许多。本篇博客是基于oracle+plsql来进...

2019-03-06 14:07:37 1328

转载 Oracle12C下载与安装

下载:1、https://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html下载oracle12c,有两个文件,File1和File2;2、下载后解压两个文件,然后将File2中的拷贝到File1解压出来的database目录下,标红框中是File2中解压出来的文件注意:两个文件一...

2019-03-05 18:23:11 2301

java邮件发送

利用java进行的邮件信息发送。HTML格式,TXT格式,对多个邮箱发送相同内容的邮件等,

2018-11-02

空空如也

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

TA关注的人

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