<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[响当当的名字]]></title><description><![CDATA[响当当的博客]]></description><link>https://blog.youkuaiyun.com/it147</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; it147]]></copyright><item><title><![CDATA[kafka消费者分区分配策略]]></title><link>https://blog.youkuaiyun.com/it147/article/details/109710950</link><guid>https://blog.youkuaiyun.com/it147/article/details/109710950</guid><author>it147</author><pubDate>Sun, 15 Nov 2020 22:09:40 +0800</pubDate><description><![CDATA[https://zhuanlan.zhihu.com/p/127349064

]]></description><category></category></item><item><title><![CDATA[mysql的MVCC讲解]]></title><link>https://blog.youkuaiyun.com/it147/article/details/109438975</link><guid>https://blog.youkuaiyun.com/it147/article/details/109438975</guid><author>it147</author><pubDate>Sun, 01 Nov 2020 22:06:54 +0800</pubDate><description><![CDATA[不好意思 这里直接放上链接了   嗷丙的mysql事务和隔离级别关系    知乎上面的关于MVCC的讲解
https://zhuanlan.zhihu.com/p/150212956？utm_source=qq&amp;utm_medium=social&amp;utm_oi=970249991863959552
https://zhuanlan.zhihu.com/p/64576887

...]]></description><category></category></item><item><title><![CDATA[锁分类]]></title><link>https://blog.youkuaiyun.com/it147/article/details/108347572</link><guid>https://blog.youkuaiyun.com/it147/article/details/108347572</guid><author>it147</author><pubDate>Tue, 01 Sep 2020 20:45:11 +0800</pubDate><description><![CDATA[锁分类
加锁方式
synchronized和lock的方式。
两者的区别的话：

synchronized是jvm层面的，锁的释放在代码块执行完成后，自动释放
Lock加锁解锁是在代码层面实现的，都需要手动的实现，否则会出现死锁的情况。所以锁的释放一定要放在finally块中，避免锁一直占用资源
Lock提供了很多的方法，比如查看线程是否获得了锁，tryLock()尝试获取锁等，操作起来比synchronized更加的灵活。

ReenTrantLock，readLock，writeLock
以上三种分别对]]></description><category></category></item><item><title><![CDATA[ThreadLocal]]></title><link>https://blog.youkuaiyun.com/it147/article/details/108308384</link><guid>https://blog.youkuaiyun.com/it147/article/details/108308384</guid><author>it147</author><pubDate>Sun, 30 Aug 2020 22:45:55 +0800</pubDate><description><![CDATA[本篇博客实在自己看了JUC视频及嗷丙的博客后编写。具体的一些地方可能写的不太清晰。详情参考嗷丙知乎   ThreadLocal讲解嗷丙-ThreadLocal
1.用途
一：线程隔离，使一个线程单独享有一个变量，从而不加锁便可以保证线程安全。
如经典场景：格式化日期，要想保证线程安全，第一种方式是加锁，但是若是线程数量多的话，锁竞争会变得很大。第二种便是为每个线程创建一个SimpleDateFormat对象，但是这样的话，若是线程有一千个，就需要创建一千个SimpleDateFormat对象，简单但太粗暴。]]></description><category></category></item><item><title><![CDATA[网络编程在线笔记]]></title><link>https://blog.youkuaiyun.com/it147/article/details/107717224</link><guid>https://blog.youkuaiyun.com/it147/article/details/107717224</guid><author>it147</author><pubDate>Fri, 31 Jul 2020 18:43:02 +0800</pubDate><description><![CDATA[以下笔记均是在往上浏览到的博客，本地已经做过简单的笔记，详情就直接贴地址了
网络编程懒人入门(一)：快速理解网络通信协议（上篇）
网络编程懒人入门(二)：快速理解网络通信协议（下篇）
网络编程懒人入门(三)：快速理解TCP协议一篇就够

