一,官网地址
二,实例
监控中心:
1,dubbo-admin:管理控制台
2,dubbo-monitor-simple:简单的监控中心
注册中心采用zookeeper
修改conf下zoo.cfg
#临时数据存放位置
dataDir=../data
#端口号
clientPort=2181
2,抽取公用接口和pojo
3,服务提供者
a,pom.xml
<dependencies>
<dependency>
<groupId>com.yu.taobao</groupId>
<artifactId>taobao-interface</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>dubbo</artifactId>
<version>2.6.2</version>
</dependency>
<!-- 注册中心使用的是zookeeper,引入操作zookeeper客户端的jar -->
<dependency>
<groupId>org.apache.curator</groupId>
<artifactId>curator-framework</artifactId>
<version>2.12.0</version>
</dependency>
</dependencies>
b,provider.xml
<?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://dubbo.apache.org/schema/dubbo"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
http://dubbo.apache.org/schema/dubbo
http://dubbo.apache.org/schema/dubbo/dubbo.xsd">
<!-- 指定当前服务名称 -->
<dubbo:application name="user-service-provider" />
<!-- 指定注册中心的位置 -->
<dubbo:registry address="zookeeper://127.0.0.1:2181" />
<!-- 指定通信规则 -->
<dubbo:protocol name="dubbo" port="20880" />
<!-- 声明需要暴露的服务接口 -->
<dubbo:service interface="com.taobao.user.service.UserService"
ref="userServiceImpl" />
<!-- 和本地bean一样实现服务 -->
<bean id="userServiceImpl" class="com.taobao.user.service.impl.UserServiceImpl" />
<!-- 连接监控中心 -->
<!-- <dubbo:monitor protocol="registry" /> -->
<!-- <dubbo:monitor address="127.0.0.1:7070" /> -->
</beans>
c,Provider.java
public class Provider {
public static void main(String[] args) throws Exception {
ClassPathXmlApplicationContext context = new
ClassPathXmlApplicationContext("provider.xml");
context.start();
System.out.println("测试服务提供");
System.in.read(); // 按任意键退出
}
}
4,服务消费者
a,pom.xml
<dependencies>
<dependency>
<groupId>com.yu.taobao</groupId>
<artifactId>taobao-interface</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>dubbo</artifactId>
<version>2.6.2</version>
</dependency>
<!-- 注册中心使用的是zookeeper,引入操作zookeeper客户端的jar -->
<dependency>
<groupId>org.apache.curator</groupId>
<artifactId>curator-framework</artifactId>
<version>2.12.0</version>
</dependency>
</dependencies>
b,consumer.xml
<?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://dubbo.apache.org/schema/dubbo"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
http://dubbo.apache.org/schema/dubbo
http://dubbo.apache.org/schema/dubbo/dubbo.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.3.xsd">
<context:component-scan base-package="com.taobao.*"></context:component-scan>
<dubbo:application name="order-service-consumer" />
<dubbo:registry address="zookeeper://127.0.0.1:2181" />
<!-- 配置当前消费者的统一校验规则 -->
<dubbo:consumer check="false" timeout="1000"/>
<!-- 声明需要调用的远程服务接口,生成远程服务代理 -->
<!-- timeout:设置超时时间 生效优先顺序:1,精确优先 2,同级别消费优先 -->
<!-- retries:重试次数,
设置规则:
1,查询,删除,修改(在同等参数下结果不变),可以设置
2,新增,不可以设置
-->
<dubbo:reference id="userService" interface="com.taobao.user.service.UserService"
timeout="2000" retries="4"/>
<!-- 连接监控中心 -->
<!-- <dubbo:monitor protocol="registry" /> -->
<!-- <dubbo:monitor address="127.0.0.1:7070" /> -->
</beans>
c,Consumer.java
public class Consumer {
public static void main(String[] args) throws IOException {
ClassPathXmlApplicationContext context=new
ClassPathXmlApplicationContext("consumer.xml");
OrderService orderService = context.getBean(OrderService.class);
orderService.initOrder("1");
System.out.println("调用结束");
System.in.read();
}
}
d,OrderServiceImpl.java
扫描二维码关注公众号,回复:
11627510 查看本文章
@Service
public class OrderServiceImpl implements OrderService {
@Autowired
UserService userService;
public List<UserAddress> initOrder(String userId) {
List<UserAddress> addressList = userService.getUserAddressList(userId);
for (UserAddress userAddress : addressList) {
System.out.println(userAddress.getUserAddress());
}
return addressList;
}
}