<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[牧夏的个人博客]]></title><description><![CDATA[]]></description><link>https://blog.csdn.net/dataiyangu</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; dataiyangu]]></copyright><item><title><![CDATA[vscode运行java中文乱码，引发的mac配置问题]]></title><link>https://blog.csdn.net/dataiyangu/article/details/140193567</link><guid>https://blog.csdn.net/dataiyangu/article/details/140193567</guid><author>dataiyangu</author><pubDate>Fri, 05 Jul 2024 00:36:52 +0800</pubDate><description><![CDATA[将这句话粘贴到自己的iterm中运行发现也是不行的（自己的idea从来没有出现过问题，可能是人家优化的好吧），说明和vscode是没有关系的，是自己mac环境的问题。System.out.println(“哈哈”);vscode 安装 java环境之后。输出这里还是乱码的暂时没有解决。settings.json加入。/etc/profile加入。我们是终端的不乱码了。//编辑区的字体带下。]]></description><category></category></item><item><title><![CDATA[2pc & 3pc]]></title><link>https://blog.csdn.net/dataiyangu/article/details/140192861</link><guid>https://blog.csdn.net/dataiyangu/article/details/140192861</guid><author>dataiyangu</author><pubDate>Thu, 04 Jul 2024 23:42:56 +0800</pubDate><description><![CDATA[3pc加入事务询问机制+RM超时机制。事务询问机制：减少阻塞。RM超时机制：避免死锁。]]></description><category></category></item><item><title><![CDATA[git相关操作和命令的整理,持续更新。。。]]></title><link>https://blog.csdn.net/dataiyangu/article/details/81082735</link><guid>https://blog.csdn.net/dataiyangu/article/details/81082735</guid><author>dataiyangu</author><pubDate>Tue, 27 Sep 2022 00:12:04 +0800</pubDate><description><![CDATA[之前只会用图形端的GIT中，命令行的比较陌生，整理下，供自己以后参考

关键的名词：

工作区：工作区
	Index / Stage：暂存区
	仓库：仓库区（或本地仓库）
	远程控制：远程仓库
   





1：到项目目录下


git init


在文件夹中生成.git文件，后续的git add和git commit操作会将相关的文件存在.git文件中

2。


git pull...]]></description><category></category></item><item><title><![CDATA[dubbo负载均衡-RandomLoadBalance]]></title><link>https://blog.csdn.net/dataiyangu/article/details/105887228</link><guid>https://blog.csdn.net/dataiyangu/article/details/105887228</guid><author>dataiyangu</author><pubDate>Sat, 01 Jan 2022 17:27:38 +0800</pubDate><description><![CDATA[dubbo负载均衡-RandomLoadBalance
发表于 2019-10-13
前言
之前在面试中被问及dubbo的负载均衡，当时没有系统的回答出来，今天查阅了一下官方文档，于是出现了这篇文章。dubbo主要有4种负载均衡方式，分别是：基于权重随机算法的RandomLoadBalance、基于最少活跃调用数算法的LeastActiveLoadBalance、基于Hash一致性的Consist...]]></description><category></category></item><item><title><![CDATA[阅读源码技巧总结]]></title><link>https://blog.csdn.net/dataiyangu/article/details/103866217</link><guid>https://blog.csdn.net/dataiyangu/article/details/103866217</guid><author>dataiyangu</author><pubDate>Mon, 23 Nov 2020 13:39:02 +0800</pubDate><description><![CDATA[看不懂是吗？看不懂就对了，因为这个我确实是写给自己的，有些东西不太会表达~
委派模式
如果点击A方法的实现点击过去是一个接口，这个时候直接回来A方法然后点击被谁实现（option+command+b）
即如果遇到委派模式，想要看方法的实现，不要用command+b，用option+command+b

...]]></description><category></category></item><item><title><![CDATA[求助文章：关于2pc和mysql参数innodb_flush_log_at_trx_commit的不解]]></title><link>https://blog.csdn.net/dataiyangu/article/details/107447937</link><guid>https://blog.csdn.net/dataiyangu/article/details/107447937</guid><author>dataiyangu</author><pubDate>Sun, 19 Jul 2020 17:16:04 +0800</pubDate><description><![CDATA[首先mysql参数：innodb_flush_log_at_trx_commit
0（延迟写、flush 同时进行）
log buffer 将每秒一次地写入 log file 中，并且 log file 的 flush 操作同时进行。
该模式下，在事务提交的时候，不会主动触发写入磁盘的操作。
1（默认，实时写、flush）
每次事务提交时 MySQL 都会把 log buffer 的数据写入 log file，并且刷到磁盘中去
2（实时写，延迟刷）
每次事务提交时 MySQL 都会把 log buffer ]]></description><category></category></item><item><title><![CDATA[Spring循环依赖]]></title><link>https://blog.csdn.net/dataiyangu/article/details/106951255</link><guid>https://blog.csdn.net/dataiyangu/article/details/106951255</guid><author>dataiyangu</author><pubDate>Wed, 24 Jun 2020 21:27:50 +0800</pubDate><description><![CDATA[匆匆看一遍，总感觉少点什么，回过头来，果然，正愁这个月没有博文来写，只好图片来凑了
让我想起了学生时代的黑板报

