[Dubbox基础]-- 文档

article/2025/11/1 16:08:35

一、网址

官方:https://github.com/dangdangdotcom/dubbox

参考:https://www.douban.com/note/488997143/

 

二、说明

1、问题:https://github.com/dangdangdotcom/dubbox/issues

2、主要:

 

Dubbox now means Dubbo eXtensions. If you know java, javax and dubbo, you know what dubbox is :)

Dubbox adds features like RESTful remoting, Kyro/FST serialization, etc to the popular dubbo service framework. It's been used by several projects of dangdang.com, which is one of the major e-commerce companies in China.

主要贡献者

  • 沈理 当当网 shenli@dangdang.com
  • 王宇轩 当当网 wangyuxuan@dangdang.com
  • 马金凯 韩都衣舍 majinkai@handu.com
  • Dylan 独立开发者 dinguangx@163.com
  • Kangfoo 独立开发者

有技术问题请移步此处讨论 https://github.com/dangdangdotcom/dubbox/issues

Dubbox当前的主要功能

  • 支持REST风格远程调用(HTTP + JSON/XML):基于非常成熟的JBoss RestEasy框架,在dubbo中实现了REST风格(HTTP + JSON/XML)的远程调用,以显著简化企业内部的跨语言交互,同时显著简化企业对外的Open API、无线API甚至AJAX服务端等等的开发。事实上,这个REST调用也使得Dubbo可以对当今特别流行的“微服务”架构提供基础性支持。 另外,REST调用也达到了比较高的性能,在基准测试下,HTTP + JSON与Dubbo 2.x默认的RPC协议(即TCP + Hessian2二进制序列化)之间只有1.5倍左右的差距,详见文档中的基准测试报告。

  • 支持基于Kryo和FST的Java高效序列化实现:基于当今比较知名的Kryo和FST高性能序列化库,为Dubbo默认的RPC协议添加新的序列化实现,并优化调整了其序列化体系,比较显著的提高了Dubbo RPC的性能,详见文档中的基准测试报告。

  • 支持基于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。

注:dubbox和dubbo 2.x是兼容的,没有改变dubbo的任何已有的功能和配置方式(除了升级了spring之类的版本)

文档资料

在Dubbo中开发REST风格的远程调用(RESTful Remoting)

在Dubbo中使用高效的Java序列化(Kryo和FST)

使用JavaConfig方式配置dubbox

Dubbo Jackson序列化使用说明

Demo应用简单运行指南

Dubbox@InfoQ

Dubbox Wiki (由社区志愿者自由编辑的)

版本

详见:https://github.com/dangdangdotcom/dubbox/releases

  • dubbox-2.8.0:主要支持REST风格远程调用、支持Kryo和FST序列化、升级了Spring和Zookeeper客户端、调整了demo应用等等
  • dubbox-2.8.1:主要支持基于嵌入式tomcat的http-remoting,优化了REST客户端性能,在REST中支持限制服务端接纳的最大HTTP连接数等等
  • dubbox-2.8.2:
    • 支持REST中的HTTP logging,包括HTTP header的字段和HTTP body中的消息体,方便调试、日志纪录等等
    • 提供辅助类便于REST的中文处理
    • 改变使用@Reference annotation配置时的异常处理方式,即当用annotation配置时,过去dubbo在启动期间不抛出依赖服务找不到的异常,而是在具体调用时抛出NPE,这与用XML配置时的行为不一致。
    • 较大的充实了Dubbo REST的文档
  • dubbox-2.8.3:
    • 在REST中支持dubbo统一的方式用bean validation annotation作参数校验(沈理)
    • 在RpcContext上支持获取底层协议的Request/Response(沈理)
    • 支持采用Spring的Java Config方式配置dubbo(马金凯)
    • 在Dubbo协议中支持基于Jackson的json序列化(Dylan)
    • 在Spring AOP代理过的对象上支持dubbo annotation配置(Dylan)
    • 修正Dubbo管理界面中没有consumer时出现空指针异常(马金凯)
    • 修正@Reference annotation中protocol设置不起作用的bug(沈理)
    • 修正@Reference annotation放在setter方法上即会出错的bug(Dylan)