...]]></description><category></category></item><item><title><![CDATA[Redis集群---数据分布策略，集群搭建，故障检测恢复，主从复制，缓存与数据库一致性问题]]></title><link>https://blog.youkuaiyun.com/it147/article/details/107450692</link><guid>https://blog.youkuaiyun.com/it147/article/details/107450692</guid><author>it147</author><pubDate>Mon, 20 Jul 2020 10:23:46 +0800</pubDate><description><![CDATA[安装ruby及客户端
第一步：安装，解压Ruby。我这里是安装在opt目录下。
[root opt]#wget https://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.8.tar.gz
[root opt]#tar zxvf ruby-2.3.8.tar.gz

第二步：进入ruby-2.3.8配置并编译源代码
[root ruby]#./configure -prefix=/usr/local/ruby
[root ruby]#make &amp;&amp; i]]></description><category></category></item><item><title><![CDATA[Redis主从复制过程和部分复制异步复制]]></title><link>https://blog.youkuaiyun.com/it147/article/details/107445949</link><guid>https://blog.youkuaiyun.com/it147/article/details/107445949</guid><author>it147</author><pubDate>Sun, 19 Jul 2020 18:42:20 +0800</pubDate><description><![CDATA[目录：复制过程数据间的同步全量复制部分复制心跳异步复制复制原理1. 复制过程复制的过程步骤如下：从节点执行 slaveof 命令从节点只是保存了 slaveof 命令中主节点的信息，并没有立即发起复制从节点内部的定时任务发现有主节点的信息，开始使用 socket 连接主节点连接建立成功后，发送 ping 命令，希望得到 pong 命令响应，否则会进行重连如果主节点设置了权限，那么就需要进行权限验证；如果验证失败，复制终止。权限验证通过后，进行数据同步，这是耗时最长的操作，主节点将把所有的数据全部发送给从节点]]></description><category></category></item><item><title><![CDATA[路径]]></title><link>https://blog.youkuaiyun.com/it147/article/details/107240012</link><guid>https://blog.youkuaiyun.com/it147/article/details/107240012</guid><author>it147</author><pubDate>Thu, 09 Jul 2020 23:07:31 +0800</pubDate><description><![CDATA[# 我他娘的发誓 这次一定一遍过，绝不重复的回头学习降低效率




redis -&gt; 多线程  -&gt; springcloud  -&gt;mysql调优 -&gt;sql注入（# $的区别） -&gt;spring源码讲解  -&gt;dubbo -&gt;网络  -&gt;消息中间件












...]]></description><category></category></item><item><title><![CDATA[慢查询日志 pipeline]]></title><link>https://blog.youkuaiyun.com/it147/article/details/107206007</link><guid>https://blog.youkuaiyun.com/it147/article/details/107206007</guid><author>it147</author><pubDate>Thu, 09 Jul 2020 16:01:43 +0800</pubDate><description><![CDATA[慢查询日志
说慢查询日志之前先说redis发送命令到结束命令的生命周期

慢查询日志的配置主要是两个参数的配置
slowlog-max-len
这个配置参数主要用来设置慢查询日志队列的长度  默认值为128
慢查询日志队列有三个特性

长度固定
先进先出队列
保存在内存中

showlog-log-slower-than
设置慢查询日志的阙值，超过多少微秒会被记录   单位微秒（1秒=1000000微秒），默认值为10000微秒（10毫秒（10ms））

其值等于 0 时表示记录所有的命令
小于0 时表示不]]></description><category></category></item><item><title><![CDATA[redis通用命令]]></title><link>https://blog.youkuaiyun.com/it147/article/details/107186036</link><guid>https://blog.youkuaiyun.com/it147/article/details/107186036</guid><author>it147</author><pubDate>Tue, 07 Jul 2020 19:08:54 +0800</pubDate><description><![CDATA[常用命令


keys [pattern] 获取键值
keys *   获取所有的键值
keys na* 获取na开头的键



dbsize : 获取键的个数


del： 删除键值对


exists key ：判断键值存不存在   存在返回1   不存在返回0


expire： 设置键值的过期时间


type ： 获取键值对的数据类型


ttl key : 获取键值对的剩余过期时间


下表是这几个函数的时间复杂度




命令
时间复杂度




keys
O(N)