ps：以下只是简单抽象三种方式，真实源码，比这复杂。
单例Setter

单例构造函数

原型模式

源码理解参考：
https://www.cnblogs.com/zzq6032010/p/11406405.html
https://blog.csdn.net/qq_16675313/article/details/79915568
https://blog.csdn.net/chaitoud]]></description><category></category></item><item><title><![CDATA[Spring factoryBeanInstanceCache在哪里进行put？]]></title><link>https://blog.csdn.net/dataiyangu/article/details/106944694</link><guid>https://blog.csdn.net/dataiyangu/article/details/106944694</guid><author>dataiyangu</author><pubDate>Wed, 24 Jun 2020 15:34:56 +0800</pubDate><description><![CDATA[以为这个月不会再写博客了，万万没想到啊，哎，受伤了。。
factoryBeanInstanceCache会缓存wrapper，只知道在都doCreateBean的时候进行了单例判断，如果是单例，会从factoryBeanInstanceCache中remove掉，找了好久没有找到在哪里put。
遂记录下
在spring中默认是autowireByType，在autowireByType中调用resolveDependency，下图从resolveDependency开始。
最终又回到了AbstractAut]]></description><category></category></item><item><title><![CDATA[Dubbo 在 zk上创建的节点]]></title><link>https://blog.csdn.net/dataiyangu/article/details/105877199</link><guid>https://blog.csdn.net/dataiyangu/article/details/105877199</guid><author>dataiyangu</author><pubDate>Fri, 01 May 2020 13:56:14 +0800</pubDate><description><![CDATA[文章目录拾遗总结

拾遗
一共有四个configurators、providers、routers、consumers
在provider中已经创建了providers
@Override
    public void create(String path, boolean ephemeral) {
        if (!ephemeral) {
            if (checkE...]]></description><category></category></item><item><title><![CDATA[Dubbo provider export 的 invoker到底是什么？]]></title><link>https://blog.csdn.net/dataiyangu/article/details/105872144</link><guid>https://blog.csdn.net/dataiyangu/article/details/105872144</guid><author>dataiyangu</author><pubDate>Fri, 01 May 2020 08:30:43 +0800</pubDate><description><![CDATA[JavassistProxyFactory.getInvoker
final Wrapper wrapper = Wrapper.getWrapper(proxy.getClass().getName().indexOf(36) &lt; 0 ? proxy.getClass() : type);

getWrapper-&gt;ret = makeWrapper©;
在Wrapper var50...]]></description><category></category></item><item><title><![CDATA[Dubbo overrideDirectoryUrl的作用？]]></title><link>https://blog.csdn.net/dataiyangu/article/details/105870199</link><guid>https://blog.csdn.net/dataiyangu/article/details/105870199</guid><author>dataiyangu</author><pubDate>Thu, 30 Apr 2020 22:02:51 +0800</pubDate><description><![CDATA[文章目录

在MockClusterIncoker的invoke方法中
//从Directory中拿到目标地址，从而拿到mock值
String value = directory.getUrl().getMethodParameter(mock);

那mock不是在reference中配置的先生效的吗？，貌似所有的都是把？
哪个这个directory.getUrl是谁？是registryDir...]]></description><category></category></item><item><title><![CDATA[Dubbo 源码构建 file is read-only]]></title><link>https://blog.csdn.net/dataiyangu/article/details/105763574</link><guid>https://blog.csdn.net/dataiyangu/article/details/105763574</guid><author>dataiyangu</author><pubDate>Sun, 26 Apr 2020 10:30:04 +0800</pubDate><description><![CDATA[]]></description><category></category></item><item><title><![CDATA[dubbo-admin构建问题总结]]></title><link>https://blog.csdn.net/dataiyangu/article/details/105640224</link><guid>https://blog.csdn.net/dataiyangu/article/details/105640224</guid><author>dataiyangu</author><pubDate>Mon, 20 Apr 2020 17:32:24 +0800</pubDate><description><![CDATA[构建dubbo-admin的时候：
manv clean package  卡在这里不能懂了
[INFO] Downloading https://nodejs.org/dist/v9.11.1/node-v9.11.1-win-x64.zip to F:\Maven\repository\com\github\eirslett\node\9.11.1\node-9.11.1-win-x64.zi...]]></description><category></category></item><item><title><![CDATA[springboot dubbo 问题记录]]></title><link>https://blog.csdn.net/dataiyangu/article/details/105632234</link><guid>https://blog.csdn.net/dataiyangu/article/details/105632234</guid><author>dataiyangu</author><pubDate>Mon, 20 Apr 2020 12:49:57 +0800</pubDate><description><![CDATA[如果是单机的
dubbo.registry.address=zookeeper://192.168.8.111:2181
如果是集群的
dubbo.registry.address=zookeeper://192.168.8.111:2181?backup=192.168.50.133:2181,192.168.50.134:2181
zookeeper启动的是集群的，但是项目中配置单机的，也是能...]]></description><category></category></item><item><title><![CDATA[Zookeeper Watcher 源码 收获]]></title><link>https://blog.csdn.net/dataiyangu/article/details/105610596</link><guid>https://blog.csdn.net/dataiyangu/article/details/105610596</guid><author>dataiyangu</author><pubDate>Sun, 19 Apr 2020 10:17:43 +0800</pubDate><description><![CDATA[QuorumPeer的run方法中会setupRequestProcessor（组装processor），setupRequestProcessor被重写，根据单机或是集群，组装成三种不同的责任链，下图为单机模式
服务端接收到客户端请求的时候，会通过NIOServerCnxn submitRequest 提交请求，提交请求之后进入责任链模式

