dubbo发布web服务实例

dubbo角色与调用执行过程

dubbo节点角色说明:provider: 暴露服务的服务提供方consumer: 调用远程服务的服务消费方registry: 服务注册于发现的注册中心monitor: 统计服务的调用次数和调用时间的监控中心container:服务运行容器

dubbo调用关系说明:1、服务容器负责启动,加载,运行服务提供者2、服务提供者在启动时,向注册中心注册自己提供的服务3、服务消费者在启动时,向注册中心订阅自己所需的服务4、注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者5、服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果的调用失败,则选择另一台调用6、服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心

注册中心:zookeeper(建议使用2.3.3以上版本)dubbo未对zookeeper服务端做任何侵入修改,只需安装原生的zookeeper服务器即可.所有注册中心逻辑适配都在调用zookeeper客户端时完成

zookeeper注册中心安装

笔者环境:a)虚拟机centosIP地址:[192.168.1.107]

b)zookeeperzk版本: [zookeeper-3.4.6]
1、修改/etc/hosts文件添加host"192.168.1.107 zk-provider" 如下
[[email protected] local]# vim /etc/hosts
[[email protected] local]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.1.107 zk-provider
2、解压zookeeper-3.4.6到/usr/local/
[[email protected] zookeeper-3.4.6]# pwd
/usr/local/zookeeper-3.4.6
3、在/usr/local/zookeeper-3.4.6目录下创建目录:
[[email protected] zookeeper-3.4.6]# mkdir logs
[[email protected] zookeeper-3.4.6]# mkdir data
4、将/usr/local/zookeeper-3.4.6/conf目录下的zoo_sample.cfg复制一份,命名为zoo.cfg
[[email protected] conf]# pwd
/usr/local/zookeeper-3.4.6/conf
[[email protected] conf]# cp zoo_sample.cfg zoo.cfg
5、修改zoo.cfg文件内容如下:
[[email protected] conf]# cat zoo.cfg
tickTime=2000
#initLimit这个配置项是用来配置zookeeper接口客户端
initLimit=10
syncLimit=5
dataDir=/usr/local/zookeeper-3.4.6/data
dtaLogDir=/usr/local/zookeeper-3.4.6/logs
clientPort=2181
server.1=zk-provider:2888:3888
说明:server.1=zk-provider:2888:3888等同于server.1=192.168.1.107:2888:3888
6、在/usr/local/zookeeper-3.4.6/data下创建myid文件,输入当前服务机器所对应的编号
[[email protected] data]# pwd
/usr/local/zookeeper-3.4.6/data
[[email protected] data]# ls
myid
[[email protected] data]# cat myid
1
[[email protected] data]#
7、将zookeeper配置到环境变量
[[email protected] data]# vim /etc/profile

  在文件末尾增加

# zookeeper env
export ZOOKEEPER_HOME=/usr/local/zookeeper-3.4.6
export PATH=$ZOOKEEPER_HOME/bin:$PATH

  保存退出,使配置生效

[[email protected] data]# source /etc/profile
8、在防火墙打开要用到得到端口2181、2888、3888
[[email protected] data]# vim /etc/sysconfig/iptables
  在COMMIT之前增加如下:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 2181 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 2888 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3888 -j ACCEPT
  重启防火墙
[[email protected] data]# service iptables restart
[[email protected] data]# service iptables status
9、启动zookeeper
[[email protected] zookeeper-3.4.6]# /usr/local/zookeeper-3.4.6/bin/zkServer.sh start
JMX enabled by default
Using config: /usr/local/zookeeper-3.4.6/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
# 查看状态
[[email protected] zookeeper-3.4.6]# zkServer.sh status
JMX enabled by default
Using config: /usr/local/zookeeper-3.4.6/bin/../conf/zoo.cfg
Mode: standalone
# 查看输出的服务信息
[[email protected] zookeeper-3.4.6]# tail -500f /usr/local/zookeeper-3.4.6/bin/zookeeper.out
10、配置zookeeper随机启动
[[email protected] zookeeper-3.4.6]# vim /etc/rc.local
# 增加如下命令
/usr/local/zookeeper-3.4.6/bin/zkServer.sh start

dubbo服务发布与调用1、服务发布
<?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="ws-server-user" />

    <!-- 使用zookeeper注册中心暴露服务地址 -->
    <dubbo:registry protocol="zookeeper" address="192.168.1.107:2181" />

    <!-- 用dubbo协议在20880端口暴露服务 -->
    <dubbo:protocol name="dubbo" port="20880" />

    <bean id="userFacade" class="com.ws.server.UserFacadeImpl" />
    <!-- 用户服务接口 -->
    <dubbo:service interface="com.ws.facade.UserFacade" ref="userFacade" />

</beans>  

2、服务调用
<?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="ws-client-invoke-user" />

    <!-- 使用zookeeper注册中心暴露服务地址 -->
    <!-- 注册中心地址 -->
    <dubbo:registry protocol="zookeeper" address="192.168.1.107:2181" />

    <!-- 用户服务接口 -->
    <dubbo:reference interface="com.ws.facade.UserFacade" id="userFacadeClient" check="false"/>

