<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[csdn_lulinwei的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/csdn_lulinwei</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; csdn_lulinwei]]></copyright><item><title><![CDATA[Execution default of goal org.springframework.boot:spring-boot-maven-plugin: XXXX .RELEASE:repackage]]></title><link>https://blog.youkuaiyun.com/csdn_lulinwei/article/details/120672038</link><guid>https://blog.youkuaiyun.com/csdn_lulinwei/article/details/120672038</guid><author>csdn_lulinwei</author><pubDate>Sat, 09 Oct 2021 15:23:56 +0800</pubDate><description><![CDATA[Spring boot 执行打包操作时候，报错如下
Execution default of goal org.springframework.boot:spring-boot-maven-plugin:XXXX RELEASE:repackage failed: Unable to find main class

根源为，在我的项目场景下，

只有如图的-boot子模块生产可执行JAR包，其他几个模块是不需要可执行的，而我的根POM里，spring boot 默认帮我加入了如下build策略

&lt;]]></description><category></category></item><item><title><![CDATA[2555555555555555555]]></title><link>https://blog.youkuaiyun.com/csdn_lulinwei/article/details/120199515</link><guid>https://blog.youkuaiyun.com/csdn_lulinwei/article/details/120199515</guid><author>csdn_lulinwei</author><pubDate>Thu, 09 Sep 2021 13:38:04 +0800</pubDate><description><![CDATA[Java开发常见面试题详解（LockSupport，AQS，Spring循环依赖，Redis）

巨輪 2021-03-28 02:16:11 12834 收藏 315
分类专栏： 面试题 文章标签： AQS Spring循环依赖 Redis LockSupport Java开发面试
版权

面试题
专栏收录该内容
3 篇文章18 订阅
订阅专栏
总览
问题 详解
String.intern()的作用 link
LeetCode的Two Sum题 link
什么是可重入锁？ li...]]></description><category></category></item><item><title><![CDATA[CentOS 7 单机安装Redis Cluster（3主3从）]]></title><link>https://blog.youkuaiyun.com/csdn_lulinwei/article/details/114624966</link><guid>https://blog.youkuaiyun.com/csdn_lulinwei/article/details/114624966</guid><author>csdn_lulinwei</author><pubDate>Wed, 10 Mar 2021 09:07:40 +0800</pubDate><description><![CDATA[为了节省机器，我们直接把6个Redis实例安装在同一台机器上（3主3从），只是使用不同的端口号。
机器IP 192.168.8.207

更新：新版的cluster已经不需要通过ruby脚本创建，删掉了ruby相关依赖的安装


cd /usr/local/soft/redis-5.0.5
mkdir redis-cluster
cd redis-cluster
mkdir 7291 7292 7293 7294 7295 7296


复制redis配置文件到7291目录


cp /usr/loc...]]></description><category></category></item><item><title><![CDATA[Redis一主二从Sentinel监控配置]]></title><link>https://blog.youkuaiyun.com/csdn_lulinwei/article/details/114624934</link><guid>https://blog.youkuaiyun.com/csdn_lulinwei/article/details/114624934</guid><author>csdn_lulinwei</author><pubDate>Wed, 10 Mar 2021 09:06:37 +0800</pubDate><description><![CDATA[开启哨兵模式，至少需要3个Sentinel实例（奇数个，否则无法选举Leader）。
本例通过3个Sentinel实例监控3个Redis服务（1主2从）。


IP地址	          节点角色&amp;端口
192.168.8.203	Master：6379 / Sentinel : 26379
192.168.8.204	Slave ：6379 / Sentinel : 26379
192.168.8.205	Slave ：6379 / Sentinel : 26379


防火墙记得关闭！！...]]></description><category></category></item><item><title><![CDATA[CentOS7安装Redis单实例]]></title><link>https://blog.youkuaiyun.com/csdn_lulinwei/article/details/114624871</link><guid>https://blog.youkuaiyun.com/csdn_lulinwei/article/details/114624871</guid><author>csdn_lulinwei</author><pubDate>Wed, 10 Mar 2021 09:04:52 +0800</pubDate><description><![CDATA[CentOS7安装Redis单实例



由于环境差异，安装过程可能遇到各种各样的问题，不要慌，根据错误提示解决即可。

1、下载redis
下载地址在：redis.io
比如把Redis安装到/usr/local/soft/


cd /usr/local/soft/
wget http://download.redis.io/releases/redis-5.0.5.tar.gz


2、解压压缩包


tar -zxvf redis-5.0.5.tar.gz