每经过责任链其中一个的processor时，会先将re...]]></description><category></category></item><item><title><![CDATA[Zookeeper Leader选举 源码中，发送投票，统计投票的不解]]></title><link>https://blog.csdn.net/dataiyangu/article/details/105552649</link><guid>https://blog.csdn.net/dataiyangu/article/details/105552649</guid><author>dataiyangu</author><pubDate>Thu, 16 Apr 2020 11:07:57 +0800</pubDate><description><![CDATA[文章目录问题解决

问题
termPredicate这里判断投票是否结束
if (termPredicate(recvset,
                                new Vote(proposedLeader, proposedZxid,
                                        logicalclock.get(), propo...]]></description><category></category></item><item><title><![CDATA[通过zkClient API 模仿curator实现zookeeper分布式锁]]></title><link>https://blog.csdn.net/dataiyangu/article/details/105528489</link><guid>https://blog.csdn.net/dataiyangu/article/details/105528489</guid><author>dataiyangu</author><pubDate>Wed, 15 Apr 2020 10:12:12 +0800</pubDate><description><![CDATA[文章目录代码结果zkClient API练习

zookeeper的客户端比较常用的有zkClient和apache的curator，curator的fluent风格很是令人讨喜，用的比较多，查看了curator实现分布式锁的原理之后，希望根据自己的理解，通过zkClient api的方式实现分布式锁。
大概算了下，175行代码，算上api的练习，一共用了三个小时，感觉自己好像个憨憨~
代码
Zk...]]></description><category></category></item><item><title><![CDATA[Linux文件句柄限制总结]]></title><link>https://blog.csdn.net/dataiyangu/article/details/105399468</link><guid>https://blog.csdn.net/dataiyangu/article/details/105399468</guid><author>dataiyangu</author><pubDate>Thu, 09 Apr 2020 12:16:54 +0800</pubDate><description><![CDATA[文章目录查看修改

查看
cat /proc/sys/fs/nr_open 每个进程最大限制
ulimit -n   当前用户的当前shell 最大限制 （多个shell，每个都能到达最大限制）
cat /proc/sys/fs/file-max   系统级别最大限制
记住前三个就好了
cat /proc/sys/fs/file-nr  ：
[root@izm3mkp4g43hdqz ~]# ca...]]></description><category></category></item><item><title><![CDATA[Netty事件传播机制]]></title><link>https://blog.csdn.net/dataiyangu/article/details/105370323</link><guid>https://blog.csdn.net/dataiyangu/article/details/105370323</guid><author>dataiyangu</author><pubDate>Tue, 07 Apr 2020 18:08:16 +0800</pubDate><description><![CDATA[文章目录源码栗子拾遗

源码


栗子

ch.pipeline().addLast(new InboundHandler1());  
ch.pipeline().addLast(new InboundHandler2()); 
ch.pipeline().addLast(new OutboundHandler1());  
ch.pipeline().addLast(new OutboundH...]]></description><category></category></item><item><title><![CDATA[Netty inEventLoop方法？异步回调？Promise？]]></title><link>https://blog.csdn.net/dataiyangu/article/details/105357431</link><guid>https://blog.csdn.net/dataiyangu/article/details/105357431</guid><author>dataiyangu</author><pubDate>Tue, 07 Apr 2020 09:59:17 +0800</pubDate><description><![CDATA[文章目录inEventLoop拾遗

inEventLoop
一直对这个方法不是很理解，众所周知是判断当前线程是不是在当前的EventLoop中对应的那个线程？
一个channel对应一个且只对应一个EventLoop，一个Channel对应一个且只对应一个Pipeline，Pipline中包含handler（也是context），当前的Handler被Channel调用，那什么时候执行这段代码的...]]></description><category></category></item></channel></rss>