依赖

从dubbox-2.8.4开始,所有依赖库的使用方式将和dubbo原来的一样:即如果要使用REST、Kyro、FST、Jackson等功能,需要用户自行手工添加相关的依赖。例如:

REST风格远程调用

<dependency><groupId>org.jboss.resteasy</groupId><artifactId>resteasy-jaxrs</artifactId><version>3.0.7.Final</version>
</dependency>
<dependency><groupId>org.jboss.resteasy</groupId><artifactId>resteasy-client</artifactId><version>3.0.7.Final</version>
</dependency>
<dependency><groupId>javax.validation</groupId><artifactId>validation-api</artifactId><version>1.0.0.GA</version>
</dependency><!-- 如果要使用json序列化 -->
<dependency><groupId>org.jboss.resteasy</groupId><artifactId>resteasy-jackson-provider</artifactId><version>3.0.7.Final</version>
</dependency><!-- 如果要使用xml序列化 -->
<dependency><groupId>org.jboss.resteasy</groupId><artifactId>resteasy-jaxb-provider</artifactId><version>3.0.7.Final</version>
</dependency><!-- 如果要使用netty server -->
<dependency><groupId>org.jboss.resteasy</groupId><artifactId>resteasy-netty</artifactId><version>3.0.7.Final</version>
</dependency><!-- 如果要使用Sun HTTP server -->
<dependency><groupId>org.jboss.resteasy</groupId><artifactId>resteasy-jdk-http</artifactId><version>3.0.7.Final</version>
</dependency><!-- 如果要使用tomcat server -->
<dependency><groupId>org.apache.tomcat.embed</groupId><artifactId>tomcat-embed-core</artifactId><version>8.0.11</version>
</dependency>
<dependency><groupId>org.apache.tomcat.embed</groupId><artifactId>tomcat-embed-logging-juli</artifactId><version>8.0.11</version>
</dependency>

Kyro序列化

<dependency><groupId>com.esotericsoftware.kryo</groupId><artifactId>kryo</artifactId><version>2.24.0</version>
</dependency>
<dependency><groupId>de.javakaffee</groupId><artifactId>kryo-serializers</artifactId><version>0.26</version>
</dependency>

FST序列化

<dependency><groupId>de.ruedigermoeller</groupId><artifactId>fst</artifactId><version>1.55</version>
</dependency>

Jackson序列化

<dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-core</artifactId><version>2.3.3</version>
</dependency>
<dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.3.3</version>
</dependency>

FAQ(暂存)

Dubbox需要什么版本的JDK?

目前最好在JDK 1.7以上运行

Dubbo REST的服务能和Dubbo注册中心、监控中心集成吗?

可以的,而且是自动集成的,也就是你在dubbo中开发的所有REST服务都会自动注册到服务册中心和监控中心,可以通过它们做管理。

但是,只有当REST的消费端也是基于dubbo的时候,注册中心中的许多服务治理操作才能完全起作用。而如果消费端是非dubbo的,自然不受注册中心管理,所以其中很多操作是不会对消费端起作用的。

Dubbo REST中如何实现负载均衡和容错(failover)?

如果dubbo REST的消费端也是dubbo的,则Dubbo REST和其他dubbo远程调用协议基本完全一样,由dubbo框架透明的在消费端做load balance、failover等等。

如果dubbo REST的消费端是非dubbo的,甚至是非java的,则最好配置服务提供端的软负载均衡机制,目前可考虑用LVS、HAProxy、 Nginx等等对HTTP请求做负载均衡。

JAX-RS中重载的方法能够映射到同一URL地址吗?

