您的位置:首页 > 其它

通过dubbo+zookeeper实现服务接口的封装及调用

2018-02-23 14:56 639 查看
1.首先介绍两个框架:

dubbo:阿里巴巴开源的高性能的优秀服务框架,使得应用可以通过高性能的rpc(远程调用)实现服务的输出和输入功能,可以和spring无缝衔接。

zookeeper:用来封装复杂易出错的关键服务,将简单易用的接口和性能高效,功能稳定的系统提供给用户。

下载链接:http://download.csdn.net/download/qq_36938933/10255688

2.应用场景:

生成:日期+时间+四位递增数字的订单号;

例如:2018010214280001 2018-01-02 14:28 0001第一个人,没调用一次 +1的业务场景,这是我们就可以把它单独成服务,别的系统调用该接口就可以。

3.与spring集成

引入jar包

dubbo 2.4.9,zookeeper 3.4.6,zkclient 0.1

<dependency>

<groupId>com.alibaba</groupId>

<artifactId>dubbo</artifactId>

<version>2.4.9</version>

<exclusions>

<exclusion>

<groupId>org.springframework</groupId>

<artifactId>spring</artifactId>

</exclusion>

</exclusions>

</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>

</dependency>


提供者:`

public interface CreateIDService {

String getID();

}

@Service

public class CreateIDServiceImpl implements CreateIDService{

private static long orderNum=0l;

private static String date ;

public synchronized String getID() {

String str = new SimpleDateFormat(“yyMMddHHmm”).format(new Date());

if(date==null||!date.equals(str.substring(0, 5))){

date = str;

}

orderNum ++;

long orderNo = Long.parseLong((date)) * 10000;

orderNo += orderNum;

System.out.println(orderNo);

return orderNo+”“;

}

}

`

4.消费者:

@Controller
@RequestMapping("/c")
public class CreateUserController {

@Autowired
private CreateIDService createID;
/**
* 生成订单号
* @return
*/
@RequestMapping("/person")
public String login(){
try{
String id=createID.getID();
system.out.println(id);
}catch(Exception e){
e.printStackTrace();
}
return "消费者";
}


5.dubbo配置文件

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd"> <!-- 提供方应用信息,用于计算依赖关系 -->
<dubbo:application name="dubbo_provider" />
<!-- 使用zookeeper注册中心暴露服务地址 -->
<!-- <dubbo:registry  address="115.28.93.69:2182" protocol="zookeeper"/> -->
<!-- 使用zookeeper广播注册中心暴露服务地址 -->
<dubbo:registry  protocol="zookeeper"  address="127.0.0.1:2181"/>
<!-- 用dubbo协议在20880端口暴露服务 -->
<dubbo:protocol  name="dubbo" port="20881" />
<!-- 声明需要暴露的服务接口 (提供者接口)-->
<dubbo:service interface="com.waims.examinee.createUser.service.CreateIDService"
ref="createIDServiceImpl" />
<!-- 和本地bean一样实现服务 (提供者接口实现类)-->
<bean id="createIDServiceImpl" class="com.waims.examinee.createUser.serviceImpl.CreateIDServiceImpl"/>
</beans>


6.applicationContext配置文件

<import resource="dubbo.xml"/>


以上就是简单的接口封装及系统间接口的调用,如有问题请私信联系,如果认为有所帮助请记得点赞!!!

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