dubbo学习 三 dubbox概述

当当网根据自身的需求,对dubbo进行了扩展就叫成了dubbox。具体的使用方法可以参照官网各种例子:http://dangdangdotcom.github.io/dubbox/

支持rest风格远程调用

之前了解过restful服务具体是什么,resteasy也了解过,所以看到就可以理解。
基于非常成熟的之前看过的rest实现jboss-resteasy框架,他把这个框架集成到了dubbo里面实现了rest风格的远程调用,这样就大大简化了服务的开发和更多类型的消费者系统。也使dubbo可以对当今特别流行的微服务架构提供支持。但是由于restful服务的消费端可能多种多样,如果消费端不是用dubbo的话,那么关于容错和负载均衡就得另想办法了,因为dubbo自己的容错和负载是在消费端调用的时候实现的。需要考虑其他手段对多个服务端做负载了,nginx,f5什么的。

 

支持基于Kryo和FST的Java高效序列化实现

关于序列化的一点东西,之前了解过,所以这里就可以看明白了。
下面的一些官网的摘抄
在dubbo RPC中,同时支持多种序列化方式,例如:
dubbo序列化:阿里尚未开发成熟的高效java序列化实现,阿里不建议在生产环境使用它
hessian2序列化:hessian是一种跨语言的高效二进制序列化方式。但这里实际不是原生的hessian2序列化,而是阿里修改过的hessian lite,它是dubbo RPC默认启用的序列化方式
json序列化:目前有两种实现,一种是采用的阿里的fastjson库,另一种是采用dubbo中自己实现的简单json库,但其实现都不是特别成熟,而且json这种文本序列化性能一般不如上面两种二进制序列化。
java序列化:主要是采用JDK自带的Java序列化实现,性能很不理想。
在通常情况下,这四种主要序列化方式的性能从上到下依次递减。对于dubbo RPC这种追求高性能的远程调用方式来说,实际上只有1、2两种高效序列化方式比较般配,而第1个dubbo序列化由于还不成熟,所以实际只剩下2可用,所以dubbo RPC默认采用hessian2序列化。
但hessian是一个比较老的序列化实现了,而且它是跨语言的,所以不是单独针对java进行优化的。而dubbo RPC实际上完全是一种Java to Java的远程调用,其实没有必要采用跨语言的序列化方式(当然肯定也不排斥跨语言的序列化)。
最近几年,各种新的高效序列化方式层出不穷,不断刷新序列化性能的上限,最典型的包括:
专门针对Java语言的:Kryo,FST等等
跨语言的:Protostuff,ProtoBuf,Thrift,Avro,MsgPack等等
这些序列化方式的性能多数都显著优于hessian2(甚至包括尚未成熟的dubbo序列化)。
有鉴于此,我们为dubbo引入Kryo和FST这两种高效Java序列化实现,来逐步取代hessian2。
其中,Kryo是一种非常成熟的序列化实现,已经在Twitter、Groupon、Yahoo以及多个著名开源项目(如Hive、Storm)中广泛的使用。而FST是一种较新的序列化实现,目前还缺乏足够多的成熟使用案例,但我认为它还是非常有前途的。
在面向生产环境的应用中,我建议目前更优先选择Kryo。

使用方法

 

 

 

还有一些其他扩展和优化

支持基于Jackson的JSON序列化:基于业界应用最广泛的Jackson序列化库,为Dubbo默认的RPC协议添加新的JSON序列化实现。
支持基于嵌入式Tomcat的HTTP remoting体系:基于嵌入式tomcat实现dubbo的HTTP remoting体系(即dubbo-remoting-http),用以逐步取代Dubbo中旧版本的嵌入式Jetty,可以显著的提高REST等的远程调用性能,并将Servlet API的支持从2.5升级到3.1。(注:除了REST,dubbo中的WebServices、Hessian、HTTP Invoker等协议都基于这个HTTP remoting体系)。
升级Spring:将dubbo中Spring由2.x升级到目前最常用的3.x版本,减少版本冲突带来的麻烦。
升级ZooKeeper客户端:将dubbo中的zookeeper客户端升级到最新的版本,以修正老版本中包含的bug。
支持完全基于Java代码的Dubbo配置:基于Spring的Java Config,实现完全无XML的纯Java代码方式来配置dubbo
调整Demo应用:暂时将dubbo的demo应用调整并改写以主要演示REST功能、Dubbo协议的新序列化方式、基于Java代码的Spring配置等等。
修正了dubbo的bug 包括配置、序列化、管理界面等等的bug。

转载于:https://www.cnblogs.com/liouwei4083/p/6127763.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/469796.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

非大学生学计算机,浅谈非计算机专业大学生的计算机教学

第 卷 年 月黑 龙 江 科 学浅谈非计 算机 专业 大学生的计算机教 学曾 宇(辽源职业技术学院医药分院 ,吉林 辽源 )摘 要 :为了提高大学生计算机应用能力 ,适应社会及用人单位的需求 ,对 非计算机专业大学生的计 算机教学提 出了更…

linux platform 驱动模型分析

一. 概述platform设备和驱动与linux设备模型密切相关。platform在linux设备模型中,其实就是一种虚拟总线没有对应的硬件结构。它的主要作用就是管理系统的外设资源,比如io内存,中断信号线。现在大多数处理器芯片都是soc,如s3c2440&#xff0c…

使用Pytorch完成多分类问题

多分类问题在最后的输出层采用的Softmax Layer,其具有两个特点:1.每个输出的值都是在(0,1);2.所有值加起来和为1. 假设是最后线性层的输出,则对应的Softmax function为: 输出经过sigmoid运算即可是西安输出的分类概率…

PyTorch的nn.Linear()详解

1. nn.Linear() nn.Linear():用于设置网络中的全连接层,需要注意的是全连接层的输入与输出都是二维张量 一般形状为[batch_size, size],不同于卷积层要求输入输出是四维张量。其用法与形参说明如下: in_features指的是输入的二维…

罗彻斯特大学计算机科学系专业排名,罗切斯特大学计算机科学专业

罗切斯特大学(University of Rochester,U of R)建立于1850年,是一所美国著名的私立研究型大学,“新常春藤”联盟之一,北美大学协会(AAU)成员、世界大学联盟成员。360老师介绍,学校的7位学者是美国国家科学院院士&#…

系统权限管理设计 (转)

权限设计(初稿) 1. 前言: 权限管理往往是一个极其复杂的问题,但也可简单表述为这样的逻辑表达式:判断“Who对What(Which)进行How的操作”的逻辑表达式是否为真。针对不同的应用,需要根据项目的实…

卷积神经网络(基础篇)

说明 0、前一部分叫做Feature Extraction,后一部分叫做classification 1、每一个卷积核它的通道数量要求和输入通道是一样的。这种卷积核的总数有多少个和你输出通道的数量是一样的。 2、卷积(convolution)后,C(Channels)变,W(width)和H(Heig…

mini2440驱动分析之LCD

mini2440集成了lcd控制器的接口,板子上接的lcd硬件是统宝240*320,TFT型lcd。lcd驱动对应的文件为s3c2410fb.c。要读懂这个驱动必须了解linux platform子系统的知识。因为这个驱动是以platform驱动的形式注册到内核。而且还需要frambuffer驱动的知识,因为这个驱动还是frambuf…

数组长度改变方法

package com.lovo.array;public class SuperIntArray {//属性public int[] array;private int index;//代表两层含义:1、下一个元素所在的下标;2、已经放了多少个元素。public SuperIntArray(){this.array new int[20];}//行为//放入元素public void ad…

Inception(Pytorch实现)

论文在此: Going deeper with convolutions 论文下载: https://arxiv.org/pdf/1409.4842.pdf 网络结构图: import torch import torch.nn as nn import torch.nn.functional as Fclass Inception3(nn.Module):def __init__(self, num_classes1000, aux_logitsTrue, transform…

html导出pdf实例,jsPDF导出pdf示例

jsPDF貌似不支持中文复制代码 代码如下:Downloadifybody {background: #fff; width: 500px; margin: 20px auto;}input, textarea, p { font-family: 宋体, 黑体; font-size: 12pt;}input, textarea { border: solid 1px #aaa; padding: 4px; width: 98%;}window.loadfunction(…

SecureCRT 用来当串口工具的设置

今天从淘宝网上买的USB转串口线终于到了,从网上下载了驱动,关于USB转串口驱动在我上传的资源里面有,关于SecureCRT这个串口调试工具我也上传了,是个绿色免安装版本。 刚开始的时候一步一步的设置串口,连接串口也可以连…

Brainstorm-the walkthrough example: Image Classification

(1) 运行create data,其中包括下载cifar10,并转换为hdf5格式(详见百度百科:http://baike.baidu.com/view/771949.htm#4_2): cifar10的数据简介见:http://www.cs.toronto.edu/~kriz/cifar.html cd data pyth…

卷积神经网络(高级篇) Inception Moudel

Inception Moudel 1、卷积核超参数选择困难,自动找到卷积的最佳组合。 2、1x1卷积核,不同通道的信息融合。使用1x1卷积核虽然参数量增加了,但是能够显著的降低计算量(operations) 3、Inception Moudel由4个分支组成,要分清哪些…

计算机谈音乐薛之谦,明星浮世绘之薛之谦:分析了50多首音乐作品,为其总结了五个特点...

原标题:明星浮世绘之薛之谦:分析了50多首音乐作品,为其总结了五个特点薛之谦,才华横溢思维敏捷,性格搞怪却又忧郁。我曾经用四个字来形容他,沙雕其外,金玉其中。记得老薛曾经发布了一个动态&…

linux内核下载 编译

linux内核下载网址 今天去看了一场电影“疯狂的原始人”----回来的车上看到一个老奶奶传教士,我想对自己多,加油,加油学习,深思深思 我们现在用的安霸系统,每搞一次我都会进行一次备份,一个系统加上GUI一起都有差不多一G多,而今天下载了最新的linux内核版本,才不80M左…

黑客与画家读后感

财富的定义,金钱只是媒介,财富是人们需要的东西。你如果不是富二代,只是说明你没钱,但你还是通过创造来获得财富。贫富差距不一定就是坏事。如何获得财富,你的工作要满足两个特征:可测量性,可放大性。比如一…

Deep learning

论文:doi:10.1038/nature14539 论文意义和主要内容 三巨头从机器学习谈起,指出传统机器学习的不足,总览深度学习理论、模型,给出了深度学习的发展历史,以及DL中最重要的算法和理论。 概念: 原理&#xff…

清华大学计算机学院主页,计算机图形学基础课程主页 | 清华大学计算机系

1. 2002级本科生黄其兴同学在完成图形学课作业的过程中就B样条的升阶和顶点插入算法进行了深入的研究,并在胡事民教授和Martin教授的共同指导下在国际著名刊物Computer Aided Geometric Design (CAGD)上发表文章.Fast degree elevation and knot insertion for B-s…

mkimage command not found

UIMAGE arch/arm/boot/uImage "mkimage" command not found - U-Boot images will not be built Image arch/arm/boot/uImage is ready cp: 无法获取"arch/arm/boot/uImage" 的文件状态(stat): 没有那个文件或目录 使用make uImage编译生成的内核能由ub…