dbsize
O(1)]]></description><category></category></item><item><title><![CDATA[mysql索引  MyISAM与InnoDB区别]]></title><link>https://blog.youkuaiyun.com/it147/article/details/107087828</link><guid>https://blog.youkuaiyun.com/it147/article/details/107087828</guid><author>it147</author><pubDate>Thu, 02 Jul 2020 18:31:08 +0800</pubDate><description><![CDATA[先说索引的优略势
索引是一组排好序的数据结构
优势：检索速度快，减少磁盘i/o的交互，根据索引（B+树）的分组排序特点，能够提高范围查询和分组查询，排序的效率。

劣势：索引本身也是一张表，因此也会占用存储空间。索引的维护，创建都需要时间成本，如果表数据过大，成本也会随之增加。所以索引会降低添加。删除，修改的效率。
索引的分类

主键索引（聚簇索引）
组合索引
唯一索引
普通索引
全文索引

聚簇索引与非聚簇索引
聚簇索引又称为主键索引。因此一个表里面只能有一个聚簇索引。在聚簇索引中，索引是和数据行一块存储]]></description><category></category></item><item><title><![CDATA[spring事务总结]]></title><link>https://blog.youkuaiyun.com/it147/article/details/107068589</link><guid>https://blog.youkuaiyun.com/it147/article/details/107068589</guid><author>it147</author><pubDate>Wed, 01 Jul 2020 18:36:42 +0800</pubDate><description><![CDATA[解决三大问题
1.1繁杂的事务管理API
Spring事物的核心类是	PlatformTransactionManager,叫做事务管理器，定义如下
public interface PlatformTransactionManager extends TransactionManager {
    // 获取事务（新的事务或者已经存在的事务）
    TransactionStatus getTransaction(@Nullable TransactionDefinition definition)
]]></description><category></category></item><item><title><![CDATA[mysql使用B+树]]></title><link>https://blog.youkuaiyun.com/it147/article/details/106923342</link><guid>https://blog.youkuaiyun.com/it147/article/details/106923342</guid><author>it147</author><pubDate>Tue, 23 Jun 2020 17:29:22 +0800</pubDate><description><![CDATA[概述
首先需要澄清的一点是，MySQL 跟 B+ 树没有直接的关系，真正与 B+ 树有关系的是 MySQL 的默认存储引擎 InnoDB，MySQL 中存储引擎的主要作用是负责数据的存储和提取，除了 InnoDB 之外，MySQL 中也支持 MyISAM 作为表的底层存储引擎。

我们在使用 SQL 语句创建表时就可以为当前表指定使用的存储引擎，你能在 MySQL 的文档 Alternative Storage Engines 中找到它支持的全部存储引擎，例如：MyISAM、CSV、MEMORY等，然而默认]]></description><category></category></item><item><title><![CDATA[反射中Class.forName()和ClassLoader.loadClass()的区别]]></title><link>https://blog.youkuaiyun.com/it147/article/details/106647186</link><guid>https://blog.youkuaiyun.com/it147/article/details/106647186</guid><author>it147</author><pubDate>Tue, 09 Jun 2020 17:26:18 +0800</pubDate><description><![CDATA[一 Java类装载过程

装载： 通过累的全限定名获取二进制字节流，将二进制字节流转换成方法区中的运行时数据结构，在内存中生成Java.lang.class对象；
链接： 执行下面的校验、准备和解析步骤，其中解析步骤是可以选择的；

校验：检查导入类或接口的二进制数据的正确性；（文件格式验证，元数据验证，字节码验证，符号引用验证）
准备： 给类的静态变量分配并初始化存储空间；
解析： 将常量池中的符号引用转成直接引用；

初始化： 激活类的静态变量的初始化Java代码和静态Java代码块，并初始化程序员设置]]></description><category></category></item><item><title><![CDATA[Java 线程的生命周期]]></title><link>https://blog.youkuaiyun.com/it147/article/details/106211995</link><guid>https://blog.youkuaiyun.com/it147/article/details/106211995</guid><author>it147</author><pubDate>Tue, 19 May 2020 12:30:00 +0800</pubDate><description><![CDATA[通用的生命周期