</beans>  

实例demo: http://files.cnblogs.com/files/dennisit/dubbo-ws.zip

转载请注明出处:[http://www.cnblogs.com/dennisit/p/4542901.html]
时间: 2024-11-01 19:50:08

dubbo发布web服务实例的相关文章

用CXF发布Web服务

1.下载apache-cxf-2.7.6jar包,并把lib目录下的所有jar包导入项目 2.编写测试的实体类,示例如下: 1 package cn.bd.weather.entity; 2 3 import java.util.Date; 4 5 import javax.xml.bind.annotation.XmlRootElement; 6 /** 7 * 8 * @author Administrator 9 * @XmlRootElement 表示根元素 10 */ 11 @XmlR

IIS7.0发布Web服务-0001

配置错误 不能在此路径中使用此配置节.如果在父级别上锁定了该节,便会出现这种情况.锁定是默认设置的 (overrideModeDefault="Deny"),或者是通过包含 overrideMode="Deny" 或旧有的 allowOverride="false" 的位置标记明确设置的.  配置文件 \\?\X(盘符):\目录名\目录名\web.config<system.webServer>        <handlers

spring boot-18.使用dubbo发布分布式服务

我们新建两个项目分别模拟服务的提供者和服务的消费者,spring boot 集成dubbo主要分为以下几个步骤: 1.安装zookeeper 推荐使用docker 安装,使用以下几个命令即可完成 (1)docker pull zookeeper:3.4.11 (2)docker run --name zookeeper -p 2181:2181 --restart always -d 56d414270ae3 (-d 后面为镜像ID) 2.服务提供者和服务消费者的项目中分别添加dubbo 和zo

Apache发布web服务

服务器端:192.16.200.122(www.cxm.com)  DNS:192.168.200.122注:假设网站名称为www.cxm.com 1 发布默认路径下的基本网站(/var/www/html) (1)安装httpd软件包 [[email protected] ~]# rpm -qa | grep httpd  httpd-tools-2.2.15-15.el6_2.1.x86_64httpd-2.2.15-15.el6_2.1.x86_64 (2)编写测试页[[email prot

windows amd64环境下使用arcpy发布web服务

通常在安装arcgis的时候,arcgis desktop与arcgis server应该是必备软件 但他们使用的python却不同,desktop使用32位,server使用64位. 为了能将arcpy生成的map document正常发布到server,python interpreter一定要使用64位,如果是32位环境,会出现两种情况: arcpy其他功能没问题,发布mxd时出现上传阻塞的情况 调用arcpy会出现DLL不是有效的win32执行程序之类的错误 综合之前碰到的问题,解决办法

VS2015发布web服务

一.IIS中 ①添加网站 二.VS2015 ①右键解决方案→发布: ②自定义,设置配置文件名称: ③ ④发布     三.IIS中浏览(图片的ip地址是自己,上面的ip是截图别人的,所以不一样) 原文地址:https://www.cnblogs.com/youzi-xuchongyou/p/11751776.html

Azure机器学习入门(四)模型发布为Web服务

接Azure机器学习(三)创建Azure机器学习实验,下一步便是真正地将Azure机器学习的预测模型发布为Web服务.要启用Web服务发布任务,首先点击底端导航栏的运行即"Run"按钮运行新的收入预测实验.实验开始运行之后,底端导航栏的发布Web服务即"Publish Web Service"按钮就变为有效,如下图所示. 图 即将发布Web服务地Azure 机器学习实验 此时,点击设计模式下底端导航栏的发布Web服务即"Publish Web Servic

利用jws发布一个查询员工信息的Web服务(员工信息存储在数据库中)

这是<基于服务的软件系统>的课程设计: 一.作业要求 编写查询员工信息的Web服务(员工信息存储在数据库中).第一个Web服务:输入员工号,返回该员工号的员工的基本信息,包括员工号.员工名称.所在部门.出生日期.职位.职称.入职日期等信息.第二个Web服务:输入部门.职称,返回该部门具有该职称的所有员工的基本信息,员工基本信息与上面相同.分别针对上述两个Web服务,分别编写调用这两个Web服务的程序(或网页).要求在输入界面上输入待查询数据,调用Web服务,并将Web服务返回的员工信息查询结果

【Java】Web 服务编程技巧与窍门: 在 UDDI 注册中心为 Web 服务注册开发 UDDI Java 应用程序

本技巧建立了一个使用统一描述.发现和集成 (Universal Description, Discovery, and Integration,UDDI) 来注册应用程序级消费的 Web 服务实例.作者提供了详细的代码示例以及基于 Java 的统一描述.发现和集成 (Universal Description, Discovery,and Integration for Java,UDDI4J) API 的扩展 API,通过这些可以使您使用 UDDI 来进行您自己的开发. 0 评论: Andre