http://stackoverflow.com/questions/17196766/can-resteasy-choose-method-based-on-query-params

JAX-RS中作POST的方法能够接收多个参数吗?

http://stackoverflow.com/questions/5553218/jax-rs-post-multiple-objects

 

三、举例

需要2核4G的机器,内存稍大才可以编译成功

git clone https://github.com/alibaba/dubbo.git
mvn clean install -Dmaven.test.skip
export MAVEN_OPTS="-Xms512m -Xmx1024m"

1、启动zk
cd /opt/zk/conf
cp zoo_sample.cfg zoo.cfg
cd ../bin
./zkServer.sh start

2、启动admin
cd ~/dubbo/dubbo-admin
target里面的war包丢到tomcat的webapps目录下面去
然后bin/statup.sh
启动之后8080端口即可以向外服务
http://xxxx:8080/dubbo-admin/
会提示你输入用户名和密码,root,root......


3、启动monitor
cd ~/dubbo/dubbo-simple/dubbo-monitor-simple/target
./start.sh
vi dubbo.properties
   - edit: dubbo.registry.adddress=dubbo://127.0.0.1:9090
cd ../bin
./restart.sh

=============================================================
dubbox

1、项目地址
https://github.com/dangdangdotcom/dubbox.git

-------------------------------------------

2、编译
git clone https://github.com/dangdangdotcom/dubbox.git

cd dubbox/
export MAVEN_OPTS="-Xms512m -Xmx1024m"
mvn clean install -Dmaven.test.skip


-------------------------------------------

3、安装java环境

安装JAVA----CENTOS 6.6,64位系统,JDK 7

包是使用scp上传到目标机器的

tar zxvf jdk.tar.gz
mv jdk/ /opt/

sudo update-alternatives --install /usr/bin/java java /opt/jdk/bin/java 300
sudo update-alternatives --install /usr/bin/javac javac /opt/jdk/bin/javac 300
sudo update-alternatives --install /usr/bin/jar jar /opt/jdk/bin/jar 300
sudo update-alternatives --config java

vim /etc/profile
export JAVA_HOME=/opt/jdk
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin

验证
java -version

java version "1.7.0_60"
Java(TM) SE Runtime Environment (build 1.7.0_60-b19)
Java HotSpot(TM) 64-Bit Server VM (build 24.60-b09, mixed mode)

-------------------------------------------

4、安装zookeeper

【参考资料1:http://www.iyunv.com/thread-18609-1-1.html
【参考资料2:http://my.oschina.net/u/1866130/blog/287363

http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.6/
zk有依赖于jdk

wget http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz
tar zxvf zookeeper-3.4.6.tar.gz
mv zookeeper-3.4.6 /opt/zk
mkdir tools
mv jdk.tar.gz zookeeper-3.4.6.tar.gz tools/

如果想把一个文件1的内容清空, 文件大小变成0, 又不删除这个文件,可以用:
cat /dev/null > 文件1

单机启用:
cd /opt/zk/conf
cp zoo_sample.cfg zoo.cfg
cd ../bin
./zkServer.sh start

配置集群模式:三台机器上分别运行(一定要确保ping三个ip之间是正确的,FQDN的问题)

echo '192.168.60.10 zk1' >>/etc/hosts
echo '192.168.60.11 zk2' >>/etc/hosts
echo '192.168.60.12 zk3' >>/etc/hosts

cp /opt/zk/conf/zoo_sample.cfg /opt/zk/conf/zoo.cfg
echo 'server.1=zk1:2888:3888' >> /opt/zk/conf/zoo.cfg
echo 'server.2=zk2:2888:3888' >> /opt/zk/conf/zoo.cfg
echo 'server.3=zk3:2888:3888' >> /opt/zk/conf/zoo.cfg

mkdir /opt/zk/storage
sed -i "s/\/tmp\/zookeeper/\/opt\/zk\/storage/g" /opt/zk/conf/zoo.cfg

三台机器上分别执行:
echo "1" > /opt/zk/storage/myid
echo "2" > /opt/zk/storage/myid
echo "3" > /opt/zk/storage/myid

三台机器上分别运行:
/opt/zk/bin/zkServer.sh start

然后检查各个主机的状态是:
/opt/zk/bin/zkServer.sh status

=======================================================================

5、安装maven
wget http://mirror.bit.edu.cn/apache/maven/maven-3/3.2.5/binaries/apache-maven-3.2.5-bin.tar.gz

tar zxvf apache-maven-3.2.5-bin.tar.gz
mv apache-maven-3.2.5 /opt/maven

vim /etc/profile
export M2_HOME=/opt/maven
export M2=$M2_HOME/bin
export PATH=$M2:$PATH


=======================================================================

6、运行dubbox

6.1、启动zk
cd /opt/zk/conf
cp zoo_sample.cfg zoo.cfg
cd ../bin
./zkServer.sh start

6.2、启动admin
cd ~/dubbo/dubbo-admin
target里面的war包丢到tomcat的webapps目录下面去
然后bin/statup.sh
启动之后8080端口即可以向外服务
http://xxxx:8080/dubbo-admin/
会提示你输入用户名和密码,root,root......


6.3、启动monitor
cd ~/dubbo/dubbo-simple/dubbo-monitor-simple/target
./start.sh
vi dubbo.properties
   - edit: dubbo.registry.adddress=dubbo://127.0.0.1:9090
cd ../bin
./restart.sh


-------------------------------------
-------------------------------------

6.4 运行demo
首先保证zk启动成功了,得注意/tmp下有没有脏数据
然后进入dubbo-demo文件夹

-------------------------------------
6.4.1 运行消费方

#pwd 消费者方
/root/dubbox/dubbo-demo/dubbo-demo-consumer/target

#解压消费方:
tar zxvf dubbo-demo-consumer-2.8.4-SNAPSHOT-assembly.tar.gz

[root@200248 target]# cd dubbo-demo-consumer-2.8.4-SNAPSHOT
[root@200248 dubbo-demo-consumer-2.8.4-SNAPSHOT]# ls
bin conf lib
[root@200248 dubbo-demo-consumer-2.8.4-SNAPSHOT]# ll
总用量 12
drwxrwxrwx. 2 root root 4096 3月 17 13:45 bin
drwxrwxrwx. 2 root root 4096 3月 17 13:26 conf
drwxr-xr-x. 2 root root 4096 3月 17 13:52 lib

#修改配置使用zk注册
/root/dubbox/dubbo-demo/dubbo-demo-consumer/target/dubbo-demo-consumer-2.8.4-SNAPSHOT/conf

vim dubbo.properties

#################
dubbo.container=log4j,spring
dubbo.application.name=demo-consumer
dubbo.application.owner=
dubbo.registry.address=multicast://224.5.6.7:1234
#dubbo.registry.address=zookeeper://127.0.0.1:2181
#dubbo.registry.address=redis://127.0.0.1:6379
#dubbo.registry.address=dubbo://127.0.0.1:9090
dubbo.monitor.protocol=registry
dubbo.log4j.file=logs/dubbo-demo-consumer.log
dubbo.log4j.level=WARN
#################
注销掉2181那行

#启动消费方
/root/dubbox/dubbo-demo/dubbo-demo-consumer/target/dubbo-demo-consumer-2.8.4-SNAPSHOT/bin
./start.sh
就启动了消费方



-------------------------------------

6.4.2 运行服务方

【安装tomcat】
wget http://mirrors.cnnic.cn/apache/tomcat/tomcat-7/v7.0.59/bin/apache-tomcat-7.0.59.tar.gz
tar zxvf apache-tomcat-7.0.59.tar.gz

【拷贝war包】
cp dubbo-demo-provider-2.8.4-SNAPSHOT.war apache-tomcat-7.0.59/webapps/

【启动tomcat】
/root/dubbox/dubbo-demo/dubbo-demo-provider/target/apache-tomcat-7.0.59/bin
./startup.sh

【看logs是否有报错】

-------------------------------------

6.4.3 运行顺序---

反了,应该先服务方后消费方的

-------------------------------------

6.4.4 zk目录结构

ls /dubbo
[com.alibaba.dubbo.demo.user.facade.AnotherUserRestService, com.alibaba.dubbo.demo.user.facade.UserRestService, com.alibaba.dubbo.demo.bid.BidService, com.alibaba.dubbo.monitor.MonitorService, com.alibaba.dubbo.demo.user.UserService]

ls /dubbo/com.alibaba.dubbo.demo.user.facade.AnotherUserRestService
[consumers, routers, providers, configurators]

ls /dubbo/com.alibaba.dubbo.demo.user.facade.AnotherUserRestService/consumers
[consumer%3A%2F%2F172.17.42.1%2Fcom.alibaba.dubbo.demo.user.facade.AnotherUserRestService%3Fapplication%3Ddemo-consumer%26category%3Dconsumers%26check%3Dfalse%26dubbo%3D2.8.4-SNAPSHOT%26interface%3Dcom.alibaba.dubbo.demo.user.facade.AnotherUserRestService%26methods%3DgetUser%2CregisterUser%26organization%3Ddubbox%26owner%3Dprogrammer%26pid%3D16139%26revision%3D2.8.4-SNAPSHOT%26side%3Dconsumer%26timestamp%3D1426572244534]


ls /dubbo/com.alibaba.dubbo.demo.user.facade.AnotherUserRestService/routers
[]

ls /dubbo/com.alibaba.dubbo.demo.user.facade.AnotherUserRestService/providers
[rest%3A%2F%2F172.17.42.1%3A8888%2Fservices%2Fcom.alibaba.dubbo.demo.user.facade.AnotherUserRestService%3Faccepts%3D500%26anyhost%3Dtrue%26application%3Ddemo-provider%26connections%3D100%26dubbo%3D2.8.4-SNAPSHOT%26extension%3Dcom.alibaba.dubbo.demo.extension.TraceInterceptor%2C+++++++++++++++++++++com.alibaba.dubbo.demo.extension.TraceFilter%2C+++++++++++++++++++++com.alibaba.dubbo.demo.extension.ClientTraceFilter%2C+++++++++++++++++++++com.alibaba.dubbo.demo.extension.DynamicTraceBinding%2C+++++++++++++++++++++com.alibaba.dubbo.demo.extension.CustomExceptionMapper%2C+++++++++++++++++++++com.alibaba.dubbo.rpc.protocol.rest.support.LoggingFilter%26generic%3Dfalse%26interface%3Dcom.alibaba.dubbo.demo.user.facade.AnotherUserRestService%26methods%3DgetUser%2CregisterUser%26organization%3Ddubbox%26owner%3Dprogrammer%26pid%3D15860%26revision%3D2.8.4-SNAPSHOT%26server%3Dtomcat%26side%3Dprovider%26threads%3D500%26timeout%3D2000%26timestamp%3D1426572079232%26validation%3Dtrue]

ls /dubbo/com.alibaba.dubbo.demo.user.facade.AnotherUserRestService/configurators
[]


-------------------------------------
6.4.5 运行一个简单监控

/root/dubbox/dubbo-simple/dubbo-monitor-simple/target

#解压
tar zxvf dubbo-monitor-simple-2.8.4-SNAPSHOT-assembly.tar.gz

cd /root/dubbox/dubbo-simple/dubbo-monitor-simple/target/dubbo-monitor-simple-2.8.4-SNAPSHOT

#进入conf目录
dubbo.container=log4j,spring,registry,jetty
dubbo.application.name=simple-monitor
dubbo.application.owner=
#dubbo.registry.address=multicast://224.5.6.7:1234
dubbo.registry.address=zookeeper://127.0.0.1:2181
#dubbo.registry.address=redis://127.0.0.1:6379
#dubbo.registry.address=dubbo://127.0.0.1:9090
dubbo.protocol.port=7070
dubbo.jetty.port=8080
dubbo.jetty.directory=${user.home}/monitor
dubbo.charts.directory=${dubbo.jetty.directory}/charts
dubbo.statistics.directory=${user.home}/monitor/statistics
dubbo.log4j.file=logs/dubbo-monitor-simple.log
dubbo.log4j.level=WARN

¥¥¥¥¥¥¥¥¥¥¥¥¥

打开zk开关,最后监听的端口是?8080


cd ~/dubbo/dubbo-simple/dubbo-monitor-simple/target
./start.sh
vi dubbo.properties
   - edit: dubbo.registry.adddress=dubbo://127.0.0.1:9019
cd ../bin
./restart.sh

----------------------------------------------------
之后
zk下/dubbo/目录下会多一个目录
com.alibaba.dubbo.monitor.MonitorService

ls /dubbo/com.alibaba.dubbo.monitor.MonitorService
[consumers, routers, providers, configurators]
[zk: localhost:2181(CONNECTED) 18]
 

 

 


----------------------------------------------------

服务方的协议URL解析:

rest://172.17.42.1:8888/services/
com.alibaba.dubbo.demo.user.facade.AnotherUserRestService?
accepts=500&
anyhost=true&
application=demo-provider&
connections=100&
dubbo=2.8.4-SNAPSHOT&
extension=com.alibaba.dubbo.demo.extension.TraceInterceptor,
com.alibaba.dubbo.demo.extension.TraceFilter,
com.alibaba.dubbo.demo.extension.ClientTraceFilter,
com.alibaba.dubbo.demo.extension.DynamicTraceBinding,
com.alibaba.dubbo.demo.extension.CustomExceptionMapper,
com.alibaba.dubbo.rpc.protocol.rest.support.LoggingFilter&
generic=false&
interface=com.alibaba.dubbo.demo.user.facade.AnotherUserRestService&
methods=getUser,registerUser&
organization=dubbox&
owner=programmer&
pid=15860&
revision=2.8.4-SNAPSHOT&
server=tomcat&
side=provider&
threads=500&
timeout=2000&
timestamp=1426572079232&
validation=true


http://192.168.200.248:8888/com.alibaba.dubbo.demo.user.facade.AnotherUserRestService

http://192.168.200.248:8888/com.alibaba.dubbo.demo.user.facade.AnotherUserRestService/getUser/

=======================================================================

 

 

 

 

 

 

 

REST的优点

 

以下摘自维基百科:

  • 可更高效利用缓存来提高响应速度
  • 通讯本身的无状态性可以让不同的服务器的处理一系列请求中的不同请求,提高服务器的扩展性
  • 浏览器即可作为客户端,简化软件需求
  • 相对于其他叠加在HTTP协议之上的机制,REST的软件依赖性更小
  • 不需要额外的资源发现机制
  • 在软件技术演进中的长期的兼容性更好

这里我还想特别补充REST的显著优点:基于简单的文本格式消息和通用的HTTP协议,使它具备极广的适用性,几乎所有语言和平台都对它提供支持,同时其学习和使用的门槛也较低。

 

 

 

dubbox详细介绍:http://dangdangdotcom.github.io/dubbox/rest.html

 

 

 

 


http://chatgpt.dhexx.cn/article/TpnbpZJS.shtml

相关文章

浅谈Dubbox原理

Dubbox介绍 Dubbox是一个分布式服务框架&#xff0c;前身是阿里旗下的开源项目Dubbo&#xff0c;后来阿里停止维护&#xff0c;当当网在Dubbo的基础上进行优化&#xff0c;并继续维护&#xff0c;为了与原来的Dubbo区分故将其改名为Dubbox&#xff0c;当当网在其原有的基础上实…