3、安装gcc依赖
Redis是C语.]]></description><category></category></item><item><title><![CDATA[重复提交，你是如何处理的？]]></title><link>https://blog.youkuaiyun.com/csdn_lulinwei/article/details/114369013</link><guid>https://blog.youkuaiyun.com/csdn_lulinwei/article/details/114369013</guid><author>csdn_lulinwei</author><pubDate>Thu, 04 Mar 2021 15:10:18 +0800</pubDate><description><![CDATA[今天早上，新来的同事小王突然问我：“周哥，什么是幂等性啊？”。然后我就跟他解释了一番，幂等性就是说无论你执行几次请求，其结果是一样的。说到了幂等就不得不说重复提交了，你连续点击提交按钮，理论上来说这是同一条数据，数据库应该只能存入一条，而实际上存放了多条，这就违反了幂等性。因此我们就需要做一些处理，来保证连续点击提交按钮后，数据库只能存入一条数据。

防止重复提交的方式很多，这里我就说一下我认为比较好用的一种。

自定义注解+Aop实现

我们通过获取用户ip及访问的接口来判断他是否重复提交，假如这个...]]></description><category></category></item><item><title><![CDATA[MyBatis 三种批量插入方式的对比 !]]></title><link>https://blog.youkuaiyun.com/csdn_lulinwei/article/details/113979559</link><guid>https://blog.youkuaiyun.com/csdn_lulinwei/article/details/113979559</guid><author>csdn_lulinwei</author><pubDate>Tue, 23 Feb 2021 11:44:22 +0800</pubDate><description><![CDATA[数据库使用的是sqlserver，JDK版本1.8，运行在SpringBoot环境下对比3种可用的方式：


	反复执行单条插入语句
	
	
	xml拼接sql
	
	
	批处理执行
	
先说结论：少量插入请使用反复插入单条数据，方便。数量较多请使用批处理方式。（可以考虑以有需求的插入数据量20条左右为界吧，在我的测试和数据库环境下耗时都是百毫秒级的，方便最重要）。无论何时都不用xml拼接sql的方式。

代码

拼接SQL的xmlnewId()是sqlserver生成UUID的函数，与本文内容无关


&]]></description><category></category></item><item><title><![CDATA[SpringBoot整合Sharding-JDBC实现分库分表]]></title><link>https://blog.youkuaiyun.com/csdn_lulinwei/article/details/109536012</link><guid>https://blog.youkuaiyun.com/csdn_lulinwei/article/details/109536012</guid><author>csdn_lulinwei</author><pubDate>Fri, 06 Nov 2020 17:28:58 +0800</pubDate><description><![CDATA[概述

什么是ShardingSphere

是一套开源的分布式数据库中间件解决方案组成的生态圈，由JDBC、Proxy和Sidecar三部分组成。其定位为关系型数据库中间件，旨在充分合理地在分布式的场景下利用关系型数据库的计算和存储能力，而并非实现一个全新的关系型数据库。更多详情请参阅ShardingSphere官网

什么是分库分表

随着时间和业务的发展，造成表里面的数据越来越多，如果再去对数据库表curd操作，很容易造成性能问题，这个时候，为了解决由于数据量过大而造成数据库性能降低的问题，常见的解决]]></description><category></category></item><item><title><![CDATA[Mysql索引学习笔记]]></title><link>https://blog.youkuaiyun.com/csdn_lulinwei/article/details/109245587</link><guid>https://blog.youkuaiyun.com/csdn_lulinwei/article/details/109245587</guid><author>csdn_lulinwei</author><pubDate>Fri, 23 Oct 2020 16:45:23 +0800</pubDate><description><![CDATA[Mysql索引学习笔记

分类:Mysql

undefined

1、分类

　　MySQL索引分为普通索引、唯一索引、主键索引、组合索引、全文索引。索引不会包含有null值的列，索引项可以为null（唯一索引、组合索引等），但是只要列中有null值就不会被包含在索引中。

  （1）普通索引：create index index_name on table(column)；

  或者创建表时指定，create table(..., index index_name column);

 ...]]></description><category></category></item><item><title><![CDATA[lvs+nginx负载均衡]]></title><link>https://blog.youkuaiyun.com/csdn_lulinwei/article/details/109245387</link><guid>https://blog.youkuaiyun.com/csdn_lulinwei/article/details/109245387</guid><author>csdn_lulinwei</author><pubDate>Fri, 23 Oct 2020 16:44:03 +0800</pubDate><description><![CDATA[lvs+nginx负载均衡

分类:Keepalived,Linux,Load Balancing,Nginx

标签:Load Balancing



1   学习目标

掌握什么是负载均衡及负载均衡的作用和意义。

了解lvs负载均衡的三种模式。

了解lvs-DR负载均衡部署方法。

掌握nginx实现负载均衡的方法。

掌握lvs+nginx负载均衡拓扑结构。



2 负载均衡方案