可以用如下图所示的 “五态模式” 来描述，分别为：初始状态、可运行状态、运行状态、休眠状态、终止状态。




	初始状态：线程被创建，但是还不允许分配 CPU 执行，属于编程语言特有，仅仅是在编程语言创建，操作系统层面还没有。
	
	
	可运行状态：可以分配 CPU 执行，操作系统也创建了线程。
	
	
	运行状态：可运行状态的线程获取到 CPU 时间分片就转换成了运行状态。
	
	
	休眠状态：运行状态的 线程调用了一个阻塞的 API 或者等待某个事件，就会转换成休眠状态，同时会释放 ]]></description><category></category></item><item><title><![CDATA[理解Java的三大特性之多态]]></title><link>https://blog.youkuaiyun.com/it147/article/details/106127867</link><guid>https://blog.youkuaiyun.com/it147/article/details/106127867</guid><author>it147</author><pubDate>Thu, 14 May 2020 20:22:44 +0800</pubDate><description><![CDATA[面向对象编程有三大特性：封装、继承、多态。

封装隐藏了类的内部实现机制，可以在不影响使用的情况下改变类的内部结构，同时也保护了数据。对外界而已它的内部细节是隐藏的，暴露给外界的只是它的访问方法。

继承是为了重用父类代码。两个类若存在IS-A的关系就可以使用继承。，同时继承也为实现多态做了铺垫。那么什么是多态呢？多态的实现机制又是什么？请看我一一为你揭开：

所谓多态就是指程序中定义的引用变量所指向的具体类型和通过该引用变量发出的方法调用在编程时并不确定，而是在程...]]></description><category></category></item><item><title><![CDATA[TCP的三次握手四次挥手]]></title><link>https://blog.youkuaiyun.com/it147/article/details/105801158</link><guid>https://blog.youkuaiyun.com/it147/article/details/105801158</guid><author>it147</author><pubDate>Mon, 27 Apr 2020 22:15:57 +0800</pubDate><description><![CDATA[1. https://blog.youkuaiyun.com/qq_38950316/article/details/81087809
2. https://baijiahao.baidu.com/sid=1654225744653405133&amp;wfr=spider&amp;for=pc

]]></description><category></category></item><item><title><![CDATA[Lock锁]]></title><link>https://blog.youkuaiyun.com/it147/article/details/105339777</link><guid>https://blog.youkuaiyun.com/it147/article/details/105339777</guid><author>it147</author><pubDate>Mon, 06 Apr 2020 12:55:52 +0800</pubDate><description><![CDATA[Lock简单使用
在java多线程中，锁的机制可以通过synchronized来实现，但在jdk1.5中新增加了ReentrantLock类也能达到同样的效果。下面通过一段代码来展示。
package demo_20;

import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;
...]]></description><category></category></item><item><title><![CDATA[线程可见性，Volatile关键字了解]]></title><link>https://blog.youkuaiyun.com/it147/article/details/105277659</link><guid>https://blog.youkuaiyun.com/it147/article/details/105277659</guid><author>it147</author><pubDate>Thu, 02 Apr 2020 21:17:27 +0800</pubDate><description><![CDATA[再说线程可见性之前，先来说一下主内存和本地内存的关系，两者是造成线程可见性的关键原因
1. 主内存和本地内存
JMM有以下规定:

所有的全局变量都存储在主内存中,同时每个线程也有自己独立的工作内存,工作内存中的变量内容是主内存中的拷贝
线程不能直接读写主内存中的变量,而是只能操作自己工作内存中的变量,然后再同步到主内存中
主内存是多个线程共享的,但线程间不共享工作内存，如果线程间需要通信,必须借...]]></description><category></category></item><item><title><![CDATA[多线程的常见面试题]]></title><link>https://blog.youkuaiyun.com/it147/article/details/105183278</link><guid>https://blog.youkuaiyun.com/it147/article/details/105183278</guid><author>it147</author><pubDate>Mon, 30 Mar 2020 00:15:00 +0800</pubDate><description><![CDATA[1.线程连续两次调用start()方法所产生的情况
public class TestMain {

    public static void main(String[] args) throws Exception {
        Thread thread = new Thread(new Runnable() {
            @Override
            p...]]></description><category></category></item></channel></rss>