`
LoveLZY
  • 浏览: 57480 次
  • 性别: Icon_minigender_1
博客专栏
Group-logo
从零编写RPC框架
浏览量:0
社区版块
存档分类
最新评论
文章列表
   dubbo作为一个服务化框架,rpc模块是dubbo整个框架的核心部分。    我们来通过dubbo来了解rpc调用的本质。      dubbo的rpc模块以Invocation和Result为中心,扩展接口为Protocol、Invoker和Exporter。Protocol是服务域,它是Invoker暴露和引用的主功能入口,它负责Invoker的生命周期管理。Invoker是实体域,它是Dubbo的核心模型,其它模型都向它靠扰,或转换成它,它代表一个可执行体,可向它发起invoke调用,它有可能是一个本地的实现,也可能是一个远程的实现,也可能一个集群实现。   invoker接口 ...
   dubbo的扩展采用spi机制实现,spi(Service Provider Interface)是指一些提供给你继承、扩展,完成自定义功能的类、接口或者方法。spi把控制权利交个调用方,调用方来决定使用该spi的哪个实现。    dubbo扩展机制的核心类是ExtensionLoader,该类通过静态方法getExtensionLoader获取一个指定接口的ExtensionLoader实例。   @SuppressWarnings("unchecked") public static <T> ExtensionLoader<T ...
    dubbo-registry注册中心模块,基于注册中心下发地址的集群方式,以及对各种注册中心的抽象。    registry模块顶层接口为RegistryService和NotifyListener以及一个工厂接口RegistryFactory。    RegistryService接口包含4个方法。    void regist ...
   dubbo-container模块是dubbo启动顺序中的第一个模块,dubbo-container模块是容器模块,通过dubbo-container模块读取dobbo-config模块的相关配置。    /** * Container. (SPI, Singleton, ThreadSafe) * * @author william.liangf */ @SPI("spring") public interface Container { /** * start. */ void sta ...
    dubbo-config-spring模块是dubbo-config的Extension。     Dubbo的扩展点加载从JDK标准的SPI(Service Provider Interface)扩展点发现机制加强而来。    Dubbo改进了JDK标准的SPI的以下问题:     JDK标准的SPI会一次性实例化扩展点所有实现,如 ...
   dubbo模块说明:    dubbo-common 公共逻辑模块,包括Util类和通用模型。    dubbo-remoting 远程通讯模块,相当于Dubbo协议的实现,如果RPC用RMI协议则不需要使用此包。    dubbo-rpc 远程调用模块,抽象各种协议,以及动态代理,只包含一对一的调用,不关心集群的管理。    dubbo-cluster 集群模块,将多个服务提供方伪装为一个提供方,包括:负载均衡, 容错,路由等,集群的地址列表可以是静态配置的,也可以是由注册中心下发。    dubbo-registry 注册中心模块,基于注册中心下发地址的集群方式,以及对各种注册中心的 ...
   目前公司项目采用dubbo服务化升级之后,原先大而全的几个主要应用,拆散重构成多个分布式服务。这个公司业务架构和系统架构实现一次升级,并发和业务开发效率得到提升。但是事情是两面的,引入dubbo服务化之后,导致业务链路过长,日志分散。不能在使用原来的日志处理方式了。    分布式情况下,每个日志分散到各自服务所在机器,日志的收集和分析使用原来古老的模式,肯定是过时了,集群和服务规模小还好,数量一大,我想不管是运维人员还是开发人员都会头疼。    目前处理这个需求最为火热的中间套件,自然首选是ELK,ELK是java技术栈的。也符合目前公司需求。ELK的安装就不讲述了,感兴趣的可以查看官网或 ...
接口 /** * Project Name:chenxun-framework-start * File Name:ThreadPool.java * Package Name:com.chenxun.framework.test * Date:2016年9月2日下午1:51:44 * Copyright (c) 2016, www midaigroup com Technology Co., Ltd. All Rights Reserved. * */ package com.chenxun.framework.test; /** * ClassNam ...
  今天群里小伙伴有个需求,希望通过role来控制pojo字段校验。采用方式为spirng securtity+ spring validate 实现   spring4.0+ 默认支持jsr303。spring validate 也支持自定义valdiate注解。因此采用自定义validate注解实现 代码地址:https://github.com/ChenXun1989/role-validate 自定义validate注解 /** * Project Name:chenxun-cros * File Name:RoleConstraint.java * Packa ...
  solr中文分词。    solr5.0 自带一个中文分词包,lucene-analyzers-smartcn-5.0.0.jar。 在安装目录下搜寻找到,并copy到solr提供的web服务目录的lib目录下。   修改collection配置里面的schema.xml。新增字段类型。 <fieldType name="text_cn" class="solr.TextField" positionIncrementGap="100"> <analyzer type="index& ...
   群里小伙伴需要一个solrcloud的解决案例。正好好久没碰过solr了。决定写个demo,顺便重新熟悉下solr。   solr版本:5.0   solr链接:http://archive.apache.org/dist/lucene/solr/5.0.0/   jdk版本:1.70+   windows环境安装:   cd D:\app\solr-5.0.0\bin solr.cmd -c -z localhost:2181 -p 8983 cd D:\app\solr-5.0.0-01\bin solr.cmd -c -z localhost:2181 -p ...
最近前端框架修改,小伙伴希望能像以前写jsp一样使用 对象.属性作为表单元素的name值 <form id="test-form"> <input name="a.b.c" value="abc"> <input name="a.b.d" value="abd"> <input name="x" value="x"> <input name="a. ...
   今天开始从零学习spring boot,顺便写个博客,记录过程。    工欲利其事,必先善其器。spring boot相关地址如下    http://projects.spring.io/spring-boot/ spring boot官网    https://github.com/spring-projects/spring-boot/tree/master/spring-boot-samples  githup的demo地址    http://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle ...
为了提高前端小伙伴的开发效率,造了个基于json对象根据表单元素的name属性自动赋值的轮子 json2form:function(obj){ var nodeParent = null; var value = undefined; var $el = null; var nodeName = ""; for(var i in obj){ value= obj[i] ; if(value === undefined || value===null){ ...
  最近一个接口项目需要支持跨域访问,基于cross实现。于是去spring官网上找了下,发现spring版本4.2+开始支持通过@CrossOrigin注解实现跨域支持。于是把spring版本升级到4.2.6,下面记录踩过的坑。 controller只需要在原先方法上面添加@CrossOrigin注解即可   @Controller @RequestMapping("demo") public class DemoController { @CrossOrigin @RequestMapping("test") pub ...
Global site tag (gtag.js) - Google Analytics