<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[clonechen]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/qq_41170102</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; qq_41170102]]></copyright><item><title><![CDATA[Spring Cloud Feign 请求添加headers]]></title><link>https://blog.youkuaiyun.com/qq_41170102/article/details/109229633</link><guid>https://blog.youkuaiyun.com/qq_41170102/article/details/109229633</guid><author>qq_41170102</author><pubDate>Thu, 22 Oct 2020 20:19:07 +0800</pubDate><description><![CDATA[背景
部门技术升级，HttpClient需要升级Feign调用，重构某一个资方时遇到请求需要添加上自定义签名headers，踩坑后记录了下来
方案一：方法上的@RequestMapping注解添加headers信息
@RequestMapping注解的属性中包含一个headers数组，所以尝试使用，在指定的方法上@RequestMapping注解中添加需要的headers，可以是写死的，也可以读取配置，测试是有效的
同理@RequestMapping一组的@PostMapping，@GetMapping注解]]></description><category></category></item><item><title><![CDATA[搞懂MySQL索引策略]]></title><link>https://blog.youkuaiyun.com/qq_41170102/article/details/107531501</link><guid>https://blog.youkuaiyun.com/qq_41170102/article/details/107531501</guid><author>qq_41170102</author><pubDate>Sat, 25 Jul 2020 17:24:25 +0800</pubDate><description><![CDATA[索引常用的实现
哈希实现
哈希索引基于哈希表实现，只能用于精准匹配查询，不适用于范围查询和索引排序
在MySQL中只有Memory引擎支持哈希索引，但是可以自定义创建哈希索引使用。
思路：在B-Tree的基础上创建一个伪哈希索引，使用哈希值而不是键值进行索引查找，使用时需要手动的指定哈希函数进行哈希化
例子：
根据url查找id
SELECT id FROM url WHERE url="http://www.mysql.com"

如果用B-Tree存储url索引可能会非常大，且长度变化区间很大
可以维护]]></description><category></category></item><item><title><![CDATA[Spring Boot 整合 Redis 正确的实现分布式锁]]></title><link>https://blog.youkuaiyun.com/qq_41170102/article/details/107007576</link><guid>https://blog.youkuaiyun.com/qq_41170102/article/details/107007576</guid><author>qq_41170102</author><pubDate>Sun, 28 Jun 2020 21:52:01 +0800</pubDate><description><![CDATA[前言
最近在做分块上传的业务，使用到了Redis来维护上传过程中的分块编号。
每上传完成一个分块就获取一下文件的分块集合，加入新上传的编号，手动接口测试下是没有问题的，前端通过并发上传调用就出现问题了，并发的get再set，就会存在覆盖写现象，导致最后的分块数据不对，不能触发分块合并请求。
遇到并发二话不说先上锁，针对执行代码块加了一个JVM锁之后问题就解决了。
仔细一想还是不太对，项目是分布式部署的，做了负载均衡，一个节点的代码被锁住了，请求轮询到其他节点还是可以进行覆盖写，并没有解决到问题啊
没办法，只]]></description><category></category></item><item><title><![CDATA[Docker搭建MySQL的PXC方案集群]]></title><link>https://blog.youkuaiyun.com/qq_41170102/article/details/106887498</link><guid>https://blog.youkuaiyun.com/qq_41170102/article/details/106887498</guid><author>qq_41170102</author><pubDate>Sun, 21 Jun 2020 17:34:46 +0800</pubDate><description><![CDATA[安装Docker环境
搭建5个MySQL节点

拉取镜像到本地

docker pull percona/percona‐xtradb‐cluster


镜像名称太长不方便使用，进行一下改名，改名后删除原来的镜像

docker tag percona/percona‐xtradb‐cluster pxc
docker rmi percona/percona‐xtradb‐cluster


创建内网网段net1

创建网段：docker network create --subnet=172.18.0.]]></description><category></category></item><item><title><![CDATA[Docker搭建3主3从Redis Cluster集群]]></title><link>https://blog.youkuaiyun.com/qq_41170102/article/details/106882848</link><guid>https://blog.youkuaiyun.com/qq_41170102/article/details/106882848</guid><author>qq_41170102</author><pubDate>Sun, 21 Jun 2020 16:35:36 +0800</pubDate><description><![CDATA[前言
本文将采取两种方式来构建3主3从的RedisCluser集群

第一种：利用已经配置好的镜像进行快速搭建
第二种：使用官方Redis镜像手动搭建

