<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[fighting32的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/fighting32</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; fighting32]]></copyright><item><title><![CDATA[实现分布式锁]]></title><link>https://blog.youkuaiyun.com/fighting32/article/details/107789156</link><guid>https://blog.youkuaiyun.com/fighting32/article/details/107789156</guid><author>fighting32</author><pubDate>Wed, 05 Aug 2020 16:18:13 +0800</pubDate><description><![CDATA[Redisson实现分布式锁使用场景原始解决方法整合Redis的客户端RedissonRedissonRedisson的分布式锁和同步器可重入锁读写锁闭锁信号量
使用场景
前一篇文章说过在分布式场景下，高并发的情况下可能出现缓存击穿等缓存失效问题，解决该问题就是给业务加上锁。
提到锁可能第一印象会想到synchronized，但是synchronized只能解决本地服务的线程问题，面对分布式下的集群（一个服务在多台服务器运行），本地锁明显是解决不了问题的，这就引出了分布式锁的概念。
原始解决方法

结合re]]></description><category></category></item><item><title><![CDATA[高并发下的三个缓存失效问题]]></title><link>https://blog.youkuaiyun.com/fighting32/article/details/107768417</link><guid>https://blog.youkuaiyun.com/fighting32/article/details/107768417</guid><author>fighting32</author><pubDate>Mon, 03 Aug 2020 17:06:15 +0800</pubDate><description><![CDATA[缓存失效问题缓存穿透缓存雪崩缓存击穿
缓存穿透


定义：指的是查询一个不存在的数据，由于缓存不命中，到数据库中进行查找，数据库也无记录，而此时刚好也没有将查询的null值写入缓存，导致每次查询都得到存储层进行查询，失去了缓存的意义。


风险：利用不存在的数据进行攻击，高并发下数据库压力增大，最终崩溃。


解决：将返回的null结果（指定一个标志位，只要不是null，不让请求到数据库进行查询）进行缓存，并加入短暂过期时间（避免后续有数据了，但是缓存一直返回null）


缓存雪崩

定义：在高并发下，将]]></description><category></category></item><item><title><![CDATA[Nginx功能之一：动静分离]]></title><link>https://blog.youkuaiyun.com/fighting32/article/details/107763841</link><guid>https://blog.youkuaiyun.com/fighting32/article/details/107763841</guid><author>fighting32</author><pubDate>Mon, 03 Aug 2020 15:23:26 +0800</pubDate><description><![CDATA[背景：以Nginx加Windows搭建域名访问环境时（上篇文章），我们建立项目一般都是将静态资源（包括js，css，img）放在相应的前端模板下，这样，当我们对项目进行多个请求时，Tomcat因为要处理请求数据的动态与静态资源，会承受不住压力，吞吐量很小，导致卡死机的情况发生，或者响应数据很慢。
Nginx为我们提供了一个功能：动静分离。
顾名思义，就是讲动态资源与静态资源分开进行管理，讲渲染页面的静态资源都给分离出来，放在Nginx里，当我们发送请求时，由Nginx来直接返回静态资源，Tomcat只需要处]]></description><category></category></item><item><title><![CDATA[Elastcisearch使用教程]]></title><link>https://blog.youkuaiyun.com/fighting32/article/details/107683692</link><guid>https://blog.youkuaiyun.com/fighting32/article/details/107683692</guid><author>fighting32</author><pubDate>Mon, 03 Aug 2020 15:01:00 +0800</pubDate><description><![CDATA[Elasticsearch使用安装基本语法运用
安装
1、Linux环境下使用docker容器安装Elasticsearch
打开终端，输入指令，此处如果之前没有pull镜像，则会为我们主动下载镜像
docker run --name elasticsearch -p 9200:9200 -p 9300:9300 -e “discovery.type=single-node” -e ES_JAVA_OPTS="-Xms64m -Xmx512m" -v /mydata/elasticsearch/config]]></description><category></category></item><item><title><![CDATA[Nginx+Windows搭建域名访问环境]]></title><link>https://blog.youkuaiyun.com/fighting32/article/details/107730721</link><guid>https://blog.youkuaiyun.com/fighting32/article/details/107730721</guid><author>fighting32</author><pubDate>Sat, 01 Aug 2020 15:08:46 +0800</pubDate><description><![CDATA[Nginx+Windows搭建域名访问环境配置hosts文件配置目标IP地址的nginx配置上游服务器（网关）
配置hosts文件
在下面路径下找到hosts文件
C:\Windows\System32\drivers\etc

在文件最下方配置 “目标IP地址” “本机输入的想跳转到目标IP地址的域名”
如192.168.205.122 www.niubi.com
配置完后，当你本地输入www.niubi.com，就会跳转到指定IP地址192.168.205.122
配置目标IP地址的nginx

