导语:Dubbo是阿里巴巴的一个分布式服务的开源框架,致力于提供高性能和透明化的RPC远程服务调用方案,是阿里巴巴SOA服务化治理方案的核心框架,每天为2,000+个服务提供3,000,000,000+次访问量支持,并被广泛应用于阿里巴巴集团的各成员站点。

  参考网站:http://dubbo.io/

一、Dubbo-admin管理web工程配置

部署dubbo-admin
    1、校验jdk安装:参考jdk安装
java –version
2、安装tomcat:参考tomcat安装
3、yum install –y unzip
rm –rf /usr/local/tomcat/webapp/ROOT/*
unzip dubbo-admin-2.5.4.war –d /usr/local/tomcat/webapp/ROOT
4、配置 hosts : vi /etc/hosts
a、【root@localhost】
127.0.0.1 localhost
127.0.0.1 root
b、【root@lgp】 //lgp只是一个例子
127.0.0.1 lgp
5、启动服务
./usr/local/tomcat/bin/startup.sh

 

二、Dubbo+Zookeeper部署

  1、Zookeeper部署

    a、先安装单台

    yum -y install openssh-clients    :安装scp,用于不同机器上复制文件
mkdir /home/lgp  :创建包用于存放 zookeeper
cp –rf zookeeper-3.4.6.tar.gz /home/lgp
cd /home/lgp
tar -xzvf zookeeper-3.4.6.tar.gz
cd zookeeper-3.4.6/conf/
mv zoo_sample.cfg   zoo.cfg
vi zoo.cfg    :参考详情

server.X=A:B:C  # 其中X是一个数字, 表示这是第几号server. A是该server所在的IP地址. B配置该server和集群中的leader交换消息所使用的端口. C配置选举leader时所使用的端口. 这里的x是一个数字,与myid文件中的id是一致的。

    cd ..
mkdir data
mkdir logs
touch /data/myid
echo 1 > /home/lgp/ zookeeper-3.4.6/data/myid
   vi /etc/hosts

  b、集群

复制:对应的机器创建 /home/lgp 
yum -y install openssh-clients 修改对应 myid ,etc/hosts scp /home/lgp/zookeeper-3.4.6 192.168.1.81:/home/lgp //跨机器复制 启动服务:
    service iptables stop:分别关闭对应机器的 iptables
    cd /home/lgp/zookeeper-3.4.6/bin
    ./bin/zkServer.sh start :开启zookeeper
    ./bin/zkServer.sh status :状态查询
    ./bin/zkServer.sh stop :关闭zookeeper

  2、整合Zookeeper

cd /usr/local/tomcat/webapp/ROOT/WEB-INF
vi dubbo.properties

  pwd:/usr/local/apache-tomcat-7.0.61/webapps/ROOT/WEB-INF   dubbo.properties

三、Dubbo项目整合SpringMVC

  1、下载jar包

maven导入所需jar包:dubbo、zookeeper、zkclient
<dependency>
                 <groupId>com.alibaba</groupId>
                 <artifactId>dubbo</artifactId>
                 <version>2.5.3</version>
  </dependency> <!-- Zookeeper 用于分布式服务管理 -->
             <dependency>
                 <groupId>org.apache.zookeeper</groupId>
                 <artifactId>zookeeper</artifactId>
                <version>3.4.5</version>
             </dependency>
            <dependency>
                 <groupId>com.101tec</groupId>
                 <artifactId>zkclient</artifactId>
                 <version>0.3</version>
            </dependency>
    <!-- Zookeeper 用于分布式服务管理 end -->

  2、eclipse配置dubbo.xsd,解决标签不识别的问题

    百度云盘:https://pan.baidu.com/s/1nuIKgMd

路径:http://code.alibabatech.com/schema/dubbo/dubbo.xsd

  3、在.properties配置zookeeper的注册地址

dubbo.registry.address=192.168.1.72:2181\,192.168.1.73:2182\,192.168.1.74:2183

  4、service提供服务:spring-dubbo-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://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="guduo-service-user" />     <!-- 使用zookeeper注册中心暴露服务地址 -->
<dubbo:registry protocol="zookeeper" address="${dubbo.registry.address}" />
  <!—本机 -->
    <dubbo:protocol name="dubbo" port="20823" />
    <!-- 监控中心配置,protocol="registry",表示从注册中心发现监控中心地址 -->
    <dubbo:monitor protocol="registry"/>
    <!-- 当ProtocolConfig和ServiceConfig某属性没有配置时,采用此缺省值 -->
    <dubbo:provider timeout="30000" threadpool="fixed" threads="100" accepts="1000" />
    <!-- 服务接口 -->
    <dubbo:service retries="0" interface="com.guduo.service.system.UserReportService" ref="userReportService" />
<dubbo:service retries="0" interface="com.guduo.service.system.UserSuggestionService" ref="userSuggestionService" />
</beans>  

  spring-context.xml引入spring-dubbo-provider.xml

  5、consumer注册服务:dubbo-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://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="guduo-web-publish" />
    <!-- 使用zookeeper注册中心暴露服务地址 -->
    <!-- 注册中心地址 -->
    <dubbo:registry protocol="zookeeper" address="${dubbo.registry.address}" />
    <!-- 用户服务接口 -->
    <dubbo:reference interface="com.guduo.service.user.PmsActionService" id="pmsActionService" check="false"/>
    <dubbo:reference interface="com.guduo.service.user.PmsMenuService" id="pmsMenuService" check="false"/>
</beans>  

四、开发阶段,启动Dubbo服务

  建议放在"src/test"目录下面

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.context.support.ClassPathXmlApplicationContext; /**
 * 
 * @描述: 启动Dubbo服务用的MainClass.
 * @作者: 刘广平
 * @创建时间: 2016-9-5,下午9:47:55 .
 * @版本: 1.0 .
 */