2.1 什么是负载均衡

 一台普通服务器的处理能力是有...]]></description><category></category></item><item><title><![CDATA[这篇 MySQL 索引和 B+Tree 讲的太通俗易懂！]]></title><link>https://blog.youkuaiyun.com/csdn_lulinwei/article/details/109091639</link><guid>https://blog.youkuaiyun.com/csdn_lulinwei/article/details/109091639</guid><author>csdn_lulinwei</author><pubDate>Thu, 15 Oct 2020 10:08:19 +0800</pubDate><description><![CDATA[正确的创建合适的索引，是提升数据库查询性能的基础。在正式讲解之前，对后面举例中使用的表结构先简单看一下：


create table user
(
    id     bigint  not null comment 'id' primary key,
    name   varchar(200) null comment 'name',
    age    bigint       null comment 'age',
    gender int          null comment ']]></description><category></category></item><item><title><![CDATA[Java：CAS(乐观锁)]]></title><link>https://blog.youkuaiyun.com/csdn_lulinwei/article/details/108983355</link><guid>https://blog.youkuaiyun.com/csdn_lulinwei/article/details/108983355</guid><author>csdn_lulinwei</author><pubDate>Fri, 09 Oct 2020 17:51:51 +0800</pubDate><description><![CDATA[本文讲解CAS机制，主要是因为最近准备面试题，发现这个问题在面试中出现的频率非常的高，因此把自己学习过程中的一些理解记录下来，希望能对大家也有帮助。

什么是悲观锁、乐观锁？在java语言里，总有一些名词看语义跟本不明白是啥玩意儿，也就总有部分面试官拿着这样的词来忽悠面试者，以此来找优越感，其实理解清楚了，这些词也就唬不住人了。

synchronized是悲观锁，这种线程一旦得到锁，其他需要锁的线程就挂起的情况就是悲观锁。
	CAS操作的就是乐观锁，每次不加锁而是假设没有冲突而去完成某项操作，如果因为冲突]]></description><category></category></item><item><title><![CDATA[CAS]]></title><link>https://blog.youkuaiyun.com/csdn_lulinwei/article/details/108982987</link><guid>https://blog.youkuaiyun.com/csdn_lulinwei/article/details/108982987</guid><author>csdn_lulinwei</author><pubDate>Fri, 09 Oct 2020 17:34:39 +0800</pubDate><description><![CDATA[1、什么是CAS？

CAS：Compare and Swap，即比较再交换。

jdk5增加了并发包java.util.concurrent.*,其下面的类使用CAS算法实现了区别于synchronouse同步锁的一种乐观锁。JDK 5之前Java语言是靠synchronized关键字保证同步的，这是一种独占锁，也是是悲观锁。

2、CAS算法理解

对CAS的理解，CAS是一种无锁算法，CAS有3个操作数，内存值V，旧的预期值A，要修改的新值B。当且仅当预期值A和内存值V相同时，将内存值V修改为B，否则]]></description><category></category></item><item><title><![CDATA[2020-10-09]]></title><link>https://blog.youkuaiyun.com/csdn_lulinwei/article/details/108982961</link><guid>https://blog.youkuaiyun.com/csdn_lulinwei/article/details/108982961</guid><author>csdn_lulinwei</author><pubDate>Fri, 09 Oct 2020 17:33:46 +0800</pubDate><description><![CDATA[AQS详解（面试）

AQS原理
AQS：AbstractQuenedSynchronizer抽象的队列式同步器。是除了java自带的synchronized关键字之外的锁机制。
AQS的全称为（AbstractQueuedSynchronizer），这个类在java.util.concurrent.locks包

AQS的核心思想是，如果被请求的共享资源空闲，则将当前请求资源的线程设置为有效的工作线程，并将共享资源设置为锁定状态，如果被请求的共享资源被占用，那么就需要一套线程阻塞等待以及被唤醒时锁分配的机]]></description><category></category></item><item><title><![CDATA[解决IDEA下SpringBoot启动没有Run Dashboard并找回]]></title><link>https://blog.youkuaiyun.com/csdn_lulinwei/article/details/108822512</link><guid>https://blog.youkuaiyun.com/csdn_lulinwei/article/details/108822512</guid><author>csdn_lulinwei</author><pubDate>Sun, 27 Sep 2020 10:19:46 +0800</pubDate><description><![CDATA[解决IDEA下SpringBoot启动没有Run Dashboard并找回

前两天看到别人SpringBoot启动服务，启动器是长这样的



而我的呢？是这样的





Run Dashboard 它是一个代替Run窗口的一个更好清晰简洁的一个启动器。

如果我们需要启动多个窗口时，Run窗口不能让我们直观的看到我们看到每一个端口的变化。（上图所示，一个服务占一个窗口）



