<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[风信子]]></title><description><![CDATA[书到用时方恨少]]></description><link>https://blog.youkuaiyun.com/houwanle</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; houwanle]]></copyright><item><title><![CDATA[MySQL：int(1)和int(10)的区别]]></title><link>https://blog.youkuaiyun.com/houwanle/article/details/123192185</link><guid>https://blog.youkuaiyun.com/houwanle/article/details/123192185</guid><author>houwanle</author><pubDate>Mon, 28 Feb 2022 21:07:59 +0800</pubDate><description><![CDATA[我们知道在mysql中int占4个字节，那么对于无符号的int，最大值2^32-1=4294967295 ，将近40亿，难道用了int(1)，就不能达到这个最大值？

id字段为无符号的int(1)

CREATE TABLE `user` (
  `id` int(1) unsigned NOT NULL AUTO_INCREMENT,
   PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4;


插入一]]></description><category></category></item><item><title><![CDATA[MySQL：数据库设计规范]]></title><link>https://blog.youkuaiyun.com/houwanle/article/details/121744559</link><guid>https://blog.youkuaiyun.com/houwanle/article/details/121744559</guid><author>houwanle</author><pubDate>Mon, 06 Dec 2021 12:57:39 +0800</pubDate><description><![CDATA[1. 数据库命名规范

所有数据库对象名称必须使用小写字母并用下划线分割；（mysql区分大小写）
所有数据库对象名称禁止使用MySQL保留关键字；（from）
数据库对象的命名要能做到见名识义，并且最好不要超过32个字符；
临时库表必须以tmp为前缀并以日期为后缀；
备份库，备份表必须以bak为前缀并以日期为后缀；
所有存储相同数据的列名和列类型必须一致；

2. 数据库基本设计规范

所有表必须使用 Innodb 存储引擎；

MySQL5.5使用之前Myisam（默认存储引擎）情况；
5.6 以后的默]]></description><category></category></item><item><title><![CDATA[Java中List去重]]></title><link>https://blog.youkuaiyun.com/houwanle/article/details/119908916</link><guid>https://blog.youkuaiyun.com/houwanle/article/details/119908916</guid><author>houwanle</author><pubDate>Wed, 25 Aug 2021 12:56:11 +0800</pubDate><description><![CDATA[import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;

public class Test {

	public static void main(String[] args) {
		
		List&lt;String&gt; list =]]></description><category></category></item><item><title><![CDATA[docker上安装Elasticsearch+ik分词器+kibana]]></title><link>https://blog.youkuaiyun.com/houwanle/article/details/119189096</link><guid>https://blog.youkuaiyun.com/houwanle/article/details/119189096</guid><author>houwanle</author><pubDate>Wed, 28 Jul 2021 20:33:53 +0800</pubDate><description><![CDATA[一、安装部署ES和Kibana

下载ealastic search和kibana(es的可视化管理页面)

docker pull elasticsearch:7.6.2

docker pull kibana:7.6.2


配置

mkdir -p /home/lele/elasticsearch/config

mkdir -p /home/lele/elasticsearch/data

echo "http.host: 0.0.0.0" &gt; /home/lele/elasticsearch]]></description><category></category></item><item><title><![CDATA[JVM：GC和GC-Tuning]]></title><link>https://blog.youkuaiyun.com/houwanle/article/details/118626594</link><guid>https://blog.youkuaiyun.com/houwanle/article/details/118626594</guid><author>houwanle</author><pubDate>Sat, 10 Jul 2021 07:05:26 +0800</pubDate><description><![CDATA[JVM：GC和GC-Tuning
GC的基础知识
1.什么是垃圾

C语言申请内存：malloc free
C++： new delete
Java: new ？
自动内存回收，编程上简单，系统不容易出错，手动释放内存，容易出两种类型的问题：

忘记回收
多次回收


没有任何引用指向的一个对象或者多个对象（循环引用）
2.如何定位垃圾


引用计数（Reference Count）

不能解决循环引用的问题


对象的引用数变为0了，那么该对象就成为垃圾了。



