天天看點

dubbo 學習總結

1 Dubbo 配置

       dubbo配置xml配置     屬性配置  注解配置   api配置

注解配置

(+) (#) 

服務提供方注解:

import

com.alibaba.dubbo.config.annotation.Service;

@Service

(version=

"1.0.0"

)

public

class

FooServiceImpl

implements

FooService {

// ......

}

服務提供方配置:

<!-- 公共資訊,也可以用dubbo.properties配置 -->

<

dubbo:application

name

=

"annotation-provider"

/>

<

dubbo:registry

address

=

"127.0.0.1:4548"

/>

<!-- 掃描注解包路徑,多個包用逗号分隔,不填pacakge表示掃描目前ApplicationContext中所有的類 -->

<

dubbo:annotation

package

=

"com.foo.bar.service"

/>

服務消費方注解:

import

com.alibaba.dubbo.config.annotation.Reference;

import

org.springframework.stereotype.Component;

@Component

public

class

BarAction {

@Reference

(version=

"1.0.0"

)

private

FooService fooService;

}

服務消費方配置:

<!-- 公共資訊,也可以用dubbo.properties配置 -->

<

dubbo:application

name

=

"annotation-consumer"

/>

<

dubbo:registry

address

=

"127.0.0.1:4548"

/>

<!-- 掃描注解包路徑,多個包用逗号分隔,不填pacakge表示掃描目前ApplicationContext中所有的類 -->

<

dubbo:annotation

package

=

"com.foo.bar.action"

/>

也可以使用:(等價于前面的:<dubbo:annotation package="com.foo.bar.service" />)

<

dubbo:annotation

/>

<

context:component-scan

base-package

=

"com.foo.bar.service"

>

<

context:include-filter

type

=

"annotation"

expression

=

"com.alibaba.dubbo.config.annotation.Service"

/>

</

context:component-scan

>

Spring2.5及以後版本支援component-scan,如果用的是Spring2.0及以前版本,需配置:

<!-- Spring2.0支援@Service注解配置,但不支援package屬性自動加載bean的執行個體,需人工定義bean的執行個體。-->

<

dubbo:annotation

/>

<

bean

id

=

"barService"

class

=

"com.foo.BarServiceImpl"

/>

2 功能熟悉

     并發控制

限制com.foo.BarService的每個方法,伺服器端并發執行(或占用線程池線程數)不能超過10個:

<

dubbo:service

interface

=

"com.foo.BarService"

executes

=

"10"

/>

限制com.foo.BarService的sayHello方法,伺服器端并發執行(或占用線程池線程數)不能超過10個:

<

dubbo:service

interface

=

"com.foo.BarService"

>

<

dubbo:method

name

=

"sayHello"

executes

=

"10"

/>

</

dubbo:service

>

限制com.foo.BarService的每個方法,每用戶端并發執行(或占用連接配接的請求數)不能超過10個:

<

dubbo:service

interface

=

"com.foo.BarService"

actives

=

"10"

/>

Or:

<

dubbo:reference

interface

=

"com.foo.BarService"

actives

=

"10"

/>

限制com.foo.BarService的sayHello方法,每用戶端并發執行(或占用連接配接的請求數)不能超過10個:

<

dubbo:service

interface

=

"com.foo.BarService"

>

<

dubbo:method

name

=

"sayHello"

actives

=

"10"

/>

</

dubbo:service

>

<

dubbo:reference

interface

=

"com.foo.BarService"

>

<

dubbo:method

name

=

"sayHello"

actives

=

"10"

/>

</

dubbo:service

>

如果<dubbo:service>和<dubbo:reference>都配了actives,<dubbo:reference>優先,參見:配置的覆寫政策。

Load Balance均衡:

配置服務的用戶端的loadbalance屬性為leastactive,此Loadbalance會調用并發數最小的Provider(Consumer端并發數)。

<

dubbo:reference

interface

=

"com.foo.BarService"

loadbalance

=

"leastactive"

/>

<

dubbo:service

interface

=

"com.foo.BarService"

loadbalance

=

"leastactive"

/>

熬夜不易,點選請老王喝杯烈酒!!!!!!!