<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Hcode4的博客]]></title><description><![CDATA[Studying]]></description><link>https://blog.youkuaiyun.com/Hcode4</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Hcode4]]></copyright><item><title><![CDATA[抛弃BeanUnits.copyProperties三部曲]]></title><link>https://blog.youkuaiyun.com/Hcode4/article/details/126110666</link><guid>https://blog.youkuaiyun.com/Hcode4/article/details/126110666</guid><author>Hcode4</author><pubDate>Mon, 01 Aug 2022 22:11:42 +0800</pubDate><description><![CDATA[Java复制]]></description><category></category></item><item><title><![CDATA[HR面试简要]]></title><link>https://blog.youkuaiyun.com/Hcode4/article/details/125373123</link><guid>https://blog.youkuaiyun.com/Hcode4/article/details/125373123</guid><author>Hcode4</author><pubDate>Mon, 20 Jun 2022 15:08:12 +0800</pubDate><description><![CDATA[HR面试应对策略]]></description><category></category></item><item><title><![CDATA[Kafka内容总结]]></title><link>https://blog.youkuaiyun.com/Hcode4/article/details/124910760</link><guid>https://blog.youkuaiyun.com/Hcode4/article/details/124910760</guid><author>Hcode4</author><pubDate>Sun, 22 May 2022 14:55:45 +0800</pubDate><description><![CDATA[架构
为什么这么快
如何保证消息有序
reblance
索引
与MQ区别
如何保证数据不丢失
CA

]]></description><category></category></item><item><title><![CDATA[Kafka内容总结]]></title><link>https://blog.youkuaiyun.com/Hcode4/article/details/124910746</link><guid>https://blog.youkuaiyun.com/Hcode4/article/details/124910746</guid><author>Hcode4</author><pubDate>Sun, 22 May 2022 14:54:52 +0800</pubDate><description><![CDATA[架构
为什么这么快
如何保证消息有序
reblance
索引
与MQ区别
如何保证数据不丢失
CA

]]></description><category></category></item><item><title><![CDATA[什么是幂等？幂等如何解决]]></title><link>https://blog.youkuaiyun.com/Hcode4/article/details/124910639</link><guid>https://blog.youkuaiyun.com/Hcode4/article/details/124910639</guid><author>Hcode4</author><pubDate>Sun, 22 May 2022 14:51:46 +0800</pubDate><description><![CDATA[定义

所谓幂等，就是任意多次执行所产生的影响均与一次执行的影响相同

风险

一次操作因重试导致生效两次，如库存扣减，钱结算等

如何避免
全局ID
分配

分配中心，统一分配
由业务服务集群
UUID
Snowflake


...]]></description><category></category></item><item><title><![CDATA[工作经验分享-vivo链路监控]]></title><link>https://blog.youkuaiyun.com/Hcode4/article/details/117620317</link><guid>https://blog.youkuaiyun.com/Hcode4/article/details/117620317</guid><author>Hcode4</author><pubDate>Sun, 06 Jun 2021 10:21:41 +0800</pubDate><description><![CDATA[0.监控
1.监控系统：一个监控系统应该至少有三类输出：紧急警报，工单，日志
2.为了更好的满足用户的需求，我们搭建了一套一体化监控系统，从硬件，网络，服务，应用全覆盖链路监控
1.紧急警报
1.检测中心：配置检测规则（自配/统一）进行检测
2.告警中心：对异常信息进行分发/收敛到具体用户
3.智能预警能力（研发中）:根据历史记录发生异常趋势快速通知用户避免异常问题发生
2....]]></description><category></category></item><item><title><![CDATA[对象的一生]]></title><link>https://blog.youkuaiyun.com/Hcode4/article/details/115363041</link><guid>https://blog.youkuaiyun.com/Hcode4/article/details/115363041</guid><author>Hcode4</author><pubDate>Wed, 31 Mar 2021 22:54:18 +0800</pubDate><description><![CDATA[对象诞生

加载

加载时机