根可达算法（Root Searching]]></description><category></category></item><item><title><![CDATA[JVM（五）：Java运行时数据区和常用指令]]></title><link>https://blog.youkuaiyun.com/houwanle/article/details/117944373</link><guid>https://blog.youkuaiyun.com/houwanle/article/details/117944373</guid><author>houwanle</author><pubDate>Wed, 16 Jun 2021 07:34:21 +0800</pubDate><description><![CDATA[JVM（五）：Java运行时数据区和常用指令

jvms 2.4 2.5


指令集分类

基于寄存器的指令集（JVM）
基于栈的指令集 Hotspot中的Local Variable Table = JVM中的寄存器

Runtime Data Area


PC程序计数器

存放指令位置
虚拟机的运行，类似于这样的循环

while(not end) {
  取PC中的位置，找到对应位置的指令；
  执行该指令；
  PC++；
}

JVM stacks

Frame  – 每个方法对应一个栈帧

L]]></description><category></category></item><item><title><![CDATA[JVM（四）：Java内存模型（JMM）]]></title><link>https://blog.youkuaiyun.com/houwanle/article/details/117394064</link><guid>https://blog.youkuaiyun.com/houwanle/article/details/117394064</guid><author>houwanle</author><pubDate>Sun, 30 May 2021 07:56:53 +0800</pubDate><description><![CDATA[JVM（四）：Java内存模型（JMM）
硬件层的并发优化基础知识


存储器的层次结构



从CPU到各层所需要的时间



硬件层数据一致性协议

多线程一致性的硬件层支持(老的CPU使用的)

Intel中的MESI-Cache一致性协议

协议很多，Intel采用MESI（https://www.cnblogs.com/z00377750/p/9180644.html）
现代CPU数据一致性实现 = 缓存锁（MESI…） + 总线锁
读取缓存以cache line为基本单位，目前64bytes；
]]></description><category></category></item><item><title><![CDATA[JVM（三）：ClassLoadingLinkingInitializing]]></title><link>https://blog.youkuaiyun.com/houwanle/article/details/117089386</link><guid>https://blog.youkuaiyun.com/houwanle/article/details/117089386</guid><author>houwanle</author><pubDate>Thu, 20 May 2021 19:24:17 +0800</pubDate><description><![CDATA[类加载过程

Loading：将Class文件加载到内存中


类加载器   


类加载器中的类加载过程



类加载器范围


（来自Launcher源码）

sun.boot.class.path

Bootstrap ClassLoader加载路径


java.ext.dirs

ExtensionClassLoader加载路径


java.class.path

AppClassLoader加载路径





测试代码
package com.lele.jvm.classloader;

..]]></description><category></category></item><item><title><![CDATA[JVM（二）：Class文件格式]]></title><link>https://blog.youkuaiyun.com/houwanle/article/details/116879554</link><guid>https://blog.youkuaiyun.com/houwanle/article/details/116879554</guid><author>houwanle</author><pubDate>Sun, 16 May 2021 07:29:22 +0800</pubDate><description><![CDATA[二进制字节流


数据类型：u1 u2 u4 u8 和 _info（表类型）

_info 的来源是hotspot源码中的写法



查看16进制格式的ClassFile

sublime/notepad/
IDEA插件-BinEd



有很多可以观察ByteCode的方法

javap：显示class文件信息（java自带）
JBE:可以直接修改
JClassLib:IDEA插件之一



classfile构成
classFile {
  u4 magic;
  u2 minor_version;..]]></description><category></category></item><item><title><![CDATA[JVM（一）：JVM入门]]></title><link>https://blog.youkuaiyun.com/houwanle/article/details/116864937</link><guid>https://blog.youkuaiyun.com/houwanle/article/details/116864937</guid><author>houwanle</author><pubDate>Sat, 15 May 2021 22:12:07 +0800</pubDate><description><![CDATA[1.JVM基础知识

Java的解释和编译是可以混合的。

100多种语言可以直接运行在JVM虚拟机上


JVM是一种规范

java virtual machine specifications
https://docs.oracle.com/en/java/javase/13/
https://docs.oracle.com/javase/specs/index.html


虚构出来的一台计算机

字节码指令集（汇编语言）
内存管理：栈 堆 方法区等



2.javac的过程

