提交 f03232ec 编写于 作者: Y YunaiV

同步精尽 Dubbo 源码解析

上级 6cd742f7
......@@ -20,3 +20,75 @@ We are now collecting dubbo user info in order to help us to improve dubbo bette
* [Dubbo user manual](http://dubbo.io/books/dubbo-user-book/)
* [Dubbo developer guide](http://dubbo.io/books/dubbo-dev-book/)
* [Dubbo admin manual](http://dubbo.io/books/dubbo-admin-book/)
## 精尽 Dubbo 源码解析
* [《精尽 Dubbo 源码分析 —— 调试环境搭建》](http://www.iocoder.cn/Dubbo/good-collection?github&1610)
* [《精尽 Dubbo 源码分析 —— 项目结构一览》](http://www.iocoder.cn/Dubbo/good-collection?github&1610)
* [《精尽 Dubbo 源码分析 —— API 配置(一)之应用》](http://www.iocoder.cn/Dubbo/good-collection?github&1610)
* [《精尽 Dubbo 源码分析 —— API 配置(二)之服务提供者》](http://www.iocoder.cn/Dubbo/good-collection?github&1610)
* [《精尽 Dubbo 源码分析 —— API 配置(三)之服务消费者》](http://www.iocoder.cn/Dubbo/good-collection?github&1610)
* [《精尽 Dubbo 源码分析 —— 属性配置》](http://www.iocoder.cn/Dubbo/good-collection?github&1610)
* [《精尽 Dubbo 源码分析 —— XML 配置》](http://www.iocoder.cn/Dubbo/good-collection?github&1610)
* [《精尽 Dubbo 源码分析 —— 核心流程一览》](http://www.iocoder.cn/Dubbo/good-collection?github&1610)
* [《精尽 Dubbo 源码分析 —— 拓展机制 SPI》](http://www.iocoder.cn/Dubbo/good-collection?github&1610)
* [《精尽 Dubbo 源码分析 —— 线程池》](http://www.iocoder.cn/Dubbo/good-collection?github&1610)
* [《精尽 Dubbo 源码分析 —— 服务暴露(一)之本地暴露(Injvm)》](http://www.iocoder.cn/Dubbo/good-collection?github&1610)
* [《精尽 Dubbo 源码分析 —— 服务暴露(二)之远程暴露(Dubbo)》](http://www.iocoder.cn/Dubbo/good-collection?github&1610)
* [《精尽 Dubbo 源码分析 —— 服务引用(一)之本地引用(Injvm)》](http://www.iocoder.cn/Dubbo/good-collection?github&1610)
* [《精尽 Dubbo 源码分析 —— 服务引用(二)之远程引用(Dubbo)》](http://www.iocoder.cn/Dubbo/good-collection?github&1610)
* [《精尽 Dubbo 源码分析 —— Zookeeper 客户端》](http://www.iocoder.cn/Dubbo/good-collection?github&1610)
* [《精尽 Dubbo 源码分析 —— 注册中心(一)之抽象 API》](http://www.iocoder.cn/Dubbo/good-collection?github&1610)
* [《精尽 Dubbo 源码分析 —— 注册中心(二)之 Zookeeper》](http://www.iocoder.cn/Dubbo/good-collection?github&1610)
* [《精尽 Dubbo 源码分析 —— 注册中心(三)之 Redis》](http://www.iocoder.cn/Dubbo/good-collection?github&1610)
* [《精尽 Dubbo 源码分析 —— 动态编译(一)之 Javassist》](http://www.iocoder.cn/Dubbo/good-collection?github&1610)
* [《精尽 Dubbo 源码分析 —— 动态代理(一)之 Javassist》](http://www.iocoder.cn/Dubbo/good-collection?github&1610)
* [《精尽 Dubbo 源码分析 —— 动态代理(二)之 JDK》](http://www.iocoder.cn/Dubbo/good-collection?github&1610)
* [《精尽 Dubbo 源码分析 —— 动态代理(三)之本地存根 Stub》](http://www.iocoder.cn/Dubbo/good-collection?github&1610)
* [《精尽 Dubbo 源码分析 —— 服务调用(一)之本地调用(Injvm)》](http://www.iocoder.cn/Dubbo/good-collection?github&1610)
* [《精尽 Dubbo 源码分析 —— 服务调用(二)之远程调用(Dubbo)【1】通信实现》](http://www.iocoder.cn/Dubbo/good-collection?github&1610)
* [《精尽 Dubbo 源码分析 —— 服务调用(二)之远程调用(Dubbo)【2】同步调用》](http://www.iocoder.cn/Dubbo/good-collection?github&1610)
* [《精尽 Dubbo 源码分析 —— 服务调用(三)之远程调用(Dubbo)【3】异步调用》](http://www.iocoder.cn/Dubbo/good-collection?github&1610)
* [《精尽 Dubbo 源码分析 —— 服务调用(三)之远程调用(HTTP)》](http://www.iocoder.cn/Dubbo/good-collection?github&1610)
* [《精尽 Dubbo 源码分析 —— 服务调用(四)之远程调用(Hessian)》](http://www.iocoder.cn/Dubbo/good-collection?github&1610)
* [《精尽 Dubbo 源码分析 —— 服务调用(五)之远程调用(WebService)》](http://www.iocoder.cn/Dubbo/good-collection?github&1610)
* [《精尽 Dubbo 源码分析 —— 服务调用(六)之远程调用(REST)》](http://www.iocoder.cn/Dubbo/good-collection?github&1610)
* [《精尽 Dubbo 源码分析 —— 服务调用(七)之远程调用(WebService)》](http://www.iocoder.cn/Dubbo/good-collection?github&1610)
* [《精尽 Dubbo 源码分析 —— 服务调用(八)之远程调用(Redis)》](http://www.iocoder.cn/Dubbo/good-collection?github&1610)
* [《精尽 Dubbo 源码分析 —— 服务调用(九)之远程调用(Memcached)》](http://www.iocoder.cn/Dubbo/good-collection?github&1610)
* [《精尽 Dubbo 源码分析 —— 调用特性(一)之回声测试》](http://www.iocoder.cn/Dubbo/good-collection?github&1610)
* [《精尽 Dubbo 源码分析 —— 调用特性(二)之泛化引用》](http://www.iocoder.cn/Dubbo/good-collection?github&1610)
* [《精尽 Dubbo 源码分析 —— 调用特性(二)之泛化实现》](http://www.iocoder.cn/Dubbo/good-collection?github&1610)
* [《精尽 Dubbo 源码分析 —— 过滤器(一)之 ClassLoaderFilter》](http://www.iocoder.cn/Dubbo/good-collection?github&1610)
* [《精尽 Dubbo 源码分析 —— 过滤器(二)之 ContextFilter》](http://www.iocoder.cn/Dubbo/good-collection?github&1610)
* [《精尽 Dubbo 源码分析 —— 过滤器(三)之 AccessLogFilter》](http://www.iocoder.cn/Dubbo/good-collection?github&1610)
* [《精尽 Dubbo 源码分析 —— 过滤器(四)之 ActiveLimitFilter && ExecuteLimitFilter》](http://www.iocoder.cn/Dubbo/good-collection?github&1610)
* [《精尽 Dubbo 源码分析 —— 过滤器(五)之 TimeoutFilter》](http://www.iocoder.cn/Dubbo/good-collection?github&1610)
* [《精尽 Dubbo 源码分析 —— 过滤器(六)之 DeprecatedFilter》](http://www.iocoder.cn/Dubbo/good-collection?github&1610)
* [《精尽 Dubbo 源码分析 —— 过滤器(七)之 ExceptionFilter》](http://www.iocoder.cn/Dubbo/good-collection?github&1610)
* [《精尽 Dubbo 源码分析 —— 过滤器(八)之 TokenFilter》](http://www.iocoder.cn/Dubbo/good-collection?github&1610)
* [《精尽 Dubbo 源码分析 —— 过滤器(九)之 TpsLimitFilter》](http://www.iocoder.cn/Dubbo/good-collection?github&1610)
* [《精尽 Dubbo 源码分析 —— 过滤器(十)之 CacheFilter》](http://www.iocoder.cn/Dubbo/good-collection?github&1610)
* [《精尽 Dubbo 源码分析 —— 过滤器(十一)之 ValidationFilter》](http://www.iocoder.cn/Dubbo/good-collection?github&1610)
* [《精尽 Dubbo 源码分析 —— NIO 服务器(一)之抽象 API》](http://www.iocoder.cn/Dubbo/good-collection?github&1610)
* [《精尽 Dubbo 源码分析 —— NIO 服务器(二)之 Transport 层》](http://www.iocoder.cn/Dubbo/good-collection?github&1610)
* [《精尽 Dubbo 源码分析 —— NIO 服务器(三)之 Telnet 层》](http://www.iocoder.cn/Dubbo/good-collection?github&1610)
* [《精尽 Dubbo 源码分析 —— NIO 服务器(四)之 Exchange 层》](http://www.iocoder.cn/Dubbo/good-collection?github&1610)
* [《精尽 Dubbo 源码分析 —— NIO 服务器(五)之 Buffer 层》](http://www.iocoder.cn/Dubbo/good-collection?github&1610)
* [《精尽 Dubbo 源码分析 —— NIO 服务器(六)之 Netty4 实现》](http://www.iocoder.cn/Dubbo/good-collection?github&1610)
* [《精尽 Dubbo 源码分析 —— NIO 服务器(七)之 Netty3 实现》](http://www.iocoder.cn/Dubbo/good-collection?github&1610)
* [《精尽 Dubbo 源码分析 —— HTTP 服务器》](http://www.iocoder.cn/Dubbo/good-collection?github&1610)
* [《精尽 Dubbo 源码分析 —— 序列化(一)之总体实现》](http://www.iocoder.cn/Dubbo/good-collection?github&1610)
* [《精尽 Dubbo 源码分析 —— 序列化(二)之 Dubbo 实现》](http://www.iocoder.cn/Dubbo/good-collection?github&1610)
* [《精尽 Dubbo 源码分析 —— 序列化(三)之 Kryo 实现》](http://www.iocoder.cn/Dubbo/good-collection?github&1610)
* [《精尽 Dubbo 源码分析 —— 服务容器》](http://www.iocoder.cn/Dubbo/good-collection?github&1610)
* [《精尽 Dubbo 源码解析 —— 集群容错(一)之抽象 API》](http://www.iocoder.cn/Dubbo/good-collection?github&1610)
* [《精尽 Dubbo 源码解析 —— 集群容错(二)之 Cluster 实现》](http://www.iocoder.cn/Dubbo/good-collection?github&1610)
* [《精尽 Dubbo 源码解析 —— 集群容错(三)之 Directory 实现》](http://www.iocoder.cn/Dubbo/good-collection?github&1610)
* [《精尽 Dubbo 源码解析 —— 集群容错(四)之 LoadBalance 实现》](http://www.iocoder.cn/Dubbo/good-collection?github&1610)
* [《精尽 Dubbo 源码解析 —— 集群容错(五)之 Merger 实现》](http://www.iocoder.cn/Dubbo/good-collection?github&1610)
* [《精尽 Dubbo 源码解析 —— 集群容错(六)之 Configurator 实现》](http://www.iocoder.cn/Dubbo/good-collection?github&1610)
* [《精尽 Dubbo 源码解析 —— 集群容错(七)之 Router 实现》](http://www.iocoder.cn/Dubbo/good-collection?github&1610)
* [《精尽 Dubbo 源码解析 —— 集群容错(八)之 Mock 实现》](http://www.iocoder.cn/Dubbo/good-collection?github&1610)
* [《精尽 Dubbo 源码解析 —— 优雅停机》](http://www.iocoder.cn/Dubbo/good-collection?github&1610)
* [《精尽 Dubbo 源码解析 —— 日志适配》](http://www.iocoder.cn/Dubbo/good-collection?github&1610)
\ No newline at end of file
......@@ -16,7 +16,6 @@
*/
package com.alibaba.dubbo.demo.consumer;
import com.alibaba.dubbo.config.ProtocolConfig;
import com.alibaba.dubbo.demo.DemoService;
import org.springframework.context.support.ClassPathXmlApplicationContext;
......@@ -48,7 +47,7 @@ public class Consumer {
// ((EchoService) demoService).$echo("test4u");
demoService.sayHello("world");
ProtocolConfig.destroyAll();
// ProtocolConfig.destroyAll();
Thread.sleep(10000000);
// demoService.say02();
......
package com.alibaba.dubbo.demo.consumer.filter;
import com.alibaba.dubbo.rpc.*;
public class DemoFilter2 implements Filter {
@Override
public Result invoke(Invoker<?> invoker, Invocation invocation) throws RpcException {
Result result = invoker.invoke(invocation);
result.getAttachments().put("hh", "hhhh");
return result;
}
}
demo2=com.alibaba.dubbo.demo.consumer.filter.DemoFilter2
\ No newline at end of file
......@@ -37,7 +37,7 @@ limitations under the License.
<!-- generate proxy for the remote service, then demoService can be used in the same way as the
local regular interface -->
<dubbo:reference id="demoService" group="g1" check="true" interface="com.alibaba.dubbo.demo.DemoService"
client="netty4" timeout="10000" callbacks="1000" registry="zk01">
client="netty4" timeout="10000" callbacks="1000" registry="zk01" filter="demo2">
<!--<dubbo:method name="sayHello" />-->
<!--url="registry://127.0.0.1:2181?registry=zookeeper;127.0.0.1:2181;127.0.0.1:27018"-->
......
......@@ -28,7 +28,7 @@ public class Provider {
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(new String[]{"META-INF/spring/dubbo-demo-provider.xml"});
context.start();
ProtocolConfig.destroyAll();
// ProtocolConfig.destroyAll();
System.in.read(); // press any key to exit
}
......
......@@ -9,7 +9,10 @@ public class DemoFilter implements Filter {
@Override
public Result invoke(Invoker<?> invoker, Invocation invocation) throws RpcException {
return invoker.invoke(invocation);
Result result = invoker.invoke(invocation);
System.out.println(result.getAttachments());
result.getAttachments().put("hh", "hhhh");
return result;
}
public DemoFilter setDemoDAO(DemoDAO demoDAO) {
......
......@@ -43,7 +43,7 @@ public class ThreadPoolStatusChecker implements StatusChecker {
String port = entry.getKey();
ExecutorService executor = (ExecutorService) entry.getValue();
if (executor != null && executor instanceof ThreadPoolExecutor) {
if (executor instanceof ThreadPoolExecutor) {
ThreadPoolExecutor tp = (ThreadPoolExecutor) executor;
boolean ok = tp.getActiveCount() < tp.getMaximumPoolSize() - 1;
Status.Level lvl = Status.Level.OK;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册