自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

akfly的专栏

与其山脚仰望,不如登顶畅饮

  • 博客(115)
  • 收藏
  • 关注

原创 大飞哥讲<spark学习笔记>

最近朋友问我spark是啥,其实我也不知道,但是既然开源了,想必看看文档,看看示例,自己也能清楚个7788.。废话不多,先从github 上下载代码   git clone https://github.com/apache/spark.git下载完毕之后,到spark 执行 build/mvn -DskipTests clean packagebuild su

2017-10-12 10:10:48 582

原创 微信红包算法遐想

private final AtomicLong seed; private static final long multiplier = 0x5DEECE66DL; private static final long addend = 0xBL; private static final long mask = (1L << 48) - 1; /**

2017-02-17 10:51:04 962

原创 java设计模式之行为模型模式

前面学习了创造模式系列和结构模式系列,本文来学习下行为模式系列这一章打算找一些开源项目中的代码例子来写。父类与子类策略模式针对接口的一个方法有不同的实现,让客户来选择模板方法父类一般是抽象类,实现接口方法,定义一个抽象方法让子类去实现通过dubbo代码中,如何实现客户端负载均衡算法,来理解下这几个模式

2017-01-23 18:33:26 1229

原创 java设计模式之结构模型模式

这章开始,我将讲下7种结构型模式:适配器模式、装饰模式、代理模式、外观模式、桥接模式、组合模式、享元模式。其中对象的适配器模式是各种模式的起源,我们看下面的图建议大家跟着画画uml图,方便大家理解适配器模式适配器模式将某个类的接口转换成客户端期望的另一个接口表示,目的是消除由于接口不匹配所造成的类的兼容性问题。主要分为三类:类的适配器模式、对象的适配器模

2017-01-23 18:31:46 741

原创 java设计模式之创建模型模式

今天来学习 设计模式之创建型模式顺便画了张uml 图,方便大家来理解下。下面是各个模式的代码+简介工厂方法模式一般用于需要大量产品创建的时候,比如spring的 BeanFactory  创建了大量的bean实例public class Factory { public Sender product(String name){ if("SMS".equal

2017-01-23 18:30:29 947

转载 java 23种设计模式

一、设计模式的分类总体来说设计模式分为三大类:创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式

2017-01-23 18:30:10 316

原创 netty源码分析 之十三 线程模型

通过代码来看,netty server有两个线程池来组成  而 netty client端有一个线程池来代码解读下面有两个线程池 bossGroup workerGroup // Configure the server. EventLoopGroup bossGroup = new NioEventLoopGroup(1); EventL

2017-01-21 19:12:36 531

原创 netty源码分析 之十二 类图

闲来无事,把之前总结的类,画个图表示下,其实还是清晰的对netty的核心类库,有个详细的了解,其实就是一些适配+模板的组合

2017-01-21 16:08:01 1880

原创 netty源码分析 之十一 ByteBuf

终于到最后的ByteBuf了,其实和jdk nio的ByteBuffer  含义大致相同都是对byte数组的操作,不同的是ByteBuf定义了两个下标 读下标和写下标然后再看看其的实现类WrappedByteBuf对byteBuf的包装类EmptyByteBufbyteBuf的空实现,里面的接口空实现直接返回

2017-01-10 17:57:57 669

原创 netty源码分析 之十 codec

前面学习了别的handler,都是直接继承ChannelHandlerAdapter  或者间接继承来实现的。codec也很简单,顾名思义 解遍码器核心类有以下几个ByteToMessageCodecByteBuf 与Object 之间的转换重写了ChannelHandlerAdapter   的两个方法 channelRead writer

2017-01-10 11:33:17 686

原创 netty源码分析 之九 handler

学习完前面的channel,回头来学习handler 会感觉到很简单的.handler 这个包里面的类实现  ChannelHandlerAdapter codec我们最后来看,先看其他loggingLoggingHandler 为log的输出类, 定义模板,具体实现为 InternalLogger这个接口,log4j logback之类

2017-01-09 22:43:05 1930

原创 netty源码分析 之八 transport(总结)

前面学习了channel和bootstarp。本文分为两部分,一是补充下channel  二是整体来看下channel和bootstarpchannel其他包embedded  epoll unix实现 epoll选择socketlocal 就是本地通讯,不需要跨ipgroup  channelGroup 包含了cha

2017-01-09 16:47:03 925

原创 netty源码分析 之七 transport(Unsafe)

来看下unsafe的接口定义同样看你实现类,AbstractUnsafe接着看起实现,统一的模板类,由子类来实现方法接着看register 方法,其中有pipeline.fireChannelRegistered方法 private void register0(ChannelPromise promise) {

2017-01-09 16:46:37 774

原创 netty源码分析 之六 transport(EventLoop)

前面分析到DefaultChannelHandlerInvoker其被SingleThreadEventLoop 引用,并创建DefaultChannelHandleInvoker先来分析下Eventloop 以及 EventLoopGroupEventLoop定义了 asInoker 返回前面的 DefaultChannelHandlerInvoker

2017-01-09 16:46:05 421

原创 netty源码分析 之五 transport(ChannelHandler)

上文说到了,channelHandler, 顾名思义 handler 处理者从channelPipeline的定义中看出,channelPipeline是channelHandler的集合public interface ChannelPipeline extends Iterable>查看其接口定义和源码可以看出接口方法分为三类  Handler life cycle m

2017-01-09 16:45:46 611

原创 netty源码分析 之四 transport(ChannelPipeline)

前面看了channel定义,以及接口定义,可知道实现类。 * I/O Request * via {@link Channel} or *

2017-01-09 16:44:17 739

原创 netty源码分析 之三 transport(channel)

在开始学习channel之前,先看下channel如何生成的?channel如何生成?AbstractBootstrap 通过channel方法来设置 channelFactory   public B channel(Class channelClass) { if (channelClass == null) { throw

2017-01-09 16:43:55 545

原创 netty源码分析 之二 transport(bootstrap)

transport 分为两部分  bootstrap channel 由于channel东西比较多,所以分开两篇来写AbstractBootstrap顾名思义,引导累   抽象父类, 定义模板方法成员变量private volatile EventLoopGroup group; @SuppressWarnings("deprecation")

2017-01-09 16:42:57 609

原创 netty源码分析 之一 build

下载源码git地址   https://github.com/netty/netty.git之后build   mvn clean install -Dmaven.test.skip=true -Dcheckstyle.skip=true有两个模块build 不过去, 找到 根目录下的pom.xml  注释掉他 common buffer

2017-01-09 16:42:35 1617 2

原创 motan学习笔记 六 opentracing Brave+zipkin实现

前面我们学习了,opentracing的接口定义本文来学习motan用filter 来拦截请求,并用brace来实现,上报数据到zipkin

2017-01-03 11:32:14 8026 9

原创 motan学习笔记 五 opentracing学习入门

opentracing是什么?opentracing(http://opentracing.io/)  是分布式跟踪系统,当我们把系统拆成服务化,分布式系统的时候,查询一个问题,很可能需要多个登录多台机器。opentracing 定义了一套api通过提供平台无关、厂商无关的API,使得开发人员能够方便的添加(或更换)追踪系统的实现。OpenTracing正在为全球的分布式追踪,提供统一

2017-01-02 10:34:39 9583

原创 motan学习笔记 四 motan Demo 之yar 分析

发现了yar 这个东西, motan新增了 YarRpcProtocol 这个协议,主要支持php序列化。来学习下yar协议的具体实现从代码中看出,支持exporter,不支持refer 因为其走的http协议,所以php直接rest方式调用就行@SpiMeta(name = "yar")public class YarRpcProtocol extends Abst

2017-01-01 16:46:25 2369

原创 motan学习笔记 三 motan Demo 分析

之前学习了 dubbo和netty,接下来学习motan就比较容易了接下来看下motan官方提供例子hello world<!-- ~ Copyright 2009-2016 Weibo, Inc. ~ ~ Licensed under the Apache License, Version 2.0 (the "License"); ~ you

2017-01-01 09:35:22 9081

原创 motan学习笔记 二 motan架构分析

下载代码分析,motan分为几个模块motan-coreMotan核心框架motan-transport-netty基于Netty协议的长连接传输协议motan-registry-consulConsul服务发现组件motan-registry-zookeeperZookeeper服务发现组件motan-springsupport

2017-01-01 09:13:43 3168

原创 motan学习笔记 一 微博轻量级RPC框架Motan

前言前几年RPC+SOA,这几年服务化,微服务其实都大同小异,都是概念。dubbo是一款比较成功的开源项目,好多公司都在使用,去哪 京东 当当但是,dubbo有点太繁琐了,把rpc拆分的很细,利于大家扩展。同时综合了服务治理。motan,是微博基于dubbo的定制,同时框架接口比较清晰(当然dubbo也很清晰,相对而言)不熟悉dubbo的同学,请看我之前

2016-12-30 16:27:11 7359

原创 dubbo学习笔记 十四 dubbo-remoting

学完那么多章了,终于到remoting了,相信大家也很熟悉了,再学了netty和rocketmq之后,dubbo的remoting 也很明显了先看下dubbo的介绍Endpoint/* * Copyright 1999-2011 Alibaba Group. * * Licensed under the Apache License,

2016-12-20 10:53:32 3262

原创 dubbo学习笔记 十三 dubbo-filter

前面学了rpc的filter,那么这模块就简单了dubbo-filter-cache和dubbo-filter-validationdubbo-filter-cache通过判断是否命中缓存,来决定是否都cache public Result invoke(Invoker invoker, Invocation invocation) throws

2016-12-19 17:16:06 2476

原创 dubbo学习笔记 十二 dubbo-cluster

cluster也是从rpc分出来的,包名叫com.alibaba.dubbo.rpc.cluster也是rpc的一部分,从官方文档中可以看出确定cluster 类型,从directory中获取注册信息,router根据规则来过滤list ,然后loadBalance 做负载,抽取 invokerClusterDirectoryRo

2016-12-19 17:13:21 2598

原创 dubbo学习笔记 十一 dubbo-rpc之模块

dubbo-rpc分为几个模块protocol在具体的实现protocol之前,有两个包装类ProtocolFilterWrapper 和ProtocolListenerWrapperfilter=com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapperlistener=com.alibaba.dubbo.rpc.protoco

2016-12-19 16:41:11 2488

原创 dubbo学习笔记 十 dubbo-rpc

通过前面的dubbo-common之动态扩展,我们明白了会加载META-INF 目录下的文件。接着来学习dubbo-rpc吧Invokerrpc调用远程实习类叫Invokerpublic interface Invoker extends Node { /** * get service interface. * * @re

2016-12-19 15:27:30 1196

原创 dubbo学习笔记 九 dubbo-common之动态扩展extension

extension 动态扩展包,dubbo里面有很多 @SPI  @Activate @Adaptive 注解, 同时也有许多配置文件。如下面的路径 private static final String SERVICES_DIRECTORY = "META-INF/services/"; private static final String DUBBO_DI

2016-12-18 19:00:26 2094

原创 dubbo学习笔记 八 dubbo-common

前面学习了config container registry,为了后面的学习,今天开始学习下dubbo-commonbeanutil 这里面对class的一些定义和对反射的封装public enum JavaBeanAccessor { /** Field accessor. */ FIELD, /** Method accessor.*/ M