一般有时候创建springboot项目的时候右下角可以提示你打开RunDashboard，但是如果不提醒就需要自己配置了...]]></description><category></category></item><item><title><![CDATA[Docker安装MySQL8]]></title><link>https://blog.youkuaiyun.com/csdn_lulinwei/article/details/108800684</link><guid>https://blog.youkuaiyun.com/csdn_lulinwei/article/details/108800684</guid><author>csdn_lulinwei</author><pubDate>Fri, 25 Sep 2020 17:10:20 +0800</pubDate><description><![CDATA[安装MySQL8.0:

拉取镜像




docker pull mysql:8.0


创建并启动容器




docker run --name mysql8.0 \
-p 3306:3306 \
--restart=always \
-e MYSQL_ROOT_PASSWORD=root \
-v /var/lib/mysql/:/var/lib/mysql/ \
-d mysql:8.0 \
--character-set-server=utf8mb4 \
--collation-server..]]></description><category></category></item><item><title><![CDATA[“分布式事务”]]></title><link>https://blog.youkuaiyun.com/csdn_lulinwei/article/details/108704552</link><guid>https://blog.youkuaiyun.com/csdn_lulinwei/article/details/108704552</guid><author>csdn_lulinwei</author><pubDate>Mon, 21 Sep 2020 10:41:45 +0800</pubDate><description><![CDATA[收藏 | 第一次有人把“分布式事务”讲的这么简单明了

不知道你是否遇到过这样的情况，去小卖铺买东西，付了钱，但是店主因为处理了一些其他事，居然忘记你付了钱，又叫你重新付。

作者：咖啡拿铁来源：咖啡拿铁微信公众号|2018-08-14 09:28

收藏

分享



又或者在网上购物明明已经扣款，但是却告诉我没有发生交易。这一系列情况都是因为没有事务导致的。这说明了事务在生活中的一些重要性。

有了事务，你去小卖铺买东西，那就是一手交钱一手交货。有了事务，你去网上购物，扣款即产生订单交易。

事...]]></description><category></category></item><item><title><![CDATA[rabbitmq]]></title><link>https://blog.youkuaiyun.com/csdn_lulinwei/article/details/108704347</link><guid>https://blog.youkuaiyun.com/csdn_lulinwei/article/details/108704347</guid><author>csdn_lulinwei</author><pubDate>Mon, 21 Sep 2020 10:33:51 +0800</pubDate><description><![CDATA[1.马上就要到了程序员的黄金时间了，也就是所谓的金三银四，作为一个实习生的我，也安耐不住我内心的骚动，也想试水自由市场，但是大家也都明白，不准备些面试题，是无法为自己加分的，我打算每周在上班之余抽时间研究一项技术，来和大家一起分享，打算研究的技术，都是现在比较主流的东西，弄明白了，基本面试就稳了，预计会在以后推出

Redis
	RabbitMQ
	SpringCloud组件
	ElasticSearch
	Spring Security Oauth2
	zokeerper
	其他
希望大家能够时刻关注我.]]></description><category></category></item><item><title><![CDATA[mybatis 3.4.6源码深度解析之调用主流程]]></title><link>https://blog.youkuaiyun.com/csdn_lulinwei/article/details/108657872</link><guid>https://blog.youkuaiyun.com/csdn_lulinwei/article/details/108657872</guid><author>csdn_lulinwei</author><pubDate>Fri, 18 Sep 2020 08:41:25 +0800</pubDate><description><![CDATA[文章目录

1 概述
	2 环境搭建
	3 项目层次结构介绍
	4 mybatis解析配置文件时序图
	5 mybatis 调用时序图


1 概述

MyBatis 是一款优秀的持久层框架，它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集，其通过XML配置的方式消除了绝大部分JDBC重复代码以及参数的设置，结果集的映射。作为开发人员，为了更好地学习和，有必要深入研究了解优秀框架的源码和mybatis的设计思路，以便更好的借鉴。同时，.]]></description><category></category></item><item><title><![CDATA[三种实现分布式锁的方式]]></title><link>https://blog.youkuaiyun.com/csdn_lulinwei/article/details/108649058</link><guid>https://blog.youkuaiyun.com/csdn_lulinwei/article/details/108649058</guid><author>csdn_lulinwei</author><pubDate>Thu, 17 Sep 2020 17:48:03 +0800</pubDate><description><![CDATA[一、为什么要使用分布式锁

我们在开发应用的时候，如果需要对某一个共享变量进行多线程同步访问的时候，可以使用我们学到的Java多线程的18般武艺进行处理，并且可以完美的运行，毫无Bug！

注意这是单机应用，也就是所有的请求都会分配到当前服务器的JVM内部，然后映射为操作系统的线程进行处理！而这个共享变量只是在这个JVM内部的一块内存空间！

后来业务发展，需要做集群，一个应用需要部署到几台机器上然后做负载均衡，大致如下图：



上图可以看到，变量A存在JVM1、JVM2、JVM3三个JVM内存中（这个变]]></description><category></category></item></channel></rss>