<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[fengbird的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/fengbird</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; fengbird]]></copyright><item><title><![CDATA[Apollo/Nacos配置动态刷新原理及优劣]]></title><link>https://blog.youkuaiyun.com/fengbird/article/details/128969709</link><guid>https://blog.youkuaiyun.com/fengbird/article/details/128969709</guid><author>fengbird</author><pubDate>Fri, 10 Feb 2023 17:40:32 +0800</pubDate><description><![CDATA[Apollo、nacos配置动态刷新的原理及优劣对比]]></description><category></category></item><item><title><![CDATA[Android核心知识简记]]></title><link>https://blog.youkuaiyun.com/fengbird/article/details/127007334</link><guid>https://blog.youkuaiyun.com/fengbird/article/details/127007334</guid><author>fengbird</author><pubDate>Fri, 23 Sep 2022 16:53:35 +0800</pubDate><description><![CDATA[【代码】Android核心知识简记。]]></description><category></category></item><item><title><![CDATA[基于jmeter的activemq的测试教程]]></title><link>https://blog.youkuaiyun.com/fengbird/article/details/106912621</link><guid>https://blog.youkuaiyun.com/fengbird/article/details/106912621</guid><author>fengbird</author><pubDate>Mon, 22 Jun 2020 23:48:40 +0800</pubDate><description><![CDATA[前言

在进行新架构相关服务的开发测试过程中,为了测试应用 , 需要经常进行MQ消息的发送 , 目前采用的MQ消息的发送是在MQ官方提供的Web页面上面进行的,但是在该页面上测试存在诸多不方便的地方,比如每次都要找到对应的队列,再找到对应的消息复制过去 , 若需要测试多个队列 , 这样进行频繁的切换会非常麻烦 , 为便于MQ的测试 , 本来我想写个工具去处理这个问题 , 后来发现原来Jmeter就可以胜任 , 因此有了这篇教程 , 送给有缘人

步骤


从官网下载Jmeter , 推荐下载5.0版本 , ]]></description><category></category></item><item><title><![CDATA[docker常用命令精简版]]></title><link>https://blog.youkuaiyun.com/fengbird/article/details/106912428</link><guid>https://blog.youkuaiyun.com/fengbird/article/details/106912428</guid><author>fengbird</author><pubDate>Mon, 22 Jun 2020 23:29:28 +0800</pubDate><description><![CDATA[列出所有镜像  docker images
列出所有正在运行的容器 docker ps
列出所有的容器 docker ps -a
删除所有容器 docker rm $(docker ps -aq)
停用并删除所有的容器 docker stop $(docker ps -q) &amp; docker rm(docker ps -aq)
删除指定镜像 docker rmi 镜像ID
开启一个容器 docker run -dit &lt;imageID&gt; /bin/bash
进入容器docker&nbs.]]></description><category></category></item><item><title><![CDATA[虚拟机核心汇总]]></title><link>https://blog.youkuaiyun.com/fengbird/article/details/106912395</link><guid>https://blog.youkuaiyun.com/fengbird/article/details/106912395</guid><author>fengbird</author><pubDate>Mon, 22 Jun 2020 23:26:33 +0800</pubDate><description><![CDATA[参数含义

-Xmx代表最大堆容量，-Xms代表最小堆容量
-XX:PermSize , -XX:MaxPermSize表示最大方法区容量
-Xss设置栈容量

判断对象是否存活的算法

引用计数算法

给对象中添加一个引用计数器，每当有一个地方引用它是，计数器值就加1；当引用失效时，计数器值就减1；任何时刻计数器为0的对象就是不可能再被使用的。
缺点：无法解决对象之间相互循环引用的问题。


可达性分析算法(Java,C#)

通过一系列称为"GC Roots"的对象作为起始点，从这些节点开始向下搜索，搜]]></description><category></category></item><item><title><![CDATA[数据结构与Java]]></title><link>https://blog.youkuaiyun.com/fengbird/article/details/106912353</link><guid>https://blog.youkuaiyun.com/fengbird/article/details/106912353</guid><author>fengbird</author><pubDate>Mon, 22 Jun 2020 23:24:28 +0800</pubDate><description><![CDATA[红黑树

