论坛首页 Java企业应用论坛

阿里巴巴Dubbo分布式服务框架已开源

浏览 266703 次
该帖已经被评为精华帖
作者 正文
   发表时间:2012-02-28  
web.xml配置:
	<context-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>classpath:/client.xml</param-value>
	</context-param>

	<listener>
		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
	</listener>


启动后,consumer没有注册成功!

但是我的测试用例却可以成功注册,且调用service都没有任何问题。检查了好几遍,jar包也没有发现重复或不同版本的现象。


	protected static String[] config = { "classpath:/client.xml" };

	protected Logger log = Logger.getLogger(getClass());

	public ApplicationContext ctx;

	@Before
	public void setUp() throws Exception {
		ctx = new FileSystemXmlApplicationContext(config);
	}
	
	@Test
	public void test() {
		DemoService ds = (DemoService) ctx.getBean("demoService");

		for (int i = 0; i < Integer.MAX_VALUE; i++) {
			log.info(ds.sayHello(" dubbo very good! "));			
		}
	}



谢谢!
0 请登录后投票
   发表时间:2012-02-28  
dubbo通过把服务器列表引到客户端实现负载均衡器压力的客户端分担,那么通过什么即时机制实现客户端能觉察服务端心跳(可正常使用)呢?
0 请登录后投票
   发表时间:2012-02-28   最后修改:2012-02-28
Letsgo 写道
启动后,consumer没有注册成功!

但是我的测试用例却可以成功注册,且调用service都没有任何问题。检查了好几遍,jar包也没有发现重复或不同版本的现象。


consumer的reference是lazy的,如果引用没有被注入到其它Bean或直接getBean,是不会初始化的。

如果需要饥饿初始化,可以配置:
<dubbo:reference ... init="true" />

或者:
<dubbo:consumer ... init="true" />


0 请登录后投票
   发表时间:2012-02-28   最后修改:2012-02-28
aaa_star 写道
dubbo通过把服务器列表引到客户端实现负载均衡器压力的客户端分担,那么通过什么即时机制实现客户端能觉察服务端心跳(可正常使用)呢?

Dubbo的Remoting层有心跳机制,定时检测网络的最后一次读写时间,如果一直有数据来回表示连接是好的,如果很长时间没有读写,就发一个心跳包过去,如果不能响应,就重建连接。

在负载均衡时,每个提供者的Invoker都有isAvailable()状态,优先选可用的提供者进行调用。
参见:AbstractClusterInvoker.java 的doselect()方法。
0 请登录后投票
   发表时间:2012-02-28  
javatar 写道
Letsgo 写道
启动后,consumer没有注册成功!

但是我的测试用例却可以成功注册,且调用service都没有任何问题。检查了好几遍,jar包也没有发现重复或不同版本的现象。


consumer的reference是lazy的,如果引用没有被注入到其它Bean或直接getBean,是不会初始化的。

如果需要饥饿初始化,可以配置:
<dubbo:reference ... init="true" />

或者:
<dubbo:consumer ... init="true" />




哇,非常感谢,一语点醒我这傻蛋啊,我貌似,好像在文档里看过,就是没想起来。感谢梁飞的即时回复。
0 请登录后投票
   发表时间:2012-02-28  
为什么我的simple-monitor 启动后,无法发现新的服务,新增的service 和 consumer 要重启 simple-monitor 才可以看到。。。

谢谢!
0 请登录后投票
   发表时间:2012-02-28  
javatar 写道
ximenpiaohua 写道
看了一下源代码,收获还是很大,值得研究,目前研究了一下服务器端代理的创建,以及代理的调用过程,写的还是蛮清晰的,不知道楼主能否发些文档出来研究起来方便一点,另外关于mina产生大锯齿的垃圾回收的原因能否解析一下。

内部培训的PPT,我们正在做整理后,后续也会发出来。

关于Mina产生大锯齿的垃圾回收的原因:
通过jmap分析内存,发现存在大量的ConcurrentBlockingQueue$Node对象,跟踪代码初步判断是,Mina严格遵守selector收到write事件后,再触发从队列中取出信息进行发送,而Netty做了短路,发现IO空闲,不经过队列直接发送,在大压力测试下,Mina队列中的数据因停留,被移到old区了,从而导致full-gc的发生,在小压力下,都没有问题。


哎,这个问题我之前也研究过, 不知道是不是和你说的一个内容,
请看从System.gc()=》 查找引用==> java.nio.Bits.reserveMemory()==>java.nio.DirectByteBuffer 构造器==>

   java.nio.ByteBuffer的

    public static ByteBuffer allocateDirect(int capacity) {
        return new DirectByteBuffer(capacity);
    }

mina在接收/发送 缓存达大于1KB(mina的默认缓冲值)的时候就会发生 allocateDirect 重新分配,而这个过程会导致显示的调用System.gc(),后来我们把系统jvm系统参数加上
-XX:+DisableExplicitGC 代码显示GC最终才得以解决。



0 请登录后投票
   发表时间:2012-02-29  
BruceXX 写道
javatar 写道
ximenpiaohua 写道
看了一下源代码,收获还是很大,值得研究,目前研究了一下服务器端代理的创建,以及代理的调用过程,写的还是蛮清晰的,不知道楼主能否发些文档出来研究起来方便一点,另外关于mina产生大锯齿的垃圾回收的原因能否解析一下。

内部培训的PPT,我们正在做整理后,后续也会发出来。

关于Mina产生大锯齿的垃圾回收的原因:
通过jmap分析内存,发现存在大量的ConcurrentBlockingQueue$Node对象,跟踪代码初步判断是,Mina严格遵守selector收到write事件后,再触发从队列中取出信息进行发送,而Netty做了短路,发现IO空闲,不经过队列直接发送,在大压力测试下,Mina队列中的数据因停留,被移到old区了,从而导致full-gc的发生,在小压力下,都没有问题。


哎,这个问题我之前也研究过, 不知道是不是和你说的一个内容,
请看从System.gc()=》 查找引用==> java.nio.Bits.reserveMemory()==>java.nio.DirectByteBuffer 构造器==>

   java.nio.ByteBuffer的

    public static ByteBuffer allocateDirect(int capacity) {
        return new DirectByteBuffer(capacity);
    }

mina在接收/发送 缓存达大于1KB(mina的默认缓冲值)的时候就会发生 allocateDirect 重新分配,而这个过程会导致显示的调用System.gc(),后来我们把系统jvm系统参数加上
-XX:+DisableExplicitGC 代码显示GC最终才得以解决。





这是因为DirectMemory需要gc才能释放,但Dubbo之前是在没有用DirectMemory时也出现锯齿。
0 请登录后投票
   发表时间:2012-03-02  
Home > Services > com.pica.service.AuthorityService > Providers | Consumers | Statistics | Charts >

为什么服务跑了几天,请求不断,却没有charts 信息?有谁遇到过?
0 请登录后投票
   发表时间:2012-03-02  

遇到一个奇怪的问题,我在某机房部署一套 Service ,然后注册中心 使用 zookeeper,监控simple-monitor 都在同一台服务器上,当servic服务启动后,我发现dubbo://ip:20880  这个ip居然与服务IP不一样,什么情况???
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics