dubbox是当当网的技术团队对dubbo框架的扩展,针对dubbo的一些问题进行扩展处理:
主要扩展的功能是支持REST风格远程调用(HTTP + JSON/XML)和支持基于Kryo和FST的Java高效序列化实现
dubbx虽然是基于jboss的resteasy实现restfull,但是对resteasy原生的配置却不支持(可能是考虑到dubbo本事的设计模式及实现难度,但是和大部分framework的设计风格背道而驰),ExceptionMapper , Filter 和 Interceptor 需要配置在 <dubbo:protocol extension="x,x"/>,参考
一.Filter
Filter主要用于访问和设置HTTP请求和响应的参数、URI等等。例如,设置HTTP响应的cache header
1.ContainerRequestFilter 服务器端请求处理之前,一般用于取请求参数做一些处理,比如记录access log,流量控制,权限校验 等。
常用的几个点:
使用 @Context 获取 HttpServletRequest 等servlet内置对象。
和标准的web filter一样,Spring @Autowired 无法使用,必须通过 WebApplicationContext 获取Spring管理的bean。
数据传递使用 SecurityContext (本人能力有限,没找到更好的方式)。
直接返回结果 requestContext.abortWith(response);特别注意,调用此方法后,如果继续有其他code,下边的code一样会执行的。(java语言本身的限制)。
DUBBO的介绍部分我这里就不介绍了,大家可参考官方文档。DUBBO的注册中心安装
DUBBO的注册中心支持好几种,公司用到zookeeper注册中心,所以我这边只说明zookeeper注册中心如何安装。
安装zookeeper注册中心首先得下载zookeeper。大家可到zookeeper的官网http://zookeeper.apache.org/releases.html上去下载。
我下载了zookeeper-3.4.5.tar.gz版本的包。接下来把zookeeper-3.4.5.tar.gz解压到文件夹D:\zookeeper-3.4.5\中,
然后将zoo_sample.cfg改名为zoo.cfg。然后将配置文件zoo.cfg改成如下:
[html] view plain copy
# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
dataDir=D:\\zookeeper-3.4.5\\data
dataLogDir=D:\\zookeeper-3.4.5\\log
# the port at which the clients will connect
clientPort=2181
然后就可以启动了。
DUBBO的管理平台DUBBO-ADMIN的部署
dubbo-admin.war可在网上百度去下载,但是我下载了好几个war包,发布上去服务启动都报错,这个时候大概是我们系统的JDK和编译
dubbo-admin.war的JDK版本不同导致的了。所以我之后直接下载了dubbo-master的源代码,然后自己编译了一个war包,这样就不会存
在启动报错的问题了。