左旋右旋速记口令：
父与左子为右旋，
旋完子右变父左，
其他都不变。
父与右子为左旋，
旋完子左变父右，
其他都不变。
红黑树之插入
将新插入结点染为红色
WHILE若新插入点不为null，不是根结点，并且其父结点颜色为红色
IF若当前结点的父结点是当前结点的爷爷结点的左子结点
IF若当前结点的叔叔结点为红
将当前结点的父结点染为黑
将叔叔结点染为黑
将爷爷结点染为红
将爷爷结点置为当前结点
ELSE若当前结点的叔叔结点颜色为黑或NULL
若当前结点为右子结点
将父结点置为当前结点
左旋当前结点
]]></description><category></category></item><item><title><![CDATA[Linux服务器搭建之CentOS7(64位)常用命令总结及常用软件安装(java)]]></title><link>https://blog.youkuaiyun.com/fengbird/article/details/106912293</link><guid>https://blog.youkuaiyun.com/fengbird/article/details/106912293</guid><author>fengbird</author><pubDate>Mon, 22 Jun 2020 23:22:27 +0800</pubDate><description><![CDATA[本文记录的命令都是在CentOS7 64位系统上执行的，其他系统不一定适用

防火墙常用操作
firewalld的基本使用
启动： systemctl start firewalld
查看状态： systemctl status firewalld
停止： systemctl disable firewalld
禁用： systemctl stop firewalld
添加例外端口： firewall-cmd --zone=public --add-port=80/tcp --permanent（–per.]]></description><category></category></item><item><title><![CDATA[ActiveMQ集群消息同步机制]]></title><link>https://blog.youkuaiyun.com/fengbird/article/details/106912259</link><guid>https://blog.youkuaiyun.com/fengbird/article/details/106912259</guid><author>fengbird</author><pubDate>Mon, 22 Jun 2020 23:17:26 +0800</pubDate><description><![CDATA[ActiveMQ集群为主从集群, 一个主结点服务器, 其他为从结点服务器,  在主结点服务器接收到消息后,会将消息同时同步到其他从结点服务器,  因此, 当主结点服务器异常挂掉时, 会在从结点中选举出一个新的主结点, 继续提供服务,而且未消费的消息不会异常丢失.


证明:


初始界面:


初始状态下三个leveldb日志均为:



现在利用web管理界面发送一条测试消息:



此时, 三个leveldb中的日志均变为了:


由上图可看出在此时集群中的MQ都有接收到消息,并且对该消息进行了存储..]]></description><category></category></item><item><title><![CDATA[ActiveMQ消息消费流程及优化]]></title><link>https://blog.youkuaiyun.com/fengbird/article/details/106912124</link><guid>https://blog.youkuaiyun.com/fengbird/article/details/106912124</guid><author>fengbird</author><pubDate>Mon, 22 Jun 2020 23:08:44 +0800</pubDate><description><![CDATA[ActiveMQ默认情况下是开启事务的吗?

MQ默认情况下是没有开启事务的 , MQ将消息推送给消费者后, 消费者会立即向服务器确认该消息已被消费,之后才进行该条消息的处理逻辑



为什么在应用中有事务开启?


这是因为在vz-service-config 中activeMq.xml 中开启了事务,如下:
&lt;bean id="defaultMessageQueueListener" class="org.ice.jee.spring.mq.core.handler.JeeSpringQueu..]]></description><category></category></item><item><title><![CDATA[六. 怎么减少行锁对性能的影响]]></title><link>https://blog.youkuaiyun.com/fengbird/article/details/106435719</link><guid>https://blog.youkuaiyun.com/fengbird/article/details/106435719</guid><author>fengbird</author><pubDate>Sat, 30 May 2020 00:36:12 +0800</pubDate><description><![CDATA[InnDB 行锁添加和释放的时机(两阶段锁协议指的是什么？)

在InnoDB事务中，行锁是在需要的时候才加上的，但并不是不需要了就立刻释放，而是要等到事务结束时才释放。这个就是两阶段锁协议。


提示：

如果一个事务需要锁多行，那么要把最可能造成锁冲突、最可能影响并发度的锁往后放。