使用new关键字实例化对象
使用reflect方法对类型进行反射调用时候
处理静态字段，静态方法
含main主类会加载
MethodHandle解析结果为get/put/invoke/ newInvoke special四种类型方法句柄
接口加入默认方法，实现主类初始化，接口需要先进行初始化
子类初始化，父类需要先初始化



加载过程

加载
验证
准备
解析
初始化




分配内存


根据不同的算法收集器决定使用不同的内存分配方式
1.1  如果使用Serial，.]]></description><category></category></item><item><title><![CDATA[MYSQL架构]]></title><link>https://blog.youkuaiyun.com/Hcode4/article/details/115221019</link><guid>https://blog.youkuaiyun.com/Hcode4/article/details/115221019</guid><author>Hcode4</author><pubDate>Thu, 25 Mar 2021 23:30:49 +0800</pubDate><description><![CDATA[connection Pool（线程池）
1.1 功能


Authentication: 认证
Thread Reuse: 线程重用
Connection Limits: 连接数量限制
Check Memory: 检测内存（连接线程相关的内存）
caches:必要的线程缓存

Mysql是一个单进程多线程的应用，当用户通过Connetor向Mysql Server 发起请求连接时，通过线程池（Connection Pool）建立一个用户连接，此连接会话将会一直存在，用户可以通过此会话，发对应的SQL语..]]></description><category></category></item><item><title><![CDATA[MyBatis 常用数据库引擎]]></title><link>https://blog.youkuaiyun.com/Hcode4/article/details/113816619</link><guid>https://blog.youkuaiyun.com/Hcode4/article/details/113816619</guid><author>Hcode4</author><pubDate>Mon, 15 Feb 2021 15:58:56 +0800</pubDate><description><![CDATA[对比
			MYISAM
			InnoDB
		主外键
			不支持
			支持
		事务
			不支持
			支持（ACID）
		行表锁
			表锁，只操作一条数据也会锁表，不适合高并发
			行锁（如果不确定范围会表锁），操作时只锁某一行，不对其他操作有影响，适合高并发
		缓存
			只缓存索引不缓存真实数据
			缓存索引与真实数据，对内存性能要要求较高，且内存对性能有决定性影响
		表空间
			小
			大
		关注点
			性能
			事务
		形式
			保存文件形式
			
	...]]></description><category></category></item><item><title><![CDATA[面对对象之间关系]]></title><link>https://blog.youkuaiyun.com/Hcode4/article/details/113757210</link><guid>https://blog.youkuaiyun.com/Hcode4/article/details/113757210</guid><author>Hcode4</author><pubDate>Mon, 08 Feb 2021 15:15:22 +0800</pubDate><description><![CDATA[依赖关系
1.1 通过形参的方式发生依赖关系
1.2 通过局部变量发生依赖关系
1.3 通过静态变量发生依赖关系
关联关系 康康 —&gt; 李娜（朋友）
2.1 单向关联: 类A当中使用了类B， 其中类B是作为A的成员变量
2.2 双向关联：类A当中使用了类B，类B也使用了类A作为成员变量
聚合关系（聚合关系中作为成员变量的类一般使用Set方法赋值）人群&lt;&gt; ——&gt; 人
3.1 聚合关系是关联关系的一种，耦合度强于关联，他们之间代码表现是相同的，仅仅是在语意上有所区别。关联关系的对象之.]]></description><category></category></item><item><title><![CDATA[单例模式-枚举类实现]]></title><link>https://blog.youkuaiyun.com/Hcode4/article/details/109991264</link><guid>https://blog.youkuaiyun.com/Hcode4/article/details/109991264</guid><author>Hcode4</author><pubDate>Mon, 23 Nov 2020 11:44:16 +0800</pubDate><description><![CDATA[public class SingletonObject {

        private SingletonObject(){

        }

        /**
         * 枚举类型是线程安全的，并且只会装载一次
         */
        private enum Singleton{
            INSTANCE;

            private final SingletonObject instance;

            S.]]></description><category></category></item><item><title><![CDATA[2020-10-14]]></title><link>https://blog.youkuaiyun.com/Hcode4/article/details/109079996</link><guid>https://blog.youkuaiyun.com/Hcode4/article/details/109079996</guid><author>Hcode4</author><pubDate>Wed, 14 Oct 2020 18:08:34 +0800</pubDate><description><![CDATA[swagger 3.0 更新