public class DubboProvider {     private static final Log log = LogFactory.getLog(DubboProvider.class);     public static void main(String[] args) {
        try {
            ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("classpath:spring/spring-context.xml");
            context.start();
        } catch (Exception e) {
            log.error("== DubboProvider context start error:",e);
        }
        synchronized (DubboProvider.class) {
            while (true) {
                try {
                    DubboProvider.class.wait();
                } catch (InterruptedException e) {
                    log.error("== synchronized error:",e);
                }
            }
        }
    }
}

项目中dubbo的使用的更多相关文章

  1. spring项目中dubbo相关的配置文件出现红叉的问题

    近来在eclipse中导入了一个web项目,但是发现项目上有红色的叉号. 原来是spring中关于dubbo的配置文件报错了. Multiple annotations found at this l ...

  2. 项目中dubbo的标准配置

    # Spring boot applicationspring: application: name: hello-dubbo-service-user-provider # UserService ...

  3. Dubbo 在maven项目中的应用

    首先我们来看一下dubbo的架构: 所以通过此图,我们看到就是服务的提供者将服务注册到注册中心,服务的消费者从注册中心获取服务,monitor监控服务的调用. 关于dubbo的使用,我们举个简单的例子 ...

  4. dubbo在项目中的应用

    关于dubbo的使用,我们举个简单例子: 存在2个系统,A系统和B系统,A系统调用B系统的接口获取数据,用于查询用户列表. 在上一篇博文介绍了dubbo的创建,zookeeper的创建完成后,我们可以 ...

  5. spring3.0结合Redis在项目中的运用

    推荐一个程序员的论坛网站:http://ourcoders.com/home/ 以下内容使用到的技术有:Redis缓存.SpringMVC.Maven.项目中使用了redis缓存,目的是在业务场景中, ...

  6. 如何在Crystal框架项目中内置启动Zookeeper服务?

    当Crystal框架项目需要使用到Zookeeper服务时(如使用Dubbo RPC时,需要注册服务到Zookeeper),而独立部署和启动Zookeeper服务不仅繁琐,也容易出现错误. 在小型项目 ...

  7. Java项目中使用log记录日志的一些总结

    本文介绍了一下自己在Java项目中使用log的一些总结,从日志的作用.日志的选用.日志级别介绍.日志记录的一些最佳实践几个方面阐述. 日志的作用 主要作用包括: 1.出问题后定位当时问题 2.显示程序 ...

  8. 解决项目导入dubbo依赖项目报红叉问题

    1.maven+ssm项目导入dubbo依赖 项目报错如下 2.出错原因在于dubbo依赖低版本的spring和低版本netty,准备通过maven的依赖管理将依赖传递过来的低版本的spring和ne ...

  9. 在 Spring Boot 项目中使用 activiti

    新建springBoot项目时勾选activiti,或者在已建立的springBoot项目添加以下依赖: <dependency> <groupId>org.activiti& ...

随机推荐

  1. 关于使用 jBox 对话框的提交问题

    http://www.cnblogs.com/haogj/archive/2012/11/04/2754303.html 关于使用 jBox 对话框的提交问题 jBox 是个不错的对话框组件. 在 A ...

  2. RikMigrations 或 Migrator.NET 进行自动化的数据库升级

    一种版本化的数据库脚本管理机制 现今开发的软件当中,多数系统的数据都是基于数据库存储的,但是由于软件变化的复杂性,相对于维护代码,数据库架构的版本并不是那么好维护. 这里本人针对实际情况,理想化出一种 ...

  3. CODEFORCES#274 DIV2

    A[傻逼题] 大意:给你a,b,c三个数,你可以在其中加上括号,加号,乘号,使得到的值最大 就是问你 a+b+c,a*(b+c),(a+b)*c,a*b*c,(a+c)*b 哪个最大! 我去...这不 ...

  4. ASP.NET MVC 使用MSBuild生成的几个注意事项

    做新项目,当时参考NopCommerce的结构,后台Nop.Admin是一个独立的Area Web Site,但部署的时候发现,使用一键发布,Admin Area会丢失. 研究了下NopCommerc ...

  5. 设计模式18---设计模式之策略模式(Strategy)(行为型)

    1.场景模拟 简单的报价管理系统: 对于普通用户和新用户报全价 对于老客户统一折扣5% 对于大客户统一折扣10% 2.不用模式的解决方案 package demo16.strategy.example ...

  6. memcache总结

    1简介: Memcache(内存缓存) 是一个高性能的分布式的内存对象缓存系统.通过在内存里维护一个巨大的hash表. 其实简单说点就是一个软件,可以用来维护内存,将数据在内存中使用,减少I/O 2工 ...

  7. IOS学习之路二十三(EGOImageLoading异步加载图片开源框架使用)

    EGOImageLoading 是一个用的比较多的异步加载图片的第三方类库,简化开发过程,我们直接传入图片的url,这个类库就会自动帮我们异步加载和缓存工作:当从网上获取图片时,如果网速慢图片短时间内 ...

  8. windows下python web开发环境的搭建

    windows下python web开发环境: python2.7,django1.5.1,eclipse4.3.2,pydev3.4.1 一. python环境安装 https://www.pyth ...

  9. bootstrap插件学习-bootstrap.modal.js

    bootstrap插件学习-bootstrap.modal.js 先从bootstrap.modal.js的结构看起. function($){ var Modal = function(){} // ...

  10. jquery animate 详解

    一.前言 继上一篇文章jquery stop的探索之后,我们继续对jquery动画animate的研究. 从stop给出参数我们就知道,它适合你去立即停止或者立即结束当前动画,清除或者继续非当前的动画 ...