InnoDB进入死锁后的两种处理策略是什么？
一种策略是直接进入等待，直到超时，超时时间可以通过参数：innodb_lock_wait_timeout 设置，该参数默认值为50s
(推荐) 另一种策略是，发现死锁后，进.]]></description><category></category></item><item><title><![CDATA[五. 全局锁和表锁]]></title><link>https://blog.youkuaiyun.com/fengbird/article/details/106416148</link><guid>https://blog.youkuaiyun.com/fengbird/article/details/106416148</guid><author>fengbird</author><pubDate>Fri, 29 May 2020 00:02:41 +0800</pubDate><description><![CDATA[全局锁

全局锁就是对整个数据库加锁，MySQL提供的有一种加锁的方法，命令是 Flush tables with read lock (FTWRL)，加锁后，DML，DDL操作都将被阻塞
全局锁的使用场景？

若是在进行数据库备份的时候没有加全局锁，会导致备份系统备份得到的库不是一个逻辑时间点，这个视图就是逻辑不一致的


InnoDB更好的全局加锁的方式是怎样的？

由于InnoDB支持可重复读，因此可以使用mysql的逻辑备份工具，加上参数 -single-transaction，达到导数据之前就先开]]></description><category></category></item><item><title><![CDATA[四. 深入浅出索引]]></title><link>https://blog.youkuaiyun.com/fengbird/article/details/106403539</link><guid>https://blog.youkuaiyun.com/fengbird/article/details/106403539</guid><author>fengbird</author><pubDate>Thu, 28 May 2020 16:10:08 +0800</pubDate><description><![CDATA[索引的常见模型
哈希表

解释
哈希表是一种键值存储数据的结构，用一个哈希函数把键key换算成数组的一个确定的位置，把值放在数组对应的位置里，不可避免的，若是多个key值经过哈希函数换算，会得到同样的值，这时候会将要存储的值以链表的方式进行存储
适用场景
适用于只有等值查询的场景，若是牵涉到范围查询，由于哈希表存储值的时候并不是顺序存储的，无法精确的定位要查找的值在某一个相对精确的范围内，查的时候甚至不得不遍历所有的元素，就会导致查询速度慢的问题

有序数组

适用场景
适用于等值查询和范围查询，由于其是有]]></description><category></category></item><item><title><![CDATA[三.事务隔离]]></title><link>https://blog.youkuaiyun.com/fengbird/article/details/106394711</link><guid>https://blog.youkuaiyun.com/fengbird/article/details/106394711</guid><author>fengbird</author><pubDate>Thu, 28 May 2020 00:57:04 +0800</pubDate><description><![CDATA[事务的隔离级别

读未提交(read uncommited) 一个事务还没提交时，它做的变更就能被别的事务看到
读提交(read commited) 一个事务提交之后，它做的变更才会被其他事务看到。
可重复读(repeatable read) 一个事务执行过程中看到的数据，总是跟这个事务在启动时看到的数据是一致的。当然在可重复读隔离级别下，未提交变更对其他事务也是不可见的。
串行化（serializable ）顾名思义是对于同一行记录，“写”会加“写锁”，“读”会加“读锁”。当出现读写锁冲突的时候，后访问.]]></description><category></category></item><item><title><![CDATA[二.一条SQL更新语句是如何执行的]]></title><link>https://blog.youkuaiyun.com/fengbird/article/details/106394411</link><guid>https://blog.youkuaiyun.com/fengbird/article/details/106394411</guid><author>fengbird</author><pubDate>Thu, 28 May 2020 00:44:50 +0800</pubDate><description><![CDATA[redo log 怎么理解？
答：由于在 MySQL 里，如果每一次的更新操作都需要写进磁盘，然后磁盘也要找到对应的那条记录，然后再更新，整个过程 IO 成本、查找成本都很高。为了解决这个问题，InnoDB引入了redo log的设计，用的是WAL 技术，WAL 的全称是 Write-Ahead Logging，它的关键点就是先写日志，再写磁盘，先用redo log将数据写入内存，将本次操作写入物理日志（持久化到硬盘），然后再在空闲的时候将数据同步到磁盘中，注意，redo log是将更新的数据直接的先写入.]]></description><category></category></item><item><title><![CDATA[一. 一条SQL查询是如何执行的]]></title><link>https://blog.youkuaiyun.com/fengbird/article/details/106392986</link><guid>https://blog.youkuaiyun.com/fengbird/article/details/106392986</guid><author>fengbird</author><pubDate>Wed, 27 May 2020 23:35:04 +0800</pubDate><description><![CDATA[MySQL的基本逻辑架构是怎样的？
如下图所示，MySQL基本逻辑架构主要分为server层和存储引擎层，server层主要包括 连接器、分析器、优化器、执行器、查询缓存这些，存储引擎层负责数据的存储和提取。其架构模式是插件式的

