zoukankan      html  css  js  c++  java
  • Dubbo

    RPC:远程过程调用:实现跨工程,跨JVM的调用技术;

      provider :提供服务的服务方

      cousunmer:调用远程服务的消费方

      registry :服务注册与发现的注册中心

      monitor:统计服务调用次数与时间的调用中心

    1.在生产中,我们都会使用zookeeper的注册中心,所有必须搭建zookeeper 注册中心,在我的随笔分布式中有关于zookeeper在linux的搭建!

    2.搭建完成后,开始我们的Java代码:需要(1).服务端工程(2).消费者工程(3).interface接口----->服务端通过把接口发布到zookeeper,消费端进行通过zookeeper调用服务端的工程,服务端和消

    费端是通过这个相同的接口进行数据的调用的!

    3.服务端和消费端都必须导入pom依赖(这个看自己的版本):

        <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>dubbo</artifactId>
                <version>2.5.3</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.springframework</groupId> 
                <artifactId>spring</artifactId> 
                    </exclusion>
                
                </exclusions>
            </dependency>
            
            <!-- zookeeper -->
            <dependency>
                <groupId>com.101tec</groupId>
                <artifactId>zkclient</artifactId>
                <version>0.10</version>
            </dependency>
            
            <dependency>
                <groupId>org.apache.zookeeper</groupId>
                <artifactId>zookeeper</artifactId>
                <version>3.4.10</version>
                <exclusions>
                    <exclusion>
                        <groupId>io.netty</groupId>
                        <artifactId>netty</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>

    4.接下来是服务端的配置文件:

        
         <!-- 配置服务端,基于注解 -->
        <dubbo:application name="provider"/>
        <!-- 注册中心 ,基于zookeeper-->
        <dubbo:registry address="zookeeper://192.168.241.129:2181"/>
        <!--<dubbo:protocol name="dubbo" port="20880"/>  -->
        
        <!-- 传统的xml配置 -->
        <!-- 配置接口地址+实现类(spring注册bean) -->
        <dubbo:service interface="com.project.provider.ProviderInterface" ref="providerService"/>
        <!-- <bean id="demoService" class="com.alibaba.dubbo.demo.provider.DemoServiceImpl"/>-->
        
        <!-- 注解扫描的方式,将类作为服务进行发布,实现的服务方法中必须加入@service注解,切记,这个注解是alibaba的service注解 -->
       <!--   <dubbo:annotation  package="com.cim.serviceimpl"></dubbo:annotation>-->
        

    5.消费端的配置文件

          
         
         <!-- 配置消费端,基于注解 -->
        <dubbo:application name="customer"/>
        <!-- 注册中心 ,基于zookeeper-->
        <dubbo:registry address="zookeeper://192.168.241.129:2181"/>
        <!--<dubbo:protocol name="dubbo" port="20880"/>  -->
        
        <!-- 传统的xml配置 消费端-->
        <dubbo:reference id="provider" interface="com.project.provider.ProviderInterface"/>
    
        <!-- 注解扫描的方式,将类作为服务进行发布,
            消费端配置必须用注解方式的@reference进行调用方法 -->
        <!-- <dubbo:annotation  package="com.cim.ys.Controller"></dubbo:annotation> -->

    项目拔下来的

     <!-- 配置服务应用名称 -->     
        <dubbo:application name="${dubbo.application}" />
    
        <!-- 使用zookeeper注册中心暴露服务地址 -->
        <!-- 注册中心地址 -->
        <dubbo:registry protocol="zookeeper" address="${dubbo.registry.address}" group="${dubbo.registry.group}" file="dubbo-registry/dubbo-registry.properties"/>
        
        <!-- 用dubbo协议在xx端口暴露服务 -->
        <dubbo:protocol name="dubbo" port="${dubbo.protocol.port}" threads="40" />

      

    原创打造,多多指教
  • 相关阅读:
    [Python] 项目的配置覆盖与合并
    [PHP] dompdf 使用记录
    Ubuntu16.04 desktop 设置共享文件夹 -- 图形界面配置
    (转)你不得不看的六篇知识图谱落地好文
    转 python2 与 python3 的编码
    (转) C#使用ODP.NET(Oracle.ManagedDataAccess.dll)操作Oracle数据库
    django & celery
    (转) 解决django项目部署到nginx+uwsgi服务器后 admin页面样式消失的问题
    Ubuntu 16.04 安装 SVN-Client (RaabitVCS)
    python 2.7
  • 原文地址:https://www.cnblogs.com/iscys/p/9563425.html
Copyright © 2011-2022 走看看