自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

sunning9001的专栏

而今漫步从头越,苍山如海,残阳如血

  • 博客(157)
  • 资源 (11)
  • 收藏
  • 关注

原创 IIBA BABOK 历史

Version 1.0 and 1.4 published 2005. Version 1.6 Draft published 2006. Version 1.6 Final published 2008. Version 2.0published 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...

2021-02-03 09:42:15 369

转载 软件测试模型

软件测试若使用经典的V模型阶段可以分为单元测试集成测试系统测试V模型是最具有代表意义的测试模型。V模型是软件开发瀑布模型的变种,它反映了测试活动与分析和设计的关系 。从左到右,描述了基本的开发过程和测试行为,非常明确地标明了测试过程中存在的不同级别,并且清楚地描述了这些测试阶段和开发过程期间各阶段的对应关系 。左边依次下降的是开发过程各阶段,与此相对应的是右边依次上升的部分,即各测试过程的各个阶段...

2018-07-11 15:03:10 415

原创 RocketMQ

在ConsumerOffsetManager中,存储了topic@group 对应的每一个MessageQueue 的offset信息。  【topic@group ->(queueId,offset)】内存结果如下,采用fastjson进行序列化。  private ConcurrentHashMap<String/* topic@group */, ConcurrentHashMa...

2018-03-27 10:04:19 309

原创 Netty 4.1.X源代码 再读1 Future剖析

在Apache  Mina 中定义了Future操作。 Netty4.1.x 对Future操作进行的重新设计。io.netty.util.concurrent 包中定义了public interface Future<V> extends java.util.concurrent.Future<V>  接口,该接口实现JDK  Future 接口。io.netty.uti...

2018-03-27 10:03:39 298

原创 RocketMQ架构

同一个Topic可以在多个Broker中创建,同一个Broker中的某一个Topic可以拥有多个队列。那么如何保证消息在队列中顺序呢?AllocateMessageQueueStrategy   消费者均衡       MessageQueueSelector  生产者均衡     topicRouteData2TopicPublishInfo在RocketMQ 中在 org.apache.roc...

2018-03-27 10:02:40 687

原创 KafkaConsumer

KafkaConsumer 可以从Kafka集群中消费记录。KafkaConsumer 客户端明确的处理Kafka Brokers的失败,并且明确的在Kafka集群中获取topic分区信息。KafkaConsumer 同时与Broker进行交互,并且允许consumer中的KafkaConsumer实例来负载均衡的消费记录。KafkaConsumer 保持与Kafka 集群中的broker TCP...

2018-03-27 10:02:15 605

翻译 Kafka Message Dilivery Semantics

在Apache Kafka 中确保哪些消息投递语义:为了高效,Apache Kafka   默认确保 at-least-once 投递语义,同时允许使用者通过Producer 取消重试 同时在批量处理消息前提交Offset来实现at-most-once 语义。但是Exactly-once  投递语义需要目的存储系统合作来实现。但是Kafka 提供OffSet 可以使使用者简单容易的来实现Exact...

2018-03-27 10:01:57 275

原创 Yahoo pulsar -1 Producer send和Consumer receive 过程源码剖析

1、同步发送消息   MessageId send(byte[] message) throws PulsarClientException;   private static final AtomicLongFieldUpdater<ProducerImpl> msgIdGeneratorUpdater = AtomicLongFieldUpdater            .new...

2018-03-27 10:01:14 669

原创 Netty ServerBootstrap bind和acceptor 事件源代码剖析

流程1 :在ServerBootstrap(AbstractBootstrap<B,C>).bind(int) 绑定端口。1、ServerBootstrap(AbstractBootstrap<B,C>).initAndRegister()   创建一个ServerSocketChannel ,并注册到EventLoop中。 在init时,主要通过工厂方法创建一个Serve...

2018-03-27 10:00:42 937

原创 Netty Write

ChannelOutboundInvoker 接口中定义了写出数据的方法。 每一个方法都返回一个Future引用。1、write 方法。 直接把数据写入的OutBuffer中ChannelFuture write(Object msg)Request to write a message via this ChannelHandlerContext through the ChannelPipel...

2018-03-27 10:00:26 499