利用已经配置好的镜像进行快速搭建
此处使用镜像由慕课网的神思者老师提供
1. 拉取配置好的Redis镜像
   docker pull yyyyttttwwww/redis

2. 创建集群使用的网段redis_net
docker network create --subnet=172.19.0.0/16 redis_net

3. 修改镜像的名称
将镜]]></description><category></category></item><item><title><![CDATA[Docker部署单节点的Spring Boot项目]]></title><link>https://blog.youkuaiyun.com/qq_41170102/article/details/106886203</link><guid>https://blog.youkuaiyun.com/qq_41170102/article/details/106886203</guid><author>qq_41170102</author><pubDate>Sun, 21 Jun 2020 16:24:59 +0800</pubDate><description><![CDATA[文章目录Docker环境的安装Spring Boot项目 Jar包生成Dockerfile编写Spring Boot项目部署可能会用到的Docker指令汇总
Docker环境的安装
本文的操作均基于CentOS操作系统

卸载本地可能存在的旧版本docker

sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-]]></description><category></category></item><item><title><![CDATA[RocketMQ踩坑记录]]></title><link>https://blog.youkuaiyun.com/qq_41170102/article/details/106665934</link><guid>https://blog.youkuaiyun.com/qq_41170102/article/details/106665934</guid><author>qq_41170102</author><pubDate>Wed, 10 Jun 2020 15:22:29 +0800</pubDate><description><![CDATA[启动Broker和namesrv时报错
错误内容
JRE version: (8.0_172-b11) (build )
Java VM: Java HotSpot™ 64-Bit Server VM (25.172-b11 mixed mode linux-amd64 compressed oops)
Java运行时环境的内存不足，无法继续，本机内存分配（mmap）未能映射8589934592字节，用于提交保留内存
分析
分配内存不足，默认是分配了8个g，服务器总共只有4个g，需要修改运行时JVM参数配置]]></description><category></category></item><item><title><![CDATA[面试都说自己会Redis，看看这些问题都学废了吗？]]></title><link>https://blog.youkuaiyun.com/qq_41170102/article/details/106523278</link><guid>https://blog.youkuaiyun.com/qq_41170102/article/details/106523278</guid><author>qq_41170102</author><pubDate>Wed, 03 Jun 2020 14:35:00 +0800</pubDate><description><![CDATA[本文问题总结：来自于，慕课网《Java架构师成长直通车》第八周第1-8节的汇总
本文问题参考回答：来自博主自己的学习笔记和疯狂的Google现学的，由于学的不多了解有限，参考回答表述不正确的欢迎提出，共同进步。
文章目录1.  什么是Redis？2. Redis的全称是什么3. Redis的数据类型？4. 使用Redis有哪些好处？5. Redis相比Memcache有哪些好处？6. Memcache和Redis的区别都有哪些？7. Redis是单进程单线程的吗？为什么那么快那么高效？8. 一个字符串类型的]]></description><category></category></item><item><title><![CDATA[【2020】超100篇牛客网Java面经高频知识点汇总]]></title><link>https://blog.youkuaiyun.com/qq_41170102/article/details/106388855</link><guid>https://blog.youkuaiyun.com/qq_41170102/article/details/106388855</guid><author>qq_41170102</author><pubDate>Wed, 27 May 2020 19:34:13 +0800</pubDate><description><![CDATA[总觉得自己好像什么都会点，但是面试就被问得很懵逼，自己很菜就不再吐槽了

最近疯狂的在牛客刷面经，但是过目就忘了！！！所以分门别类的记录了一下高频的考点。
何为高频的考点？快速扫描了七八十篇面经后，再看的面经绝大部分都在我笔记覆盖了！
所以看完了100多篇就没怎么看了，还是整理整理开始狂补基础知识吧！

本文内容来自陌陌、美团、阿里、链家、快手、京东、瓜子、滴滴、百度、爱奇艺、vivo等十多个公司最近三年的100多篇面经中比较高频的总结，有的是校招的有的是实习的，不过不影响学习。学习嘛，反正都得学。