在ng]]></description><category></category></item><item><title><![CDATA[目前单点登录的两种常用方法]]></title><link>https://blog.youkuaiyun.com/fighting32/article/details/107295333</link><guid>https://blog.youkuaiyun.com/fighting32/article/details/107295333</guid><author>fighting32</author><pubDate>Sun, 12 Jul 2020 15:42:01 +0800</pubDate><description><![CDATA[单点登录使用]]></description><category></category></item><item><title><![CDATA[Redis的优点和具体使用过程]]></title><link>https://blog.youkuaiyun.com/fighting32/article/details/107287054</link><guid>https://blog.youkuaiyun.com/fighting32/article/details/107287054</guid><author>fighting32</author><pubDate>Sat, 11 Jul 2020 21:17:20 +0800</pubDate><description><![CDATA[浅谈Redis]]></description><category></category></item><item><title><![CDATA[微服务中使用spring cloud远程调用的过程]]></title><link>https://blog.youkuaiyun.com/fighting32/article/details/107254175</link><guid>https://blog.youkuaiyun.com/fighting32/article/details/107254175</guid><author>fighting32</author><pubDate>Fri, 10 Jul 2020 17:02:42 +0800</pubDate><description><![CDATA[springcloud调用接口的具体过程]]></description><category></category></item><item><title><![CDATA[微服务调用全过程之Nacos]]></title><link>https://blog.youkuaiyun.com/fighting32/article/details/107246213</link><guid>https://blog.youkuaiyun.com/fighting32/article/details/107246213</guid><author>fighting32</author><pubDate>Fri, 10 Jul 2020 12:02:14 +0800</pubDate><description><![CDATA[还在用Eureka吗，来看一看功能更强大的Nacos吧！]]></description><category></category></item><item><title><![CDATA[浅谈目前最火的架构风格：微服务]]></title><link>https://blog.youkuaiyun.com/fighting32/article/details/107243332</link><guid>https://blog.youkuaiyun.com/fighting32/article/details/107243332</guid><author>fighting32</author><pubDate>Fri, 10 Jul 2020 09:45:38 +0800</pubDate><description><![CDATA[目前最火的架构风格，微服务]]></description><category></category></item><item><title><![CDATA[在本地Maven下载jar包的坑人bug，Non-parseable settings]]></title><link>https://blog.youkuaiyun.com/fighting32/article/details/107216330</link><guid>https://blog.youkuaiyun.com/fighting32/article/details/107216330</guid><author>fighting32</author><pubDate>Wed, 08 Jul 2020 22:29:22 +0800</pubDate><description><![CDATA[在本地Maven下载jar包的坑人bug，Non-parseable settings]]></description><category></category></item><item><title><![CDATA[org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.athk.eduservice]]></title><link>https://blog.youkuaiyun.com/fighting32/article/details/107200402</link><guid>https://blog.youkuaiyun.com/fighting32/article/details/107200402</guid><author>fighting32</author><pubDate>Wed, 08 Jul 2020 11:01:05 +0800</pubDate><description><![CDATA[解决的org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.athk.eduservice最详细的方法。
mapper下的xml文件写sql语句不生效，报错的原因是因为mapper的项xml文件没有被转化成.class文件，导致sql没运行到。
我们查看xml文件是否有被转化到被加载到项目中去，可以到target目录下查看。