2016-12-18 12:53:11 4602

原创 dubbo学习笔记 七 dubbo-registry

registry 这个模块主要是 注册中心注册中心+监听者模式+工厂模式+模板模式  下面是核心的5个方法RegistryFactory/* * Copyright 1999-2011 Alibaba Group. * * Licensed under the Apache License, Version 2.0 (the "License"); * yo

2016-12-18 12:52:30 3719

原创 dubbo学习笔记 六 dubbo-container

这个模块比较简单,东西也不多,好写看下SpringContainer吧,里面就是把META-INF/spring 下面的文件加载起来public class SpringContainer implements Container { private static final Logger logger = LoggerFactory.getLogger(

2016-12-18 12:52:08 2334

原创 dubbo学习笔记 五 dubbo-config

根据上面的路线,我们先来学习下dubbo-configdubbo-config 分为两部分 dubbo-config-api 和dubbo -config-springdubbo-config-api 这里主要是一些抽象的定义,把配置信息定义为类属性referenceConfig  为依赖 消费端的配置serviceConfig 为提供 服务端的

2016-12-18 12:51:38 5678

原创 dubbo学习笔记 三 架构预览

跑了hello world了跑了dubbo-admin了得整体的看下 dubbo的架构了和为啥使用dubbo的背景了以下资料来自  http://dubbo.io/User+Guide-zh.htm背景这张图相信大家都看腻了。随着业务量和访问量的增加,势必会经历这么一个过程当你到了SOA阶段的时候,势必会面对下面几

2016-12-18 12:50:32 1115

原创 dubbo学习笔记 二 dubbo-admin

前面编译了dubbo项目,跑了hello world本文看下dubbo-admin,看看soa的管理需要哪些功能修改配置run demo

2016-12-18 12:50:16 863

原创 dubbo学习笔记 一 源码编译

前面学习了netty和rocketmq,当然前面的文章还会继续更新,继续往下写2016 没几天了,我打算写下dubbo2017 继续深入源码,大家有啥问题 都可以一起来讨论源码搭建下载源码同样从git下载代码,https://github.com/alibaba/dubbo.git   本文使用的是tag 2.5.3的下载完了,mvn cleaninst

2016-12-18 12:49:48 1608

原创 dubbo学习笔记 四 学习路线

大道至简,再复杂的系统,也有主线,也有龙骨,三年寻龙 十年点穴 接下来 我打算按照下面的图,进行dubbo学习

2016-12-18 12:49:05 1047

原创 hadoop学习笔记 一 安装搭建hello world

好了,前面学习了rocketmq的一些内容,源码撸的差不多了,剩下的就是实战信息了。最近有朋友想学hadoop呢,那么我就写一下,一起学习,一起进步么。其实东西都没那么难,耐心 坚持 就行了下载搭建建议你最好有个linux 环境  ,从官网来看 http://hadoop.apache.org/点击download 下载可用版本   ht

2016-12-14 15:21:22 501

空空如也

空空如也

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

TA关注的人

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