<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[sunning9001的专栏]]></title><description><![CDATA[而今漫步从头越，苍山如海，残阳如血]]></description><link>https://blog.csdn.net/sunning9001</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; sunning9001]]></copyright><item><title><![CDATA[IIBA  BABOK 历史]]></title><link>https://blog.csdn.net/sunning9001/article/details/113582636</link><guid>https://blog.csdn.net/sunning9001/article/details/113582636</guid><author>sunning9001</author><pubDate>Wed, 03 Feb 2021 09:42:15 +0800</pubDate><description><![CDATA[Version 1.0 and 1.4 published 2005. Version 1.6 Draft published 2006. Version 1.6 Final published 2008. Version 2.0
published 2009. Version 3.0 published 2015.

BABOK在2005年发布1.0和1.4版本。 在2006年发布1.6版草稿。在2008年发布1.6版定稿。在2009年发布2.0版本，在2015年发布3.0版本。

IIBA ® w...]]></description><category></category></item><item><title><![CDATA[软件测试模型]]></title><link>https://blog.csdn.net/sunning9001/article/details/81000830</link><guid>https://blog.csdn.net/sunning9001/article/details/81000830</guid><author>sunning9001</author><pubDate>Wed, 11 Jul 2018 15:03:10 +0800</pubDate><description><![CDATA[软件测试若使用经典的V模型阶段可以分为单元测试集成测试系统测试V模型是最具有代表意义的测试模型。V模型是软件开发瀑布模型的变种，它反映了测试活动与分析和设计的关系 。从左到右，描述了基本的开发过程和测试行为，非常明确地标明了测试过程中存在的不同级别，并且清楚地描述了这些测试阶段和开发过程期间各阶段的对应关系 。左边依次下降的是开发过程各阶段，与此相对应的是右边依次上升的部分，即各测试过程的各个阶段...]]></description><category></category></item><item><title><![CDATA[RocketMQ]]></title><link>https://blog.csdn.net/sunning9001/article/details/61200104</link><guid>https://blog.csdn.net/sunning9001/article/details/61200104</guid><author>sunning9001</author><pubDate>Tue, 27 Mar 2018 10:04:19 +0800</pubDate><description><![CDATA[在ConsumerOffsetManager中,存储了topic@group 对应的每一个MessageQueue 的offset信息。  【topic@group -&amp;gt;(queueId,offset)】内存结果如下,采用fastjson进行序列化。  private ConcurrentHashMap&amp;lt;String/* topic@group */, ConcurrentHashMa...]]></description><category></category></item><item><title><![CDATA[Netty 4.1.X源代码 再读1   Future剖析]]></title><link>https://blog.csdn.net/sunning9001/article/details/65935083</link><guid>https://blog.csdn.net/sunning9001/article/details/65935083</guid><author>sunning9001</author><pubDate>Tue, 27 Mar 2018 10:03:39 +0800</pubDate><description><![CDATA[在Apache  Mina 中定义了Future操作。 Netty4.1.x 对Future操作进行的重新设计。io.netty.util.concurrent 包中定义了public interface Future&amp;lt;V&amp;gt; extends java.util.concurrent.Future&amp;lt;V&amp;gt;  接口,该接口实现JDK  Future 接口。io.netty.uti...]]></description><category></category></item><item><title><![CDATA[RocketMQ架构]]></title><link>https://blog.csdn.net/sunning9001/article/details/70621289</link><guid>https://blog.csdn.net/sunning9001/article/details/70621289</guid><author>sunning9001</author><pubDate>Tue, 27 Mar 2018 10:02:40 +0800</pubDate><description><![CDATA[同一个Topic可以在多个Broker中创建,同一个Broker中的某一个Topic可以拥有多个队列。那么如何保证消息在队列中顺序呢？AllocateMessageQueueStrategy   消费者均衡       MessageQueueSelector  生产者均衡     topicRouteData2TopicPublishInfo在RocketMQ 中在 org.apache.roc...]]></description><category></category></item><item><title><![CDATA[KafkaConsumer]]></title><link>https://blog.csdn.net/sunning9001/article/details/70184220</link><guid>https://blog.csdn.net/sunning9001/article/details/70184220</guid><author>sunning9001</author><pubDate>Tue, 27 Mar 2018 10:02:15 +0800</pubDate><description><![CDATA[KafkaConsumer 可以从Kafka集群中消费记录。KafkaConsumer 客户端明确的处理Kafka Brokers的失败,并且明确的在Kafka集群中获取topic分区信息。KafkaConsumer 同时与Broker进行交互,并且允许consumer中的KafkaConsumer实例来负载均衡的消费记录。KafkaConsumer 保持与Kafka 集群中的broker TCP...]]></description><category></category></item><item><title><![CDATA[Kafka  Message  Dilivery  Semantics]]></title><link>https://blog.csdn.net/sunning9001/article/details/70216338</link><guid>https://blog.csdn.net/sunning9001/article/details/70216338</guid><author>sunning9001</author><pubDate>Tue, 27 Mar 2018 10:01:57 +0800</pubDate><description><![CDATA[在Apache Kafka 中确保哪些消息投递语义:为了高效,Apache Kafka   默认确保 at-least-once 投递语义,同时允许使用者通过Producer 取消重试 同时在批量处理消息前提交Offset来实现at-most-once 语义。但是Exactly-once  投递语义需要目的存储系统合作来实现。但是Kafka 提供OffSet 可以使使用者简单容易的来实现Exact...]]></description><category></category></item><item><title><![CDATA[Yahoo  pulsar   -1   Producer  send和Consumer   receive 过程源码剖析]]></title><link>https://blog.csdn.net/sunning9001/article/details/71726708</link><guid>https://blog.csdn.net/sunning9001/article/details/71726708</guid><author>sunning9001</author><pubDate>Tue, 27 Mar 2018 10:01:14 +0800</pubDate><description><![CDATA[1、同步发送消息   MessageId send(byte[] message) throws PulsarClientException;   private static final AtomicLongFieldUpdater&amp;lt;ProducerImpl&amp;gt; msgIdGeneratorUpdater = AtomicLongFieldUpdater            .new...]]></description><category></category></item><item><title><![CDATA[Netty  ServerBootstrap  bind和acceptor 事件源代码剖析]]></title><link>https://blog.csdn.net/sunning9001/article/details/72843790</link><guid>https://blog.csdn.net/sunning9001/article/details/72843790</guid><author>sunning9001</author><pubDate>Tue, 27 Mar 2018 10:00:42 +0800</pubDate><description><![CDATA[流程1 ：在ServerBootstrap(AbstractBootstrap&amp;lt;B,C&amp;gt;).bind(int) 绑定端口。1、ServerBootstrap(AbstractBootstrap&amp;lt;B,C&amp;gt;).initAndRegister()   创建一个ServerSocketChannel ,并注册到EventLoop中。 在init时,主要通过工厂方法创建一个Serve...]]></description><category></category></item><item><title><![CDATA[Netty  Write]]></title><link>https://blog.csdn.net/sunning9001/article/details/72864450</link><guid>https://blog.csdn.net/sunning9001/article/details/72864450</guid><author>sunning9001</author><pubDate>Tue, 27 Mar 2018 10:00:26 +0800</pubDate><description><![CDATA[ChannelOutboundInvoker 接口中定义了写出数据的方法。 每一个方法都返回一个Future引用。1、write 方法。 直接把数据写入的OutBuffer中ChannelFuture write(Object msg)Request to write a message via this ChannelHandlerContext through the ChannelPipel...]]></description><category></category></item><item><title><![CDATA[翻一翻spring历史版本]]></title><link>https://blog.csdn.net/sunning9001/article/details/77104243</link><guid>https://blog.csdn.net/sunning9001/article/details/77104243</guid><author>sunning9001</author><pubDate>Tue, 27 Mar 2018 09:59:55 +0800</pubDate><description><![CDATA[Spring 0.9 版本,有记录的第一个版本Changes in version 0.9 (25.6.2003)
----------------------------------
* first public release since the version that came with the book &quot;Expert One-on-One J2EE Design and Develop...]]></description><category></category></item><item><title><![CDATA[apache mina: 架构]]></title><link>https://blog.csdn.net/sunning9001/article/details/48140935</link><guid>https://blog.csdn.net/sunning9001/article/details/48140935</guid><author>sunning9001</author><pubDate>Tue, 27 Mar 2018 09:59:12 +0800</pubDate><description><![CDATA[在2004年java发布NIO1.0版本,这个版本已经过去了十年了。但是java领域中的网络框架比较成熟和流行的主要还是出自韩国作者的apache mina 和jboss netty.apache mina作为reactor模式的java实践可以作为学习reactor模式最合适的源代码。apache  mina 架构中，整个架构非常清晰。这里我们主要从服务器端入手来学习整个apache  mina...]]></description><category></category></item><item><title><![CDATA[Memcached  namespaces]]></title><link>https://blog.csdn.net/sunning9001/article/details/50497274</link><guid>https://blog.csdn.net/sunning9001/article/details/50497274</guid><author>sunning9001</author><pubDate>Sat, 22 Apr 2017 22:02:10 +0800</pubDate><description><![CDATA[NamespacingMemcached does not natively support namespaces or tags.It's difficult to support this natively as you cannot atomically expire the namespaces across all of your servers without adding quite...]]></description><category></category></item><item><title><![CDATA[Redis Data Layout]]></title><link>https://blog.csdn.net/sunning9001/article/details/50484090</link><guid>https://blog.csdn.net/sunning9001/article/details/50484090</guid><author>sunning9001</author><pubDate>Sat, 22 Apr 2017 21:58:52 +0800</pubDate><description><![CDATA[0Redis Data LayoutTo better understand the data layout, it helps to identify the main &quot;domain&quot; objects inside RetwisJ.In its current form, RetwisJ allows users to be created, to postmessages, to follo...]]></description><category></category></item><item><title><![CDATA[Apache mina: IoSession.write(Object msg)剖析]]></title><link>https://blog.csdn.net/sunning9001/article/details/50516736</link><guid>https://blog.csdn.net/sunning9001/article/details/50516736</guid><author>sunning9001</author><pubDate>Sat, 22 Apr 2017 21:58:14 +0800</pubDate><description><![CDATA[在apache mina中通过IoSession 写入数据,返回一个Future可以获取写入数据的结果。
NioSocketSession(AbstractIoSession).write(Object)  


