zoukankan      html  css  js  c++  java
  • Dubbo之生产者

    环境步骤:

    1. 安装Zookeepr启动
    2. 创建Maven项目搭建生产者和消费者
    3. 安装DubboAdmin平台,实现监控

    Dubbo注册中心采用的是Zookeeper。为什么采用Zookeeper呢?

    Zookeeper是一个分布式的服务框架,是树型的目录服务的数据存储,能做到集群管理数据 ,这里能很好的作为Dubbo服务的注册中心。

    Dubbo能与Zookeeper做到集群部署,当提供者出现断电等异常停机时,Zookeeper注册中心能自动删除提供者信息,当提供者重启时,能自动恢复注册数据,以及订阅请求

    创建Maven工程

    项目结构:

    主要分三大模块:

    toov5-dubbo-api : 存放公共接口;

    toov5-dubbo-consumer : 调用远程服务;

    toov5-dubbo-provider : 提供远程服务

    创建maven  toov5-member-api  

           然后创建子模块   toov5-member-service-impl

    1、创建maven 父pom文件项目

    2、创建两个maven model 一个是a; toov5-member-dubbo-service-api (依赖公用接口 去实现之) 

                                              一个是b: toov5-member-public-dubbo-api (公用接口)

    a的pom 要依赖 b

             <dependency>
    	    <groupId>com.toov5</groupId>
                <artifactId>toov5-member-api</artifactId>
                <version>0.0.1-SNAPSHOT</version>
    	  </dependency>
    

    依赖了就可以去实现了哦

    生产者:

    pom

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
      <modelVersion>4.0.0</modelVersion>
      <parent>
        <groupId>com.toov5</groupId>
        <artifactId>toov5-parent</artifactId>
        <version>0.0.1-SNAPSHOT</version>
      </parent>
      <artifactId>toov5-member-dubbo-service-api</artifactId>
        <dependencies>
    	  <dependency>
    	    <groupId>com.toov5</groupId>
            <artifactId>toov5-member-api</artifactId>
            <version>0.0.1-SNAPSHOT</version>
    	  </dependency>
    	  
    	  <dependency>
    			<groupId>com.101tec</groupId>
    			<artifactId>zkclient</artifactId>
    			<version>0.10</version>
    		</dependency>
    		<dependency>
    			<groupId>commons-logging</groupId>
    			<artifactId>commons-logging</artifactId>
    			<version>1.2</version>
    		</dependency>
    		<dependency>
    			<groupId>org.jboss.netty</groupId>
    			<artifactId>netty</artifactId>
    			<version>3.2.5.Final</version>
    		</dependency>
    		<dependency>
    			<groupId>org.springframework</groupId>
    			<artifactId>spring-context</artifactId>
    			<version>4.3.9.RELEASE</version>
    		</dependency>
    		<dependency>
    			<groupId>com.alibaba</groupId>
    			<artifactId>dubbo</artifactId>
    			<version>2.5.3</version>
    			<exclusions>
    				<exclusion>
    					<groupId>org.springframework</groupId>
    					<artifactId>spring</artifactId>
    				</exclusion>
    				<exclusion>
    					<groupId>org.jboss.netty</groupId>
    					<artifactId>netty</artifactId>
    				</exclusion>
    			</exclusions>
    		</dependency>	  
      </dependencies>
    </project>
    

      

    package com.toov5.member.service.impl;
    
    import com.toov5.api.member.service.MemberService;
    
    public class MemberServiceImpl implements MemberService {
         
           public String getUser(Long userId) {
            System.out.println("订单服务调用会员服务:userId"+userId);
            return "toov5";
        }
        
        
    }

    启动类

    package com.toov5.member.service.impl;
    
    import java.io.IOException;
    
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    
    public class AppMember {
       
        public static void main(String[] args) throws IOException {
            
        ClassPathXmlApplicationContext applicationContext  = new ClassPathXmlApplicationContext("dubbo-provider.xml");    
        applicationContext.start();  //发布服务直接
        System.out.println("会员启动成功...");    
        System.in.read();  //服务一直保持运行
        
        }
         
    }

    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-admin 或 dubbo-monitor 会显示这个名字,方便辨识 -->
    	<dubbo:application name="demotest-provider" />
    	<!--使用 zookeeper 注册中心暴露服务,注意要先开启 zookeeper -->
    	<dubbo:registry address="zookeeper://192.168.91.5:2181" />
    	<!-- 用dubbo协议在20880端口暴露服务 -->
    	<dubbo:protocol name="dubbo" port="20880" />
    	<!--使用 dubbo 协议实现定义好的 api.PermissionService 接口 -->
    	<dubbo:service interface="com.toov5.api.member.service.MemberService"
    		ref="MemberServiceImpl" protocol="dubbo" />
    	<!--具体实现该接口的 bean --> <!-- 包名+类名 -->
    	<bean id="MemberServiceImpl" class="com.toov5.member.service.impl.MemberServiceImpl" />
    	
    </beans>
    

     启动会员服务:

    privider 下面的节点是经常变换的 所以临时的

     

      

  • 相关阅读:
    Luogu-P1404 平均数
    树的直径与重心
    卡常技巧
    背包问题总结
    Codevs-1521 华丽的吊灯
    区间dp与环形dp
    Luogu-P1308 神经网络
    拓扑排序
    01分数规划
    Python学习 4day__基础知识
  • 原文地址:https://www.cnblogs.com/toov5/p/9924146.html
Copyright © 2011-2022 走看看