3.常见的JVM实]]></description><category></category></item><item><title><![CDATA[ELK：CentOS7下部署ELK获取CDN日志]]></title><link>https://blog.youkuaiyun.com/houwanle/article/details/114989141</link><guid>https://blog.youkuaiyun.com/houwanle/article/details/114989141</guid><author>houwanle</author><pubDate>Fri, 30 Apr 2021 18:28:03 +0800</pubDate><description><![CDATA[1. 环境

操作系统：CenOS 7.3
JDK版本：JDK 1.8
Filebeat：filebeat-6.4.2-x86_64.rpm
Logstash：logstash-6.4.2.rpm
Elasticsearch：

elasticsearch-6.4.2.rpm
elasticsearch-analysis-ik-6.4.2.zip
elasticsearch-analysis-pinyin-6.4.2.zip
elasticsearch-analysis-stconvert-6.4.2.zi]]></description><category></category></item><item><title><![CDATA[Spring Cloud（二十六）：SpringCloud Alibaba Seata处理分布式事务]]></title><link>https://blog.youkuaiyun.com/houwanle/article/details/115443189</link><guid>https://blog.youkuaiyun.com/houwanle/article/details/115443189</guid><author>houwanle</author><pubDate>Sun, 11 Apr 2021 07:32:25 +0800</pubDate><description><![CDATA[1. 分布式事务问题
1.1 分布式前
单机单库没这个问题
从1：1 -&gt; 1:N -&gt; N: N
1.2 分布式之后
单体应用被拆分微服务应用，原来的三个模块被拆分成三个独立的应用，分别使用三个独立的数据源，业务操作需要调用三个服务来完成，此时每个服务内部的数据一致性由本地事务来保证，但是全局的数据一致性问题没法保证：
用户购买商品的业务逻辑，整个业务逻辑由三个微服务提供支持：
仓储服务：对卖的商品扣除仓储数量
订单服务：根据采购需求创建订单
账户服务：从用户账户中扣除余额
1.3 一个典型的]]></description><category></category></item><item><title><![CDATA[Spring Cloud（二十五）：Sentinel热点key限流+@SentinelResource]]></title><link>https://blog.youkuaiyun.com/houwanle/article/details/115578530</link><guid>https://blog.youkuaiyun.com/houwanle/article/details/115578530</guid><author>houwanle</author><pubDate>Sun, 11 Apr 2021 07:31:17 +0800</pubDate><description><![CDATA[1. 基本介绍

官网
https://github.com/alibaba/Sentinel/wiki/热点参数限流
2. @SentinelResource
兜底方法
分为系统默认和客户自定义，两种
之前的case，限流出问题后，都是用sentinel系统默认的提示
使用@SentinelResource，自定义降级方法
代码
controller 添加方法
@GetMapping("/testHotKey")
@SentinelResource(value = "testHotKey", blockH]]></description><category></category></item><item><title><![CDATA[Spring Cloud（二十四）：Sentinel降级规则]]></title><link>https://blog.youkuaiyun.com/houwanle/article/details/115569725</link><guid>https://blog.youkuaiyun.com/houwanle/article/details/115569725</guid><author>houwanle</author><pubDate>Sat, 10 Apr 2021 14:51:36 +0800</pubDate><description><![CDATA[1. 基本介绍



RT(平均响应时间，秒级)
平均响应时间超出阈值且在时间窗口内通过的请求&gt;=5，两个条件同时满足后触发降级
窗口期过后关闭断路器
RT最大4900（更大的需要通过-Dcsp.sentinel.statistic.max.rt=XXXX设置）


异常比例（秒级）
QPS&gt;=5且异常比例（秒级统计）超过阈值时，触发降级，窗口期结束，关闭降级


异常数（分钟级）
异常数（分钟统计）超过阈值时，触发降级，窗口期结束，关闭降级


Sentinel熔断降级会在调用链路中的某个资源]]></description><category></category></item><item><title><![CDATA[Spring Cloud（二十三）：Sentinel流控规则]]></title><link>https://blog.youkuaiyun.com/houwanle/article/details/115471553</link><guid>https://blog.youkuaiyun.com/houwanle/article/details/115471553</guid><author>houwanle</author><pubDate>Sat, 10 Apr 2021 11:42:13 +0800</pubDate><description><![CDATA[1. 概述
官网：https://github.com/alibaba/Sentinel
中文：https://github.com/alibaba/Sentinel/wiki/%E4%BB%8B%E7%BB%8D