如何查看与当前数据库建立的所有的连接的状态？

show processlist


与客户端建立连接默认超时时间是？
答：八个小时
有时候MySQL占用的内存长的特别快，可能的原因是？
答：MySQL在执行过程中临时使用的内存是管理在连接对象里面的，这些资源会在连接断开时才释.]]></description><category></category></item><item><title><![CDATA[RocketMQ本地安装教程]]></title><link>https://blog.youkuaiyun.com/fengbird/article/details/97806403</link><guid>https://blog.youkuaiyun.com/fengbird/article/details/97806403</guid><author>fengbird</author><pubDate>Tue, 30 Jul 2019 18:16:32 +0800</pubDate><description><![CDATA[这两天在安装RocketMQ时，发现官网上给的安装方案太简略了。。。安装完毕后服务根本无法启动，特出本教程记录一下，以备日后使用


安装及验证流程

下载 rocketmq 安装包，目前最新为 4.4.0 ，点击下载：rocketmq-all-4.4.0-bin-release.zip
解压压缩包： unzip rocketmq-all-4.4.0-bin.release.zip
进入bin文...]]></description><category></category></item><item><title><![CDATA[RestTemplate添加HTTPS证书全过程]]></title><link>https://blog.youkuaiyun.com/fengbird/article/details/89462295</link><guid>https://blog.youkuaiyun.com/fengbird/article/details/89462295</guid><author>fengbird</author><pubDate>Mon, 22 Apr 2019 22:13:39 +0800</pubDate><description><![CDATA[证书的下载

先通过浏览器将未签名验证的证书保存到本地, 点击 不安全–&gt; 证书–&gt; 详细信息 --&gt; 复制到文件 然后默认选择 起一个文件名 , 保存即可, 比如我将证书保存在了桌面 , 命名为 xx.cer

证书导入JDK

若是想要在项目中用到证书 , 需要先将证书导入到JDK的证书管理里面, 导入命令如下:
keytool -import -noprompt -trus...]]></description><category></category></item><item><title><![CDATA[Centos 创建开机自启服务]]></title><link>https://blog.youkuaiyun.com/fengbird/article/details/84975209</link><guid>https://blog.youkuaiyun.com/fengbird/article/details/84975209</guid><author>fengbird</author><pubDate>Wed, 12 Dec 2018 16:33:52 +0800</pubDate><description><![CDATA[
编辑rc.local文件: vim /etc/rc.local
写入需要开机自启的命令:/root/app/frp/frps -c /root/app/frp/frps.ini &amp;gt; /root/app/frp/logs/frps_`date +%Y%m%d`.log 2&amp;gt;&amp;amp;1 &amp;amp;


完毕!


]]></description><category></category></item><item><title><![CDATA[LeetCode 数据库模块刷题纪要]]></title><link>https://blog.youkuaiyun.com/fengbird/article/details/82048558</link><guid>https://blog.youkuaiyun.com/fengbird/article/details/82048558</guid><author>fengbird</author><pubDate>Sat, 25 Aug 2018 18:38:21 +0800</pubDate><description><![CDATA[
  解答所选数据库均为MySQL,以下解答并非最佳解答,若有最佳解答,欢迎留言交流~


难度:简单


175.组合两个表


select p.FirstName,p.LastName,a.City,a.State from Person p
left join Address a on
p.PersonId=a.PersonId;


176.第二高的薪水


select IFNULL ...]]></description><category></category></item><item><title><![CDATA[Oracle快速创建百万数据]]></title><link>https://blog.youkuaiyun.com/fengbird/article/details/81178804</link><guid>https://blog.youkuaiyun.com/fengbird/article/details/81178804</guid><author>fengbird</author><pubDate>Tue, 24 Jul 2018 09:39:06 +0800</pubDate><description><![CDATA[create table myTestTable as 
select rownum as id,
               to_char(sysdate + rownum/24/3600, 'yyyy-mm-dd hh24:mi:ss') as inc_datetime,
               trunc(dbms_random.value(0, 100)) as random_i...]]></description><category></category></item></channel></rss>