webservice

webservice,在开发中,对于同一个war包中的对象方法我们可以直接调用,但是很多情况下需要在不同项目或者不同服务器进行相互调用。webservice技术就是实现不同服务器项目直接的调用和交换数据,即使语言,协议,部署环境不同也可以实现。

webservice实现远程调用的步骤分三部(三次握手)

1.请求获取服务对象

2.返回服务对象

3.调用服务对象方法

webservice缺点 
    传统的webservice实现远程调用的方法耦合性较高,web层与服务层直接请求,在请求服务层获取服务对象的过程中,如果服务层因多种原因如网络延迟、请求      过多出现迟迟没有返回对象,就会造成请求延迟。解决方案就是使用第三方也就是dubbo服务治理中间件实现解耦和。

dubbo+zookeper

dubbo服务治理中间件是在soa分布式面向服务项目中用来作为服务远程调用的中间件,它加上zookeper注册中心实现整个分布式项目服务的发布注册和调用功能,核心思想就是实现解耦和。

dubbo的主要功能
1.RPC远程调用,类似webservice,底层原理是hessian
2.使用NIO 也就是newIO,底层实现原理为nettyIO与NIO的区别
1.IO为直接进行数据连接,占用资源较大
2.NIO指的是异步通讯,通过缓存进行数据交互,也实现了解耦zookeper的作用
1.作为注册中心注册服务对象
2.注册后的对象以URL的形式存储在zookeper中在分布式项目中使用dubbo+zookeper实现远程调用的大概步骤如下
1.项目启动(先启动服务层),服务容器如toncat容器、spring容器启动会自动将服务注册到zookeper中,
2.web层消费(订阅)服务,
3.dubbo返回给消费者服务对象
4.消费者消费调用服务对象方法

在dubbo中提供了一个monitor监控中心用于统计服务的调用和调用时间。它是阿里提供的一个已经开发好的项目war包,只需要部署到toncat中运行就能自动监控zookeper的服务调用。

考虑到互联网项目的实际要求,提高项目的高可用和容错性,可以对zookeper进行集群部署,同时,因为zookeper保持服务对象的形式为URL字符串,可以在dubbo和zookeper之间加入redis缓存URL,进一步提高容错性。

转载于:https://www.cnblogs.com/pigwood/p/9596398.html

dubbo+zookeper与webservice的简单对比相关推荐

  1. 主流WEB开发语言简单对比(转)

    主流WEB开发语言简单对比  原文链接:http://www.uml.org.cn/site/201401091.asp   随着时间的飞逝,随着岁月的流失.从世界上第一台计算机ENIAC诞生至今,已 ...

  2. 关注Cortex-M处理器,M0、M3、M4简单对比

    最近在关注Cortex-M处理器,针对目前进入大众视野的M0.M3.M4做了如下简单对比,内容来自ARM等官网,这里仅仅是整理了下,看起来更直观点,呵呵. Cortex-M 系列针对成本和功耗敏感的  ...

  3. sql和python的区别_数据处理简单对比:Excel,SQL,Python

    前言 无论是什么工具,做数据分析的时候一定会涉及到两类工作: 合并多个关联表 做数据透视表 这篇文章简单对比一下Excel.SQL和Python在这两类任务上的实现过程,从而对比其异同. 用到的数据表 ...

  4. vue 调用webservice_js跨域调用WebService的简单实例

    步骤1. 在web.config中的system.web节点里加入 步骤2.webservice代码 using System; using System.Collections.Generic; u ...

  5. vs.net 2005中引用webservice的简单方法

    vs.net 2005中引用webservice的简单方法 以往在vs.net 2003中,要add web reference的话,要输入要引用的webservice的wsdl的完全地址,然后点&q ...

  6. webservice实例java_Java WebService(实战) 简单实例

    一.准备工作(以下为本实例使用工具) 1.MyEclipse10.7.1 2.JDK 1.6.0_22 二.创建服务端 1.创建[Web Service Project],命名为[TheService ...

  7. WebService的简单实现

    WebService的简单实现 一.socket主机创建和使用过程 1.socket()//创建套接字 2.Setsockopt()//将套接字属性设置为允许和特定地点绑定 3.Bind()//将套接 ...

  8. C# 创建、部署和调用WebService的简单示例

    C# 创建.部署和调用WebService的简单示例 webservice 可以用于分布式应用程序之间的交互,和不同程序之间的交互. 概念性的东西就不说太多,下面开始创建一个简单的webservice ...

  9. Dubbo入门----搭建一个最简单的Demo框架

    Dubbo背景和简介 Dubbo开始于电商系统,因此在这里先从电商系统的演变讲起. 单一应用框架(ORM) 当网站流量很小时,只需一个应用,将所有功能如下单支付等都部署在一起,以减少部署节点和成本. ...

  10. 坐火车卧铺,到底是上、中、下哪个好?其实简单对比一下就知道了

    坐火车卧铺,到底是上铺好还是下铺好?其实简单对比一下就知道了 我们出行,长途旅行经济有实惠的方式,当然大部分人还是会选择火车这一种简单快捷的手段,而且可以根据自己的长短距离自行选择是座位票,还是躺票, ...

最新文章

  1. HarmonyOS Java工程目录结构
  2. 纯CSS3进行hover时显示带箭头和动画的tips效果
  3. 让你的名字显示在电脑右下角
  4. python编程基础教程-史上最全Python编程基础入门教程
  5. Java并发编程之阻塞队列
  6. CF 1642 F. Two Arrays 随机 + sosdp
  7. 限制文本输入框只能输入0-9数字
  8. dimension and x,y,z components
  9. 总结《Ray Tracing from the Ground Up》
  10. 3dmax 渲染关机 脚本_3DMax渲染完自动关机设置
  11. 浏览计算机已查找驱动程序软件,欢迎访问海南省数字证书认证中心
  12. python需要在linux上运行,在linux上运行python的方法
  13. 带你了解常见的编码表,以及他们自己的关系.
  14. 使用PowerDesigner创建JAVA类图
  15. 我的免费版mbti职业性格测试
  16. abp vnext 通过Claim扩展用户表字段
  17. 解决:java.sql.SQLException:Value ‘0000-00-00‘ can not be represented as java.sql.Date
  18. JNLP文件详细说明
  19. Git冲突:Your local changes would be overwritten by merge. Commit, stash or revert them to proceed.
  20. [书籍翻译]12周撰写期刊文章 学术出版成功指南——第 6 周:加强结构

热门文章

  1. Downie 4搭配Permute 3,一个完整的视频下载处理流
  2. 如何修复 MacBook Pro 电池寿命?
  3. 如何在 Mac 上使用“接力”回到上次离开的地方?
  4. iOS开发之Xcode项目文件自动展开问题的解决办法
  5. 苹果Mac可视化磁盘清理工具:Disk Expert
  6. 如何在Mac 上的“终端”中限制回滚行数?
  7. 如果你想提高创新,那么本书就是答案
  8. 微软MIX10开幕 支持在线观看
  9. BZOJ 3675 APIO2014 序列切割 斜率优化DP
  10. redhat6 忘记密码怎么办