原创 翻一翻spring历史版本

Spring 0.9 版本,有记录的第一个版本Changes in version 0.9 (25.6.2003)----------------------------------* first public release since the version that came with the book "Expert One-on-One J2EE Design and Develop...

2018-03-27 09:59:55 1683

原创 apache mina: 架构

在2004年java发布NIO1.0版本,这个版本已经过去了十年了。但是java领域中的网络框架比较成熟和流行的主要还是出自韩国作者的apache mina 和jboss netty.apache mina作为reactor模式的java实践可以作为学习reactor模式最合适的源代码。apache  mina 架构中,整个架构非常清晰。这里我们主要从服务器端入手来学习整个apache  mina...

2018-03-27 09:59:12 549

原创 Memcached namespaces

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...

2017-04-22 22:02:10 425

原创 Redis Data Layout

0Redis Data LayoutTo better understand the data layout, it helps to identify the main "domain" objects inside RetwisJ.In its current form, RetwisJ allows users to be created, to postmessages, to follo...

2017-04-22 21:58:52 444

原创 Apache mina: IoSession.write(Object msg)剖析

在apache mina中通过IoSession 写入数据,返回一个Future可以获取写入数据的结果。NioSocketSession(AbstractIoSession).write(Object)  NioSocketSession(AbstractIoSession).write(Object, SocketAddress) .IoSession通过FilterChain

2017-04-22 21:58:14 2963

原创 Armeria 小试牛刀

HelloService.thrift 定义服务接口namespace java com.example.thriftservice HelloService { string hello(1:string name)}使用thrift-0.9.3.exe 工具,命令:thrift-0.9.3 -r --gen java HelloService.thrift 在当前文件夹g

2017-04-22 21:57:02 3005

原创 Apache Mina 源码再读6 Executor

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

2017-04-07 09:48:59 436

原创 Apache Mina 源码再读5 IoSession.close() 源码剖析

Apache Mina IoSession.close(immediately =true) 关闭流程小结:1 、当线程调用IoSession.close(immediately =true) 时,会创建一个CLOSE_REQUEST 写请求。并返回一个CloseFuture 异步操作2、当Processor在处理IoSesion写数据过程中,会把队列中所有排队的消息写入操作系统缓冲区。3、当轮询到最后一个Close_Future 请求时,此时,等待写入的消息都已经写入到缓冲区。此时,IoS

2017-04-07 09:48:40 3467

原创 Apache Mina 源码再读4 IoSession.write()源码剖析

Apache Mina IoSession.write(Object message) 写出数据流程小结:1、Processor 线程首选轮询newSessions中每一个IoSession. 然后,把IoSession 放到IoService 的managedSessions中进行管理追踪。2、当IoSession.write(Object message) 调用时,会创建一个WriteFuture 对象,并创建一个WriteRequest 对象,把这个对象增加到每一个IoSession关联的Wr

2017-04-07 09:48:22 4398 1

原创 Apache mina 源码再读3 I/O Service 源码剖析

Base interface for all  IoAcceptor  and  IoConnector  that provide I/O service and manage   IoSession.public interface IoService { }IoAcceptor 和IoConnector  的基础接口IoService 来提供I/O服务和管理IoSessi

2017-04-07 09:48:04 344

原创 Apache Mina 源码再读2 IoSession创建过程源代码剖析