一]]></description><category></category></item><item><title><![CDATA[JVM内存结构和Java内存模型别再傻傻分不清了]]></title><link>https://blog.youkuaiyun.com/qq_41170102/article/details/104650162</link><guid>https://blog.youkuaiyun.com/qq_41170102/article/details/104650162</guid><author>qq_41170102</author><pubDate>Sat, 23 May 2020 16:55:16 +0800</pubDate><description><![CDATA[JVM内存结构和Java内存模型都是面试的热点问题，名字看感觉都差不多，网上有些博客也都把这两个概念混着用，实际上他们之间差别还是挺大的。
通俗点说，JVM内存结构是与JVM的内部存储结构相关，而Java内存模型是与多线程编程相关，本文针对这两个总是被混用的概念展开讲解。
文章目录JVM内存结构JVM构成JVM内存结构程序计数器虚拟机栈本地方法栈堆方法区GC垃圾回收机制1. 垃圾判别方法引用计数算法可达性分析算法2. 垃圾回收算法标记清除法标记整理法复制算法3. 分代垃圾回收机制4. 垃圾回收器5. 四种引]]></description><category></category></item><item><title><![CDATA[HBase的读写流程]]></title><link>https://blog.youkuaiyun.com/qq_41170102/article/details/105821145</link><guid>https://blog.youkuaiyun.com/qq_41170102/article/details/105821145</guid><author>qq_41170102</author><pubDate>Fri, 08 May 2020 17:16:37 +0800</pubDate><description><![CDATA[HBase的写流程


Client访问zookeeper获取指定的RegionServer的地址（缓存meta表）
Client向RegionServer发起写请求，RegionServer接收数据写入内存
当MemStore大小达到一定值时会将数据flush到StoreFile文件并且存储在HDFS上



RegionServer管理着多个Region，每个Region对应着一个HLog实例...]]></description><category></category></item><item><title><![CDATA[逐步掌握HBase的Java API常用操作]]></title><link>https://blog.youkuaiyun.com/qq_41170102/article/details/105999612</link><guid>https://blog.youkuaiyun.com/qq_41170102/article/details/105999612</guid><author>qq_41170102</author><pubDate>Fri, 08 May 2020 17:10:54 +0800</pubDate><description><![CDATA[文章目录引入依赖连接工具类基础工具类基础工具类测试HBase过滤器使用综合案例
引入依赖
首先需要引入HBase相关依赖
		&lt;dependency&gt;
            &lt;groupId&gt;org.apache.hbase&lt;/groupId&gt;
            &lt;artifactId&gt;hbase-client&lt;/artifactId&...]]></description><category></category></item><item><title><![CDATA[Spring Boot + JWT + Mybatis Plus搭建通用快速开发模板]]></title><link>https://blog.youkuaiyun.com/qq_41170102/article/details/105907709</link><guid>https://blog.youkuaiyun.com/qq_41170102/article/details/105907709</guid><author>qq_41170102</author><pubDate>Mon, 04 May 2020 14:58:45 +0800</pubDate><description><![CDATA[本文将从如何创建Spring Boot项目开始讲解如何搭建一个较为通用的快速开发模板，方便在以后的开发中可以快速的应用，做一个高效的cv工程师，避免每次写都要去以前的项目里翻工具类和通用配置。
做高效cv工程师，从搭建自己的常用通用开发模板开始吧，本文的项目源码都放在我的github
上了，有用就给上一个Star吧
文章目录创建一个Spring Boot项目基础配置编写日志配置接口文档Swagge...]]></description><category></category></item><item><title><![CDATA[@RequestBody部分属性为null的问题]]></title><link>https://blog.youkuaiyun.com/qq_41170102/article/details/105905761</link><guid>https://blog.youkuaiyun.com/qq_41170102/article/details/105905761</guid><author>qq_41170102</author><pubDate>Sun, 03 May 2020 17:22:03 +0800</pubDate><description><![CDATA[Spring Boot项目中使用@RequestBody接收请求数据，前端通过json格式传递数据，发现获取不到所发送的部分数据

实体类

@ApiModel(value = "码表分类")
@Data
public class ClassVo {
    @ApiModelProperty(value = "码表分类编号", required = true)
    private Strin...]]></description><category></category></item><item><title><![CDATA[Spring Boot项目配置阿里云ssl证书]]></title><link>https://blog.youkuaiyun.com/qq_41170102/article/details/105837477</link><guid>https://blog.youkuaiyun.com/qq_41170102/article/details/105837477</guid><author>qq_41170102</author><pubDate>Wed, 29 Apr 2020 13:11:46 +0800</pubDate><description><![CDATA[最近参与了一个微信小程序的项目，API要求服务器域名是Https的，所以研究了一下ssl证书在Spring Boot中的配置
首先，到云服务提供商申请一套SSL证书，这里就不提供具体的申请流程了
申请到证书之后下载证书

现在Tomcat的进行下载，下载解压后有两个文件