Dubbox 和Dubbo 为何选择

1. 前言 随着现在互联网行业的发展&#xff0c;越来越多的框架、中间件、容器等开源技术不断地涌现&#xff0c;更好地来服务于业务&#xff0c;解决实现业务的问题。然而面对众多的技术选择&#xff0c;我们要如何甄别出适合自己团队业务的技术呢&#xff1f;对于人来说&#…

springboot整合dubbox

简介 今天咱们来看看怎么利用Spring Boot整合Dubbox来开发去中心化的微服务。 系统环境 本文基于Jdk1.8/Maven 3.3.9/Spring Boot 1.4.2.RELEASE/Dubbo 2.8.5.SNAPSHOT(Dubbox后续开源版本)/ZooKeeper3.4.8 Zookeeper环境搭建 下载并安装启动 下载 wget http://mirrors.h…

Dubbo

协议&#xff1a; Dubbo是一种分布式服务框架也是一种协议&#xff0c;dubbo框架默认使用dubbo协议。dubbo协议是阿里巴巴自己实现的一种应用层协议&#xff0c;传输层还是TCP。所以Dubbo协议与HTTP、FTP&#xff0c;SMTP这些应用层协议是并列的概念。除了默认的Dubbo协议&…

Dubbox简单入门

dubbox是分布式框架&#xff0c;让我们一起来简单搭建一个小demo Dubbox简介 Dubbox 是一个分布式服务框架&#xff0c;其前身是阿里巴巴开源项目Dubbo &#xff0c;被国内电商及互联网项目中使用&#xff0c;后期阿里巴巴停止了该项目的维护&#xff0c;当当网便在Dubbo基础上…

Dubbox简介与入门实战

前言 什么是Dubbox?Dubbox是一个分布式服务框架&#xff0c;其前身是阿里巴巴开源项目Dubbo,被国内电商及互联网项目中使用&#xff0c;后期阿里巴巴停止了Dubbo项目的维护&#xff08;现Dubbo已捐献给Apache基金会&#xff09;&#xff0c;因为阿里巴巴内部的HSF框架比Dubbo…

Dubbox 环境搭建

第一章&#xff1a;Dubbox简介 Dubbox是一个开源的RPC(Remote ProcedureCall Protocol)远程调用框架&#xff0c;是由dangdang对阿里的Dubbo的升级&#xff0c;可以被视为Dubbo的增强版&#xff0c;基本架构没有变动&#xff0c;升级spring2.x到spring3.x,支持restful风格的调用…

Dubbox框架简介

Dubbox框架简介 Dubbox是一个分布式服务框架&#xff0c;其前身是阿里巴巴开源项目Dubbo&#xff0c;被国内电商及互联网项目中使用&#xff0c;后期阿里巴巴停止了该项目的维护&#xff0c;当当网便在Dubbo基础上进行优化&#xff0c;并继续维护&#xff0c;为了与原有的Dubb…

Dubbo的介绍以及Dubbox的区别

Dubbo官网: http://dubbo.io/ Dubbox官网: https://github.com/dangdangdotcom/dubbox Dubbo 是阿里巴巴公司开源的一个基于Java的高性能开源RPC框架&#xff0c;使得应用可通过高性能的 RPC 实现服务的输出和输入功能&#xff0c;可以和 Spring框架无缝集成。后来因为某些原…

Dubbox学习笔记

一、Dubbox简介 1、什么是SOA架构 SOA是Service-Oriented Architecture的首字母简称&#xff0c;它是一种支持面向服务的架构样式。从服务、基于服务开发和服务的结果来看&#xff0c;面向服务是一种思考方式。其实SOA架构更多应用于互联网项目开发。 为什么互联网项目会采用…

Dubbox是什么,如何整合SpringBoot,有什么优势?