此时我们看到我们的src目录下是有xml文件的，但是我们再到tar]]></description><category></category></item><item><title><![CDATA[mybatis-plus最便捷、最常用、最强大的功能]]></title><link>https://blog.youkuaiyun.com/fighting32/article/details/107167400</link><guid>https://blog.youkuaiyun.com/fighting32/article/details/107167400</guid><author>fighting32</author><pubDate>Mon, 06 Jul 2020 21:09:40 +0800</pubDate><description><![CDATA[mybatis-plus是一款MyBatis的增强工具包，简化CRUD操作。
最近看到很多项目，朋友说的几家公司，都在开始用mybatis-plus了，可见，作为mybatis的增强工具，mybatis-plus正在一步步的发挥它的作用，在未来，应该会代替mybatis。
在这里，跟大家分享一下，我最近常用的它的功能，也是我目前为止感觉式它最强大的功能。那就是代码生成器，废话不多说，直接上代码，大家看到一大串代码不用慌，这东西直接复制过去用就行了，都是mybatis-plus官方给出来的，我们只需要对一些路]]></description><category></category></item><item><title><![CDATA[Required request body is missing: public com.athk.commonutils.R com.athk.eduservice.controller.EduCo]]></title><link>https://blog.youkuaiyun.com/fighting32/article/details/107162770</link><guid>https://blog.youkuaiyun.com/fighting32/article/details/107162770</guid><author>fighting32</author><pubDate>Mon, 06 Jul 2020 17:25:04 +0800</pubDate><description><![CDATA[美好的一天，从解决BUG开始！]]></description><category></category></item><item><title><![CDATA[VUEResponse to preflight request doesn‘t pass access control check: No ‘Access-Control-Allow-Origin‘]]></title><link>https://blog.youkuaiyun.com/fighting32/article/details/107162264</link><guid>https://blog.youkuaiyun.com/fighting32/article/details/107162264</guid><author>fighting32</author><pubDate>Mon, 06 Jul 2020 16:54:55 +0800</pubDate><description><![CDATA[Failed to load http://localhost:9001/eduservice/course/addCourseInfo: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http.]]></description><category></category></item><item><title><![CDATA[EasyExcel的读写操作]]></title><link>https://blog.youkuaiyun.com/fighting32/article/details/107131044</link><guid>https://blog.youkuaiyun.com/fighting32/article/details/107131044</guid><author>fighting32</author><pubDate>Sun, 05 Jul 2020 10:17:23 +0800</pubDate><description><![CDATA[还在用POI么  都在用阿里的EasyExcel了]]></description><category></category></item><item><title><![CDATA[nginx转发请求的实现和nginx启动失败的常见原因]]></title><link>https://blog.youkuaiyun.com/fighting32/article/details/107130573</link><guid>https://blog.youkuaiyun.com/fighting32/article/details/107130573</guid><author>fighting32</author><pubDate>Sat, 04 Jul 2020 21:36:30 +0800</pubDate><description><![CDATA[nginx转发请求的实现
nginx（反向代理服务器）常见的功能有
1、转发请求
2、负载均衡
3、动静分离
本文针对转发请求做一丢丢理解
转发请求指的是把我们对其他端口页面进行访问时，都会先经过nginx服务器，然后nginx服务器根据你的请求路径进行路径匹配，当发现你请求地址中有特定值时，帮你访问特定的端口页面。
具体操作
在conf下找到nginx.conf，拉到最底下，在http{ }里面进行配置
 server{
  listen       9001;//监听端口，
  server_name ]]></description><category></category></item><item><title><![CDATA[使用对象存储OSS上传文件到阿里云]]></title><link>https://blog.youkuaiyun.com/fighting32/article/details/107126541</link><guid>https://blog.youkuaiyun.com/fighting32/article/details/107126541</guid><author>fighting32</author><pubDate>Sat, 04 Jul 2020 17:01:45 +0800</pubDate><description><![CDATA[1、注册阿里云，搜索找到对象存储OSS，创建Bucket，记住Bucket名称
1、搜索对象存储OSS

2、创建Bucket

2、点击Access Key获取到AccessKey ID和AccessKey Secret

3、点击查看Bucket列表获取地域节点

4、idea中引入相关依赖
&lt;dependencies&gt;
    &lt;!-- 阿里云oss依赖 --&gt;
    &lt;dependency&gt;
        &lt;groupId&gt;com.aliyun.o]]></description><category></category></item><item><title><![CDATA[在线API文档Swagger的具体操作]]></title><link>https://blog.youkuaiyun.com/fighting32/article/details/107081113</link><guid>https://blog.youkuaiyun.com/fighting32/article/details/107081113</guid><author>fighting32</author><pubDate>Thu, 02 Jul 2020 11:59:19 +0800</pubDate><description><![CDATA[引入相关依赖
&lt;!--swagger--&gt;
&lt;dependency&gt;
    &lt;groupId&gt;io.springfox&lt;/groupId&gt;
    &lt;artifactId&gt;springfox-swagger2&lt;/artifactId&gt;
    &lt;scope&gt;provided &lt;/scope&gt;
&lt;/dependency&gt;
&lt;dependency&gt;
    &lt;groupId&gt;io]]></description><category></category></item><item><title><![CDATA[MybatisPlus实现乐观锁]]></title><link>https://blog.youkuaiyun.com/fighting32/article/details/107063966</link><guid>https://blog.youkuaiyun.com/fighting32/article/details/107063966</guid><author>fighting32</author><pubDate>Thu, 02 Jul 2020 11:36:22 +0800</pubDate><description><![CDATA[首先先介绍一下乐观锁与悲观锁。
乐观锁主要用来解决丢失更新问题。
所谓的丢失更新问题就是当一条数据同时被两个人拿到进行操作时，第一个人将数据实现了更新，紧接着第二个人拿着的数据看起来还是旧数据，实则已经被修改过了，第二个人对该数据再次进行修改。倘若两个人修改的数据不一样，第一个人就会一直以为自己已经修改了数据，并运用着自己以为改了但是被另一个人给改掉而自己却不知道的数据，实际运用场景中可能会引发较大的问题。
运用悲观锁解决问题可以用synchronized或者lock进行解决，但是带来的问题就是当一个人在操]]></description><category></category></item></channel></rss>