分别是.pfx后缀和.txt后缀的
打开我们的项目（这里就不演示如何构建自己的基于Spring Boot的项目了）
将.pfx...]]></description><category></category></item><item><title><![CDATA[彻底搞懂死锁的前世今生]]></title><link>https://blog.youkuaiyun.com/qq_41170102/article/details/104752791</link><guid>https://blog.youkuaiyun.com/qq_41170102/article/details/104752791</guid><author>qq_41170102</author><pubDate>Mon, 27 Apr 2020 14:39:32 +0800</pubDate><description><![CDATA[关于死锁，你知道多少？
本文就什么是死锁？怎么找到死锁？怎么解决死锁？怎么避免死锁等问题展开分析，通过大量的代码和案例演示向大家描述死锁的前世今生。
快速到达看这里死锁是什么，有什么危害？写一个死锁的例子案例一：必然发生死锁案例二：两个账户转账案例三：多人多次转账发生死锁必须满足哪些条件如何定位死锁有哪些解决死锁问题的策略？线上发生死锁怎么办常见修复策略哲学家就餐问题问题描述代码演示多种解决方案改...]]></description><category></category></item><item><title><![CDATA[Java高效编程类库-Guava入门与实践]]></title><link>https://blog.youkuaiyun.com/qq_41170102/article/details/105663618</link><guid>https://blog.youkuaiyun.com/qq_41170102/article/details/105663618</guid><author>qq_41170102</author><pubDate>Tue, 21 Apr 2020 21:10:11 +0800</pubDate><description><![CDATA[文章目录Guava简介对null处理 ：Optional类不可变集合 ：Immutable*类新的集合类型 Multiset接口常用工具集 ：Sets、Lists类IO操作: Files类最后
Guava的类特别多，就将常用的进行展开记录，以后需要用到了再补充
Guava简介
Guava工程包含了若干个被Google的Java项目广泛依赖的核心库，例如：集合、缓存、原生类型支持、并发库、通用注解、...]]></description><category></category></item><item><title><![CDATA[Java自动化资源关闭利器 - try-with-resource使用实践]]></title><link>https://blog.youkuaiyun.com/qq_41170102/article/details/105658805</link><guid>https://blog.youkuaiyun.com/qq_41170102/article/details/105658805</guid><author>qq_41170102</author><pubDate>Tue, 21 Apr 2020 15:36:23 +0800</pubDate><description><![CDATA[在JDK 7中，引入了try-with-resource用于替代在try-catch-finally中手动的资源关闭
通常需要我们手动释放的资源包括：

文件/流资源
socket资源
数据库连接资源

这些资源不能自动的被回收，长时间无效占用，当超过最大限制后，将会无资源可用，最终导致系统无法正常运行
以文件拷贝为例演示JDK 7之前和引入try-with-resource后的差异

使用try...]]></description><category></category></item><item><title><![CDATA[Java数据处理利器-Stream流编程入门]]></title><link>https://blog.youkuaiyun.com/qq_41170102/article/details/105654847</link><guid>https://blog.youkuaiyun.com/qq_41170102/article/details/105654847</guid><author>qq_41170102</author><pubDate>Tue, 21 Apr 2020 13:59:36 +0800</pubDate><description><![CDATA[文章目录什么是流怎么使用流编程中间操作终端操作构建流
什么是流
Java 8 API添加了一个新的抽象称为流Stream，其可以以一种声明式的方式处理数据。它将基础操作链接起来，能完成复杂的数据处理流水线，并提供了透明的并行处理机制。
Stream流的组成

数据源
中间操作
终端操作

一图胜千言，从整体上了解下相关的内容

流与集合的区别：

流相对于是时间上的集合，得到的是某一时刻的数据（面...]]></description><category></category></item><item><title><![CDATA[面试必刷的算法题 - 剑指offer题集Java实现]]></title><link>https://blog.youkuaiyun.com/qq_41170102/article/details/105455338</link><guid>https://blog.youkuaiyun.com/qq_41170102/article/details/105455338</guid><author>qq_41170102</author><pubDate>Sun, 12 Apr 2020 22:14:20 +0800</pubDate><description><![CDATA[本文的题目均来自LeetCode的剑指offer题库
文章目录基础知识数据结构面试题03.数组中重复的数字面试题04.二维数组中的查找面试题05.替换空格面试题06.从尾到头打印链表面试题07.重建二叉树面试题09.用两个栈实现队列算法与数据操作面试题10-I.斐波那契数列面试题11.旋转数组的最小数字面试题12.矩阵中的路径面试题13.机器人的运动范围[面试题14-I. 剪绳子](https:/...]]></description><category></category></item></channel></rss>