目录 一、Dubbox 是什么 二、Dubbox 如何整合SpringBoot 三、Dubbox 有什么优势 一、Dubbox 是什么 Dubbox是一款基于Java语言的分布式服务框架&#xff0c;是阿里巴巴公司开源的一款服务化治理框架&#xff0c;其前身为Dubbo。Dubbox是针对Dubbo进行了改进和升级&#xff…

dubbox简介

1.1 dubbox简介 随着互联网的发展&#xff0c;网站应用的规模不断扩大&#xff0c;常规的垂直应用架构已无法应对&#xff0c;分布式服务架构以及流动计算架构势在必行&#xff0c;亟需一个治理系统确保架构有条不紊的演进。 单一应用架构 当网站流量很小时&#xff0c;只需一…

Dubbo详细介绍与安装使用过程

1 Dubbo介绍 1.1 dubbox简介 随着互联网的发展&#xff0c;网站应用的规模不断扩大&#xff0c;常规的垂直应用架构已无法应对&#xff0c;分布式服务架构以及流动计算架构势在必行&#xff0c;亟需一个治理系统确保架构有条不紊的演进。 单一应用架构 当网站流量很小时&…

Dubbo和Zookeeper入门到实战,看这篇就够了

前沿&#xff1a;在当下流行的分布式架构中Dubbo是非常流行rpc框架&#xff0c;借着这几天有空学习学习&#xff0c;并在后面的项目中进行实战&#xff0c;为后面的分布式项目做铺垫。 Dubbox简介 Dubbox 是一个分布式rpc框架&#xff0c;是阿里巴巴的开源产品&#xff0c;后阿…

Dubbox的简单介绍

简介&#xff1a;Dubbox是一个分布式服务框架&#xff0c;其前身是阿里巴巴开源项目Dubbo,后期阿里巴巴停止维护后&#xff0c;当当网在其基础上进行了优化&#xff0c;并继续维护&#xff0c;改名Dubbox。 一、 Dubbox的基本概念 Dubbox是一种分布式服务架构&#xff0c;它除…

dubbox概论

1.dubbox 是个啥&#xff1f; 他是一个分布式服务架构风格&#xff0c;其前身是阿里巴巴开源项目Dubbo&#xff0c;被国内电商及互联网项目中使用&#xff0c;后期阿里巴巴停止了该项目的维护&#xff0c;当当网便在dubbo基础上进行优化&#xff0c;并继续维护&#xff0c;为了…

Java直接运行JavaScript代码或js文件

执行JavaScript用到的类有&#xff1a; javax.script.ScriptEngine;javax.script.ScriptEngineFactory;javax.script.ScriptEngineManager;javax.script.ScriptException;需求1&#xff1a;执行一个JavaScript字符串&#xff0c;将结果打印在控制台上。 ScriptEngineManager m …

node环境执行js文件

1、JavaScript代码的执行 目前知道的两种方式有两种&#xff1a; 将代码交给浏览器&#xff08;在浏览器环境运行&#xff09; html文件引入js代码&#xff0c;交给浏览器解析将代码载入node的环境中执行&#xff08;在node环境运行&#xff09; 通过在电脑安装的Node.js环境…

在JavaScript文件中引用另一个JavaScript文件

前言 写了一个全局main.js&#xff0c;其中又需要引用其他第三方js文件&#xff0c;但是不希望在每个页面引用main.js之前再引用一遍第三方js文件&#xff0c;那就把第三方js文件放到main.js中引用。 方法 1. document.write 目录结构 index.html <!DOCTYPE html> …

protobuf文件生成js文件详细流程

1,下载用来生成web js文件的工具 protoc-gen-grpc-web 下地地址&#xff1a;protoc-gen-grpc-web 选择&#xff1a;protoc-gen-grpc-web-1.3.1-windows-x86_64.exe 即可 下载完成后改名为protoc-gen-grpc-web.exe并移动到项目里&#xff0c;和proto文件存放在同一目录下 2,…