NioSocketSession(AbstractIoSession).write(Object, SocketAddress) .IoSession通过FilterChain]]></description><category></category></item><item><title><![CDATA[Armeria  小试牛刀]]></title><link>https://blog.csdn.net/sunning9001/article/details/51610964</link><guid>https://blog.csdn.net/sunning9001/article/details/51610964</guid><author>sunning9001</author><pubDate>Sat, 22 Apr 2017 21:57:02 +0800</pubDate><description><![CDATA[HelloService.thrift 定义服务接口
namespace java com.example.thrift

service HelloService {
    string hello(1:string name)
}
使用thrift-0.9.3.exe 工具,命令：thrift-0.9.3 -r --gen java HelloService.thrift 在当前文件夹g]]></description><category></category></item><item><title><![CDATA[Apache  Mina 源码再读6    Executor]]></title><link>https://blog.csdn.net/sunning9001/article/details/65938514</link><guid>https://blog.csdn.net/sunning9001/article/details/65938514</guid><author>sunning9001</author><pubDate>Fri, 07 Apr 2017 09:48:59 +0800</pubDate><description><![CDATA[Do I need to make my IoHandler thread-safe?


It depends on your implementation. If you access the resource which is shared across multiple sessions, you have to make it thread-safe. If the resourc]]></description><category></category></item><item><title><![CDATA[Apache  Mina  源码再读5     IoSession.close()  源码剖析]]></title><link>https://blog.csdn.net/sunning9001/article/details/65937823</link><guid>https://blog.csdn.net/sunning9001/article/details/65937823</guid><author>sunning9001</author><pubDate>Fri, 07 Apr 2017 09:48:40 +0800</pubDate><description><![CDATA[Apache  Mina   IoSession.close(immediately =true)  关闭流程小结：

