<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Chelio_的博客]]></title><description><![CDATA[]]></description><link>https://blog.csdn.net/Chelio_</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; Chelio_]]></copyright><item><title><![CDATA[TCP/UDP]]></title><link>https://blog.csdn.net/Chelio_/article/details/134846793</link><guid>https://blog.csdn.net/Chelio_/article/details/134846793</guid><author>Chelio_</author><pubDate>Thu, 07 Dec 2023 18:50:20 +0800</pubDate><description><![CDATA[不行，因为如果第一次握手时syn包因为网络原因没收到，然后客户端再次发送一次syn完成全部握手后连接成功；但第一次得syn又收到了，服务端会有两条连接，但客户端只有一条连接 ，服务端无法确定哪一个客户端连接是正确的。–为了保证让对方接收到ack。因为如果服务端没有收到ack，到达超时时间会再次向客户端发送fin，然后刷新超时时间。：一个基于连接，一个非连接。：在程序之间传输数据。都在传输层（第4层）]]></description><category></category></item><item><title><![CDATA[java引用]]></title><link>https://blog.csdn.net/Chelio_/article/details/130872090</link><guid>https://blog.csdn.net/Chelio_/article/details/130872090</guid><author>Chelio_</author><pubDate>Thu, 25 May 2023 17:54:52 +0800</pubDate><description><![CDATA[当内存空间不足，Java虚拟机宁愿抛出OutOfMemoryError错误，使程序异常终止，也不回收这种对象。不会被垃圾回收器回收。]]></description><category></category></item><item><title><![CDATA[ThreadLocal应用场景]]></title><link>https://blog.csdn.net/Chelio_/article/details/130869551</link><guid>https://blog.csdn.net/Chelio_/article/details/130869551</guid><author>Chelio_</author><pubDate>Thu, 25 May 2023 17:12:40 +0800</pubDate><description><![CDATA[ThreadLocal叫做线程变量，表示ThreadLocal中填充的变量属于当前线程，变量对其他线程而言是隔离的，也就是说该变量是当前线程独有的变量。每个Thread中有ThreadLocal.ThreadMap属性表示每个线程中可以定义多个独有变量。]]></description><category></category></item><item><title><![CDATA[io流使用]]></title><link>https://blog.csdn.net/Chelio_/article/details/121380781</link><guid>https://blog.csdn.net/Chelio_/article/details/121380781</guid><author>Chelio_</author><pubDate>Wed, 17 Nov 2021 16:23:42 +0800</pubDate><description><![CDATA[io流使用
个人理解
1.输入 – 缓冲区（1.代码中的缓冲（非缓冲流）；2.框架缓冲区的缓冲(缓冲流，装饰者模式)） - 输出
2.用字符流 (Writer) 的时候要将通道中的流刷新（flush）到硬盘上，其中close()方法会调用flush
注意：使用后关闭io，节省系统资源（一般在finally中关闭，看个人习惯）
代码
1.字节流
/**
    1.字节流，基于字节，任何格式文件都可使用
 */
private static void tesByteCharacter() throws Exc]]></description><category></category></item><item><title><![CDATA[token代替session使用]]></title><link>https://blog.csdn.net/Chelio_/article/details/121372629</link><guid>https://blog.csdn.net/Chelio_/article/details/121372629</guid><author>Chelio_</author><pubDate>Wed, 17 Nov 2021 10:40:26 +0800</pubDate><description><![CDATA[1.面临问题：
session存在于服务端，分布式中多个微服务，每个微服务都是独立的服务器，session信息不同步，该怎么办？

2.解决思路
 token替代session使用流程：
1.用户登录成功 生成token存入redis（key：token，value：用户信息）；把token返回给前端
2.将token加入header，使用过滤器，在每个接口执行前验证token是否有效，无效返回登录页
3.微服务中如果想获取登录的用户信息，可以获取redis的key=token


token + redi]]></description><category></category></item></channel></rss>