在调用bind()函数后,AcceptorOperationFuture 被注册到AbstractPollingIoAcceptor 类中的registerQueue 队列。在AbstractPollingIoAcceptor中存在IoProcessor 类。/** * An internal interface to represent an 'I/O processor' th

2017-04-07 09:47:43 496

原创 Apache Mina 源码再读 1 Bind过程以及DefaultIoFuture源码

1 、bind 事件  在服务器端调用public final void bind(SocketAddress... addresses) throws IOException 方法绑定本地端口时,仔细看看,Apache Mina 在bind()本地端口做了哪些事情? protected final Set bindInternal(List localAddresses) t

2017-04-07 09:47:17 513

原创 Guava ListenableFuture 小试牛刀

参考链接:Guava   ListenableFuturehttps://github.com/google/guava/wiki/ListenableFutureExplained

2017-03-28 22:51:12 495

原创 Netty Future 小试牛刀

执行异步任务,执行一个轮询任务和当完成时任务时,获得一个通知是一个非常普通和应该非常容易事情。当JDK中java.util.concurrent.Future 第一次出现时,我们的兴奋没有持续的太久。因为我们必须阻塞当前线程,才能当异步动作完成时获得通知。在异步编程中,我们应该指定在异步操作完成时应该执行什么,而不是等待结果的到来。在Netty中io.netty.concurrent.Future 是JDK Future的一个子类。可以Future 中添加Listener ,当Future异步动作

2017-03-28 22:27:40 684

原创 Trane.io Future 小试牛刀

在最近工作中,遇到使用Apache  mina 来模拟多个客户端登录期货交易系统,进行买卖交易。但是,在Code的过程中,发现自己的操作全部都是异步的。我采用异步+定时轮询的方式。但是,感觉这种方式不是最优解。然后,想到Apache Mina本身也是异步操作。以前,所有代码全部都是同步操作,对于异步了解比较少。所有对java语言本身对异步操作进行再次学习。    在学习过程中,了解到T

2017-03-27 22:37:06 370

原创 java中使用javascript Rhino 引擎

Rhino is a JavaScript engine written fully in Java and managed by the Mozilla Foundation as open source software. It is separate from the SpiderMonkey engine, which is also developed by Mozilla, but w

2017-03-27 22:04:01 751

原创 Nashorn 引擎中对javascript Object的实现

public abstract class ScriptObject{              /** __proto__ special property name */    public static final String PROTO_PROPERTY_NAME   = "__proto__";   /** Map to property information and a

2017-03-27 22:03:07 758 1

原创 java中使用javascript Nashorn引擎

在混合语言编程中,就是语言与语言间的交互。1   在java中调用javascript 函数javascript文件:nashorn1.js//定义javascript函数var fun1 = function(name) { print('Hi there from Javascript, ' + name); return "greetings from

2017-03-27 22:02:19 3724

原创 Mina分享

Apache Mina是什么?Apache MINA is a network application framework which helps users develop high performance and high scalability network applications Apache Mina是一个能够帮助用户开发高性能和高伸缩性网络应用程序的框架。我

2017-03-23 13:20:07 760

原创 使用RocketMQ的客户端使用

RocketMQ提供了强大的消息系统功能,RocketMQ提供了java客户端,可以提供使用。下面代码来自RocketMQ4.0.0中的example代码。Producer消息生产端:public class Producer { public static void main(String[] args) { // 创建一个Produer Group DefaultMQ

2017-03-23 10:49:25 7826

原创 内存映射文件

The primary benefit of memory mapping a file is increasing I/O performance, especially when used on large files. memery mapped file 主要的优势是提供I/O的效率,尤其在处理大文件上面。Most modern operating system

2017-03-22 21:14:44 616

翻译 Kafka Protocal Guide

Kafka TCP协议, 分区方式、broker信息查询、批量处理

2017-03-22 21:14:08 389

原创 apache kafka log 存储格式

Log FormatA log for a topic named "my_topic" with two partitions consists of two directories (namely my_topic_0 and my_topic_1) populated with data files containing the messages for that top

2017-03-22 21:13:48 837

翻译 Apache Kafka Core Concept

The ProducerThe Producer  Load balacingproducer 直接发送数据到broker中,这个broker是分区的主服务。 为了帮助producer 可以直接发送数据到broker,kafka中的节点可以在任何时间来回答一个发送请求中哪些server是存在的,并且主题的分区的主server在哪里。这样,kafka中的每一个节点都可以直接回答该请求。p

2017-03-05 17:29:32 375

原创 Apache Kafka Introduction

Topics and Logs首先我们深入Kafka为一串记录提供的核心抽象概念:TopicTopic是一个record发行的类型或者流入名称。Kafka中topic经常有多高订阅者。同时,topic可以拥有零个、一个或者多个消费者来订阅这个topic来消费record.每一个topic,Kafka集群中保持着一个分区的log 如下图所示:每一个partition

2017-03-05 10:30:20 367

翻译 RocketMQ Core Concept

Producer生产者是在应用程序中发送消息给broker的。 在RocketMQ中提供多种语义的消息发送:synchronous,asynchronous和one way.Producer Group具有相同规则的Producers被聚合在一起。一个producer在开启事务消息后,随后宕机。在同一个producer group中的不同的实例可以被broker

2017-03-04 19:09:20 703

翻译 Socket .i0 介绍

在Node.js第一次出现不久,Socket.io第一个版本也出现啦。在此之前,很长一个时间段,我一直子寻找一个框架可以容易的是我能够从服务器端推送数据到客户端,甚至尝试了从服务器端的javascript的途径。在同时,主要的注意力集中于一个类似于在标准化进程中的websocket api 上面。我很幸运的收到很多反馈在会议上,包括node.js的创造者。这使我意识到这件事情的重要性。So

2017-02-18 16:14:57 362

原创 MyBatis 初探

在使用MyBatis时,使用XML文件来构建SqlSessionFactory类。SqlSessionFactory 是由SqlSessionFactoryBuilder类来创建。SqlSessionFactoryBuilder.build(Configuration) SqlSessionFactoryBuilder.build(InputStream, String, Propert

2016-11-04 17:26:31 574

原创 《Pro Java 7 NIO.2 》 The Asychronous Channel API 部分翻译

Groupsthe asynchronous API introduces a class named AsynchronousChannelGroup, which presents the concept of an asynchronous channel group, in which each asynchronous channel belongs to a c

2016-08-12 16:11:15 532

原创 Java AIO 认识

在基本熟悉了JDK7中异步IO的关键类,以后有助于我们深入学习。在java语言和平台中,存在广泛使用的网络开源库屈指可数。netty 和mina出自韩国人之手,netty和mina主要使用select网络模型,主要使用jdk中的nio类库。netty 和mina在各个行业被广泛使用。 netty 和mina 以及 java nio本身都是对reactor 模式的实现。在操作系统层面都是通过select函数来实现。在windows操作系统中,出现I/o Completion port 后,被广泛使用来提供网络

2016-08-12 16:08:00 645

跟我学Prince2系列讲座2-商业论证

跟我学Prince2系列讲座2-商业论证 跟我学Prince2系列讲座2-商业论证

2018-04-28

跟我学prince2系列讲座第一讲

跟我学prince2系列讲座第一讲 全套4讲,第一讲 Prince2概述 杨泉

2018-04-28

Prince2项目管理知识框架的简介

讲解Prince2项目管理知识框架的基本原则,以及在Prince2框架下其他相关知识

2018-04-28

PRINCE2如何完善PMBOK指南和您的PMP证书

PRINCE2如何完善PMBOK指南和您的PMP证书 讲解Prince2与PMP的区别,如何在学习了PMP之后,使用Prince2流程框架来补充PMP的缺点。

2018-04-28

PMbok6 新增敏捷 映射

PMbok6 新增敏捷 映射 更新解读 PMP PMI PMbok6 新增敏捷 映射 更新解读 PMP PMI PMbok6 新增敏捷 映射 更新解读 PMP PMI

2018-04-24

PMBOK6 与敏捷 发展 将来

PMBOK6 更新 与敏捷 PMBOK6 更新解读 PMBOK6 与敏捷 发展 将来

2018-04-24

netty proxy 代理例子

使用netty作为proxy的例子。 maven。 直接运行

2016-06-01

webbit 源代码

基于netty 框架的httpserver 服务器,源代码和jar 。

2015-12-11

Scalable IO in Java -Doug Lea

Scalable IO in Java -Doug Lea 描述java nio 和reactor 设计模式之间的关系

2015-07-10

java nio and reactor

java nio 作者的ppt。 How to Build a Scalable Multiplexed Server With NIO 文中讲述如何使用java nio来实现高性能的服务器。 1、建立高性能服务器遇到问题? 2、java nio 和 reactor 的映射关系 3、如果使用java nio 来实现高性能服务器

2015-07-10

flex air案例

AIR的 Hello world,写给那些知道一点AIR,想要开始AIR开发的人。读这篇教程你可以没有任何Flex的基础,我会告诉你如何创建你的第一个项目,并且发布一个HelloWorld程序。

2011-05-29

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除