下载：https://github.com/alibaba/Sentinel/releases
能干嘛

使用
https://spring-cloud-alibaba-group.github.io/github-pages/greenwich/spring-cloud-alibaba.ht]]></description><category></category></item><item><title><![CDATA[Spring Cloud（二十二）：Nacos集群和持久化配置]]></title><link>https://blog.youkuaiyun.com/houwanle/article/details/115439945</link><guid>https://blog.youkuaiyun.com/houwanle/article/details/115439945</guid><author>houwanle</author><pubDate>Mon, 05 Apr 2021 15:13:11 +0800</pubDate><description><![CDATA[1. 官网说明
1.1 官网
https://nacos.io/zh-cn/docs/cluster-mode-quick-start.html
1.2 架构图





2. Nacos持久化配置解释
Nacos默认自带的是嵌入式数据库derby
https://github.com/alibaba/nacos/blob/develop/config/pom.xml
2.1 derby到mysql切换配置步骤
nacos-server-1.1.4\nacos\conf目录下找到sql脚本
执行脚本
/**]]></description><category></category></item><item><title><![CDATA[Spring Cloud（二十一）：SpringCloud Alibaba Nacos服务注册和配置中心]]></title><link>https://blog.youkuaiyun.com/houwanle/article/details/115431638</link><guid>https://blog.youkuaiyun.com/houwanle/article/details/115431638</guid><author>houwanle</author><pubDate>Mon, 05 Apr 2021 10:38:22 +0800</pubDate><description><![CDATA[1. 简介

]]></description><category></category></item><item><title><![CDATA[Spring Cloud（二十）：SpringCloud Alibaba入门简介]]></title><link>https://blog.youkuaiyun.com/houwanle/article/details/115430184</link><guid>https://blog.youkuaiyun.com/houwanle/article/details/115430184</guid><author>houwanle</author><pubDate>Sun, 04 Apr 2021 16:45:55 +0800</pubDate><description><![CDATA[1. 概述
为什么会出现SpringCloud alibaba

Spring Cloud Netflix项目进入维护模式
https://spring.io/blog/2018/12/12/spring-cloud-greenwich-rc1-available-now

SpringCloud alibaba带来了什么？
https://github.com/alibaba/spring-cloud-alibaba/blob/master/README-zh.md

下载
https://github.]]></description><category></category></item><item><title><![CDATA[Spring Cloud（十九）：Sleuth分布式请求链路追踪]]></title><link>https://blog.youkuaiyun.com/houwanle/article/details/115428967</link><guid>https://blog.youkuaiyun.com/houwanle/article/details/115428967</guid><author>houwanle</author><pubDate>Sun, 04 Apr 2021 16:02:08 +0800</pubDate><description><![CDATA[1. 概述
1.1 为什么会出现这个技术？需要解决哪些问题？
在微服务框架中，一个由客户端发起的请求在后端系统中会经过多个不同的服务节点调用来协同产生最后的请求结果，每一个前端请求都会形成一条复杂的分布式服务调用链路，链路中的任何一环出现高延时或错误都会银企整个请求最后的失败。


1.2 是什么

https://github.com/spring-cloud/spring-cloud-sleuth
Spring Cloud Sleuth提供了一套完整的服务跟踪的解决方案
在分布式系统中提供追踪解决方案并]]></description><category></category></item><item><title><![CDATA[Spring Cloud（十八）：Stream消息驱动]]></title><link>https://blog.youkuaiyun.com/houwanle/article/details/115365442</link><guid>https://blog.youkuaiyun.com/houwanle/article/details/115365442</guid><author>houwanle</author><pubDate>Sun, 04 Apr 2021 14:17:00 +0800</pubDate><description><![CDATA[1. 概述

官方定义Spring Cloud Stream 是一个构件消息驱动微服务的框架。
应用程序通过inputs或者outputs来与Spring Cloud Stream中的binder对象交互，通过我们配置来binding（绑定），二Spring Cloud Stream的binder对象负责与消息中间件交互，所以，我们只需要搞清楚如何与Spring Cloud Stream 交互就可以方便使用消息驱动的方式。
通过使用Spring integration来连接消息代理中间件以实现消息时间驱动.]]></description><category></category></item></channel></rss>