原始版本 2.9.0
更新后版本 3.0.0
2.1 删除原始版本mvn 依赖

&lt;!--        &lt;dependency&gt;--&gt;
    &lt;!--            &lt;groupId&gt;io.springfox&lt;/groupId&gt;--&gt;
    &lt;!--            &lt;artifactId&gt;springfox-swagger2&lt;/artifactId&gt;--&gt;
 ]]></description><category></category></item><item><title><![CDATA[Gossip]]></title><link>https://blog.youkuaiyun.com/Hcode4/article/details/108775723</link><guid>https://blog.youkuaiyun.com/Hcode4/article/details/108775723</guid><author>Hcode4</author><pubDate>Thu, 24 Sep 2020 15:37:48 +0800</pubDate><description><![CDATA[Gossip

流言算法，疫情传播算法

执行过程

由种子节点发起，当一个种子节点有状态需要更新到网络中其他节点，他会随机选择周边几个节点散播消息，
收到消息到节点重复此过程，直至网络中所有节点都收到消息
在过程中的某个时刻不能保证所有节点都收到消息，到那时理论上最终所有节点都会收到消息，属于最终一致性协议

gossip 优点

扩展性 &gt;


...]]></description><category></category></item><item><title><![CDATA[CALM]]></title><link>https://blog.youkuaiyun.com/Hcode4/article/details/108775711</link><guid>https://blog.youkuaiyun.com/Hcode4/article/details/108775711</guid><author>Hcode4</author><pubDate>Thu, 24 Sep 2020 15:37:16 +0800</pubDate><description><![CDATA[CALM

当认为分布式一致性被认为很容易实现


协调是相关程序设计决策的附带要求，但是协调存在成本
calm理论支持在某些情况下可以去协调，提高性能
从操作满足交换律则可以不进行协调


calm 的关键观点是从程序结果的角度观察一致性，而不是传统的存储突变历史。


...]]></description><category></category></item><item><title><![CDATA[BASE]]></title><link>https://blog.youkuaiyun.com/Hcode4/article/details/108775694</link><guid>https://blog.youkuaiyun.com/Hcode4/article/details/108775694</guid><author>Hcode4</author><pubDate>Thu, 24 Sep 2020 15:36:45 +0800</pubDate><description><![CDATA[Base

Base 理论是Basically Available(基本可用)，Soft State(软状态)和Eventually Consistent(最终一致性)
既是无法做到强一致性（Strong consistency）,但每个应用都可以根据自身的业务特点，采用适当但方式使系统达到最终的一致性

基本可用

响应时间上的损失：正常情况下的搜索引擎0.5 秒即返回给用户结果，而基本可以用的搜索引擎可以在2秒作用返回结果
功能上的损失： 功能降级返回结果

软状态

允许系统中的数据存在中间状态，并认]]></description><category></category></item><item><title><![CDATA[DLS]]></title><link>https://blog.youkuaiyun.com/Hcode4/article/details/108775677</link><guid>https://blog.youkuaiyun.com/Hcode4/article/details/108775677</guid><author>Hcode4</author><pubDate>Thu, 24 Sep 2020 15:36:11 +0800</pubDate><description><![CDATA[DLS

在一个部分同步的网络模型（网络有延迟，但不知道在哪里）下的协议可以容忍1/3（拜占庭）任意错误
在一个异步模型中的确定性协议（没有网络延迟上限）不能容错
同步模型的协议（网络延迟可以保证小于已知时间）可以达到100%容错