1 、当线程调用IoSession.close(immediately =true) 时,会创建一个CLOSE_REQUEST 写请求。并返回一个CloseFuture 异步操作
2、当Processor在处理IoSesion写数据过程中,会把队列中所有排队的消息写入操作系统缓冲区。
3、当轮询到最后一个Close_Future 请求时,此时,等待写入的消息都已经写入到缓冲区。此时,IoS]]></description><category></category></item><item><title><![CDATA[Apache Mina 源码再读4    IoSession.write()源码剖析]]></title><link>https://blog.csdn.net/sunning9001/article/details/65937263</link><guid>https://blog.csdn.net/sunning9001/article/details/65937263</guid><author>sunning9001</author><pubDate>Fri, 07 Apr 2017 09:48:22 +0800</pubDate><description><![CDATA[Apache Mina  IoSession.write(Object message) 写出数据流程小结：

1、Processor 线程首选轮询newSessions中每一个IoSession. 然后,把IoSession 放到IoService 的managedSessions中进行管理追踪。
2、当IoSession.write(Object message) 调用时,会创建一个WriteFuture 对象,并创建一个WriteRequest 对象,把这个对象增加到每一个IoSession关联的Wr]]></description><category></category></item><item><title><![CDATA[Apache  mina 源码再读3   I/O  Service  源码剖析]]></title><link>https://blog.csdn.net/sunning9001/article/details/65935966</link><guid>https://blog.csdn.net/sunning9001/article/details/65935966</guid><author>sunning9001</author><pubDate>Fri, 07 Apr 2017 09:48:04 +0800</pubDate><description><![CDATA[Base interface for all  IoAcceptor  and  IoConnector  that provide I/O service and manage   IoSession.
public interface IoService { }



IoAcceptor 和IoConnector  的基础接口IoService 来提供I/O服务和管理IoSessi]]></description><category></category></item></channel></rss>