dubbo学习笔记一

一,官网地址

二,实例

监控中心:

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;
	}
}

猜你喜欢

转载自blog.csdn.net/yzx15855401351/article/details/106136249