...]]></description><category></category></item><item><title><![CDATA[FLP 定理]]></title><link>https://blog.youkuaiyun.com/Hcode4/article/details/108775658</link><guid>https://blog.youkuaiyun.com/Hcode4/article/details/108775658</guid><author>Hcode4</author><pubDate>Thu, 24 Sep 2020 15:35:39 +0800</pubDate><description><![CDATA[FLP 定理

在异步通信场景，即使只有一个进程失败了，没有任何算法能够保证进程能够达到一致性

系统模型

系统模型
1.1 异步通信 &gt; 异步通信与同步通信最大区别是没有时钟，不能时间同步，不能使用超时，不能探测失败，
消息可任意延迟，消息可乱序
1.2 通信健壮 &gt; 只要进程非失败，消息虽会被无限延迟，但最终会被送达，且消息只会被送达一次（无重复）
1.3 Fail-Stop模型 &gt; 进程失败如同宕机，不再处理任何消息。相对Byzantine模型，不会产生错误消息；
1.4 协议约束]]></description><category></category></item><item><title><![CDATA[CAP]]></title><link>https://blog.youkuaiyun.com/Hcode4/article/details/108775639</link><guid>https://blog.youkuaiyun.com/Hcode4/article/details/108775639</guid><author>Hcode4</author><pubDate>Thu, 24 Sep 2020 15:35:06 +0800</pubDate><description><![CDATA[CAP

Consistency -&gt; 一旦数据更新完毕，分布式系统中所有节点在同一时间的数据完全一致
1.1 数据同步会有数据延迟
1.2 为了保证数据一致性，会对资源进行上锁，待数据同步完成后释放锁定资源
1.3 如果数据同步失败，节点会返回错误信息，不会返回旧数据
可用性（Availability）
2.1 所有请求都有响应，不能返回响应超时或者响应错误
分区容错性（Partition tolerance）
3.1 分布式系统中，尽管部分节点出现任何消息丢失或者故障，系统应该继续运行


...]]></description><category></category></item><item><title><![CDATA[ACID]]></title><link>https://blog.youkuaiyun.com/Hcode4/article/details/108775625</link><guid>https://blog.youkuaiyun.com/Hcode4/article/details/108775625</guid><author>Hcode4</author><pubDate>Thu, 24 Sep 2020 15:34:34 +0800</pubDate><description><![CDATA[ACID

事务
1.1 提供一种机制将一个活动涉及的所有操作都纳入一个不可分割都执行单元，组成事务的所有操作只有在所有操作均能正常执行的情况下方可提交，
只要其中任一操作执行失败，都将导致整个事务都回滚
ACID
2.1 数据库事务的ACID
2.1.1 原子性 &gt; 整个事务的所有操作，要么全部完成，要么全部不完成，不可能停滞在中间某个环节
2.1.2 一致性 &gt; 在事务开始和事务结束以后，数据库的一致性约束没有被破坏
2.1.3 隔离性 &gt; 数据库允许多个并发事务同时对数据进行读写和修]]></description><category></category></item><item><title><![CDATA[时间与顺序]]></title><link>https://blog.youkuaiyun.com/Hcode4/article/details/108775604</link><guid>https://blog.youkuaiyun.com/Hcode4/article/details/108775604</guid><author>Hcode4</author><pubDate>Thu, 24 Sep 2020 15:34:06 +0800</pubDate><description><![CDATA[时间与顺序
物理时钟与逻辑时钟

分布式系统中每个节点记录时间不一样，即便设置NTP时间同步，节点间也存在毫秒级的偏差，由此产生了逻辑时钟，记录时间发生顺序
分布式系统中按是否存在节点交互可拆分三类事件，一类发生节点内部，二是发生事件，三是接受事件
逻辑时钟(Lamport timestamps, Vector clock)
3.1 逻辑时钟前进
3.1.1 每个事件对应一个逻辑时间戳，初始值为0
3.1.2 如果事件发生节点内发生，时间戳加1
3.1.3 如果事件属于发送事件，时间戳加1并在消息中带上该时]]></description><category></category></item></channel></rss>