- 博客(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
623
原创 微信红包算法遐想
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
1004
原创 java设计模式之行为模型模式
前面学习了创造模式系列和结构模式系列,本文来学习下行为模式系列这一章打算找一些开源项目中的代码例子来写。父类与子类策略模式针对接口的一个方法有不同的实现,让客户来选择模板方法父类一般是抽象类,实现接口方法,定义一个抽象方法让子类去实现通过dubbo代码中,如何实现客户端负载均衡算法,来理解下这几个模式
2017-01-23 18:33:26
1290
原创 java设计模式之结构模型模式
这章开始,我将讲下7种结构型模式:适配器模式、装饰模式、代理模式、外观模式、桥接模式、组合模式、享元模式。其中对象的适配器模式是各种模式的起源,我们看下面的图建议大家跟着画画uml图,方便大家理解适配器模式适配器模式将某个类的接口转换成客户端期望的另一个接口表示,目的是消除由于接口不匹配所造成的类的兼容性问题。主要分为三类:类的适配器模式、对象的适配器模
2017-01-23 18:31:46
783
原创 java设计模式之创建模型模式
今天来学习 设计模式之创建型模式顺便画了张uml 图,方便大家来理解下。下面是各个模式的代码+简介工厂方法模式一般用于需要大量产品创建的时候,比如spring的 BeanFactory 创建了大量的bean实例public class Factory { public Sender product(String name){ if("SMS".equal
2017-01-23 18:30:29
994
转载 java 23种设计模式
一、设计模式的分类总体来说设计模式分为三大类:创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式
2017-01-23 18:30:10
347
原创 netty源码分析 之十三 线程模型
通过代码来看,netty server有两个线程池来组成 而 netty client端有一个线程池来代码解读下面有两个线程池 bossGroup workerGroup // Configure the server. EventLoopGroup bossGroup = new NioEventLoopGroup(1); EventL
2017-01-21 19:12:36
565
原创 netty源码分析 之十二 类图
闲来无事,把之前总结的类,画个图表示下,其实还是清晰的对netty的核心类库,有个详细的了解,其实就是一些适配+模板的组合
2017-01-21 16:08:01
1950
原创 netty源码分析 之十一 ByteBuf
终于到最后的ByteBuf了,其实和jdk nio的ByteBuffer 含义大致相同都是对byte数组的操作,不同的是ByteBuf定义了两个下标 读下标和写下标然后再看看其的实现类WrappedByteBuf对byteBuf的包装类EmptyByteBufbyteBuf的空实现,里面的接口空实现直接返回
2017-01-10 17:57:57
703
原创 netty源码分析 之十 codec
前面学习了别的handler,都是直接继承ChannelHandlerAdapter 或者间接继承来实现的。codec也很简单,顾名思义 解遍码器核心类有以下几个ByteToMessageCodecByteBuf 与Object 之间的转换重写了ChannelHandlerAdapter 的两个方法 channelRead writer
2017-01-10 11:33:17
718
原创 netty源码分析 之九 handler
学习完前面的channel,回头来学习handler 会感觉到很简单的.handler 这个包里面的类实现 ChannelHandlerAdapter codec我们最后来看,先看其他loggingLoggingHandler 为log的输出类, 定义模板,具体实现为 InternalLogger这个接口,log4j logback之类
2017-01-09 22:43:05
2058
原创 netty源码分析 之八 transport(总结)
前面学习了channel和bootstarp。本文分为两部分,一是补充下channel 二是整体来看下channel和bootstarpchannel其他包embedded epoll unix实现 epoll选择socketlocal 就是本地通讯,不需要跨ipgroup channelGroup 包含了cha
2017-01-09 16:47:03
1017
原创 netty源码分析 之七 transport(Unsafe)
来看下unsafe的接口定义同样看你实现类,AbstractUnsafe接着看起实现,统一的模板类,由子类来实现方法接着看register 方法,其中有pipeline.fireChannelRegistered方法 private void register0(ChannelPromise promise) {
2017-01-09 16:46:37
813
原创 netty源码分析 之六 transport(EventLoop)
前面分析到DefaultChannelHandlerInvoker其被SingleThreadEventLoop 引用,并创建DefaultChannelHandleInvoker先来分析下Eventloop 以及 EventLoopGroupEventLoop定义了 asInoker 返回前面的 DefaultChannelHandlerInvoker
2017-01-09 16:46:05
460
原创 netty源码分析 之五 transport(ChannelHandler)
上文说到了,channelHandler, 顾名思义 handler 处理者从channelPipeline的定义中看出,channelPipeline是channelHandler的集合public interface ChannelPipeline extends Iterable>查看其接口定义和源码可以看出接口方法分为三类 Handler life cycle m
2017-01-09 16:45:46
653
原创 netty源码分析 之四 transport(ChannelPipeline)
前面看了channel定义,以及接口定义,可知道实现类。 * I/O Request * via {@link Channel} or *
2017-01-09 16:44:17
777
原创 netty源码分析 之三 transport(channel)
在开始学习channel之前,先看下channel如何生成的?channel如何生成?AbstractBootstrap 通过channel方法来设置 channelFactory public B channel(Class channelClass) { if (channelClass == null) { throw
2017-01-09 16:43:55
599
原创 netty源码分析 之二 transport(bootstrap)
transport 分为两部分 bootstrap channel 由于channel东西比较多,所以分开两篇来写AbstractBootstrap顾名思义,引导累 抽象父类, 定义模板方法成员变量private volatile EventLoopGroup group; @SuppressWarnings("deprecation")
2017-01-09 16:42:57
651
原创 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
1640
2
原创 motan学习笔记 六 opentracing Brave+zipkin实现
前面我们学习了,opentracing的接口定义本文来学习motan用filter 来拦截请求,并用brace来实现,上报数据到zipkin
2017-01-03 11:32:14
8145
原创 motan学习笔记 五 opentracing学习入门
opentracing是什么?opentracing(http://opentracing.io/) 是分布式跟踪系统,当我们把系统拆成服务化,分布式系统的时候,查询一个问题,很可能需要多个登录多台机器。opentracing 定义了一套api通过提供平台无关、厂商无关的API,使得开发人员能够方便的添加(或更换)追踪系统的实现。OpenTracing正在为全球的分布式追踪,提供统一
2017-01-02 10:34:39
9667
原创 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
2425
原创 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
9139
原创 motan学习笔记 二 motan架构分析
下载代码分析,motan分为几个模块motan-coreMotan核心框架motan-transport-netty基于Netty协议的长连接传输协议motan-registry-consulConsul服务发现组件motan-registry-zookeeperZookeeper服务发现组件motan-springsupport
2017-01-01 09:13:43
3228
原创 motan学习笔记 一 微博轻量级RPC框架Motan
前言前几年RPC+SOA,这几年服务化,微服务其实都大同小异,都是概念。dubbo是一款比较成功的开源项目,好多公司都在使用,去哪 京东 当当但是,dubbo有点太繁琐了,把rpc拆分的很细,利于大家扩展。同时综合了服务治理。motan,是微博基于dubbo的定制,同时框架接口比较清晰(当然dubbo也很清晰,相对而言)不熟悉dubbo的同学,请看我之前
2016-12-30 16:27:11
7431
原创 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
3293
原创 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
2510
原创 dubbo学习笔记 十二 dubbo-cluster
cluster也是从rpc分出来的,包名叫com.alibaba.dubbo.rpc.cluster也是rpc的一部分,从官方文档中可以看出确定cluster 类型,从directory中获取注册信息,router根据规则来过滤list ,然后loadBalance 做负载,抽取 invokerClusterDirectoryRo
2016-12-19 17:13:21
2638
原创 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
2521
原创 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
1243
原创 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
2148
原创 dubbo学习笔记 八 dubbo-common
前面学习了config container registry,为了后面的学习,今天开始学习下dubbo-commonbeanutil 这里面对class的一些定义和对反射的封装public enum JavaBeanAccessor { /** Field accessor. */ FIELD, /** Method accessor.*/ M
2016-12-18 12:53:11
4647
原创 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
3779
原创 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
2375
原创 dubbo学习笔记 五 dubbo-config
根据上面的路线,我们先来学习下dubbo-configdubbo-config 分为两部分 dubbo-config-api 和dubbo -config-springdubbo-config-api 这里主要是一些抽象的定义,把配置信息定义为类属性referenceConfig 为依赖 消费端的配置serviceConfig 为提供 服务端的
2016-12-18 12:51:38
5762
原创 dubbo学习笔记 三 架构预览
跑了hello world了跑了dubbo-admin了得整体的看下 dubbo的架构了和为啥使用dubbo的背景了以下资料来自 http://dubbo.io/User+Guide-zh.htm背景这张图相信大家都看腻了。随着业务量和访问量的增加,势必会经历这么一个过程当你到了SOA阶段的时候,势必会面对下面几
2016-12-18 12:50:32
1149
原创 dubbo学习笔记 二 dubbo-admin
前面编译了dubbo项目,跑了hello world本文看下dubbo-admin,看看soa的管理需要哪些功能修改配置run demo
2016-12-18 12:50:16
891
原创 dubbo学习笔记 一 源码编译
前面学习了netty和rocketmq,当然前面的文章还会继续更新,继续往下写2016 没几天了,我打算写下dubbo2017 继续深入源码,大家有啥问题 都可以一起来讨论源码搭建下载源码同样从git下载代码,https://github.com/alibaba/dubbo.git 本文使用的是tag 2.5.3的下载完了,mvn cleaninst
2016-12-18 12:49:48
1643
原创 dubbo学习笔记 四 学习路线
大道至简,再复杂的系统,也有主线,也有龙骨,三年寻龙 十年点穴 接下来 我打算按照下面的图,进行dubbo学习
2016-12-18 12:49:05
1086
原创 hadoop学习笔记 一 安装搭建hello world
好了,前面学习了rocketmq的一些内容,源码撸的差不多了,剩下的就是实战信息了。最近有朋友想学hadoop呢,那么我就写一下,一起学习,一起进步么。其实东西都没那么难,耐心 坚持 就行了下载搭建建议你最好有个linux 环境 ,从官网来看 http://hadoop.apache.org/点击download 下载可用版本 ht
2016-12-14 15:21:22
530
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人