快速开始。
本地安装后,maven install 到本地仓库,dubboxjar包就生成了,使用者可以通过
坐标引入到本地工程。
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>3.2.4.RELEASE</version>
</dependency>
<dependency>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
<version>3.4.6</version>
</dependency>
<dependency>
<groupId>com.github.sgroschupf</groupId>
<artifactId>zkclient</artifactId>
<version>0.1</version>
提示:如果想使用redis等其他注册中心,请引入jar包。
拿登录做个例子,如果在本地有个登录的服务.
<dubbo:application name="testProvider" owner="shuvigoss" organization="ecs"/>
<dubbo:registry address="zookeeper://127.0.0.1:2181"/>
<dubbo:service interface="com.shuvigoss.services.LoginService" ref="login"/>
只需在spring中使用<dubbo:service interface="com.shuvigoss.services.LoginService" ref="login"/>
暴露出来,dubbox会在zookeeper中将服务注册。
服务调用方(Consumer)
通过dubbo:reference从zookeeper处拿到com.shuvigoss.services.LoginService
服务的服务器列表。
<!--spring 注入loginService 看似跟本地调用一样-->
<bean id="ecard" class="com.shuvigoss.services.ECardServiceImpl">
<property name="loginService" ref="loginService"></property>
</bean>
//本地取卡服务
public class ECardServiceImpl implements ECardService {
private LoginService loginService;
public String getCard(String username, String password) {
LoginResult loginResult = loginService.login(new User(username, password));
if (Objects.equals("0000", loginResult.getResponseCode())) {
return "AAAA";
}
//登录失败返回空
return null;
}
public void setLoginService(LoginService loginService) {
this.loginService = loginService;
}
}
//调用点
assertEquals("AAAA", eCardService.getCard("shuwei", "111"));
我认为有3种方式去实现。
- 使用String json方式进行交互。
- 将各业务平台API进行梳理,API无需过多的说明,直接把interface、javabean放到服务器上,谁需要调用谁就将所需文件集成到本地。(适合其他不是很熟悉的业务平台)