一、为什么会是dubbo

1.Dubbo是一个分布式服务框架,提供RPC(远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。)

远程服务调用方案,以及SOA(面向服务的体系结构(英语:service-oriented architecture)是构造分布式计算的应用程序的方法。它将应用程序功能作为服务发送给  最终用户或者其他服务。) 服务治理。

2.分布式服务框架真正意义上将多台具有不同功能、不同区域的计算机通过网络连接起来解决海量请求、计算。

3.将功能作为‘服务’提供给其他服务、消费者使用,每个服务负责的功能不同,性能要求也不同,可以更好的做到定点增加、减少服务器。

二、dubbo简介

1、架构

1.Registry-分布式服务的注册和发布中心。zookeeper、redis、multicast

2.Provider-服务提供方

3.Consumer-使用远程调用的服务消费方

4.Monitor-监控中心

5.Container-服务运行容器

2、联系

1.provider将提供的服务注册在registry中

2.consumer将需要的服务在registry中订阅

3.registry返回服务器提供者的地址给consumer,如果其中一个provider不再提供服务,registry可以通过长连接,让consumer取消这个provider的服务提供关系。

4.consumer使用负载均衡算法,调用远程的provider。

5.定时向monitor发送调用状态、统计。

三、如何上手

  1. 下载zookeeper
    1. http://apache.claz.org/zookeeper/  下载最近的稳定版本3.4.9
    2. 解压后,打开zookeeper-3.4.9/
    3. 打开conf文件夹,复制一份zoo_sample.cfg,重命名为zoo.cfg
    4. 返回zookeeper根目录,打开bin目录下的zkServer.cmd
    5. zookeeper就已经安装启动成功了

2.   一般项目结构

a)         api-demo 定义接口、model类

b)         common-demo 提供公共方法,供其他模块使用

c)         consumer-demo 消费者模块,有spring-mvc框架,提供访问接口。

d)         provider-demo、provider-demo2、provider-demo3服务提供者,也是api-demo接口的实现者

3 .依赖关系

4 .如何运行

  1. 运行zookeeper
  2. 使用cmd命令行工具,进入dubbo-demo-feiniu根目录

3 输入命令mvn clean install

4 进入provider-demo/target,解压dubbo-demo-assembly.tar.gz,进入解压好的文件夹dubbo-demo-assembly\dubbo-demo\bin\,双击运行start.bat

5 进入provider-demo2/target,运行步骤3

6 命令行进入consumer-demo,运行命令mvn jetty:run

7 浏览器分别访问http://localhost:8080/activity/u?id=123,http://localhost:8080/users/u?id=123

8 可以在之前打开的命令行窗口看到

  1. 到此由一个服务消费者,两个服务提供者的dubbo-demo就运行完毕了。
 

Dubbo框架选型的更多相关文章

  1. SpringCloud微服务:基于Nacos组件,整合Dubbo框架

    源码地址:GitHub·点这里 || GitEE·点这里 一.基础组件简介 1.Dubbo框架 Dubbo服务化治理的核心框架,之前几年在国内被广泛使用,后续由于微服务的架构的崛起,更多的公司转向微服 ...

  2. TypeScript 强类型 JavaScript – Rafy Web 框架选型

    今天看到了 AngularJs 2.0 版本将基于 TypeScript 构建 的消息.与同事们对 TypeScript 展开了讨论.本文记录一些个人的想法. 理想的 JavaScript 开发模式 ...

  3. (转)dubbo框架基本分析

    原文地址: https://my.oschina.net/zhengweishan/blog/698591 Dubbo架构基本分析 1. dubbo简单介绍 1.1 dubbo是什么 dubbo是一个 ...

  4. 基于Dubbo框架构建分布式服务(一)

    Dubbo是Alibaba开源的分布式服务框架,我们可以非常容易地通过Dubbo来构建分布式服务,并根据自己实际业务应用场景来选择合适的集群容错模式,这个对于很多应用都是迫切希望的,只需要通过简单的配 ...

  5. 基于dubbo框架下的RPC通讯协议性能测试

    一.前言 Dubbo RPC服务框架支持丰富的传输协议.序列化方式等通讯相关的配置和扩展.dubbo执行一次RPC请求的过程大致如下:消费者(Consumer)向注册中心(Registry)执行RPC ...

  6. Atitit.js javascript的rpc框架选型

    Atitit.js javascript的rpc框架选型 1. Dwr1 2. 使用AJAXRPC1 2.2. 数据类型映射表1 3. json-rpc轻量级远程调用协议介绍及使用2 3.1. 2.3 ...

  7. dubbo框架----探索-大型系统架构设计(图解)

    对于高并发系统的架构要求: 1. 负载均衡 2.高并发 3.高可用 4.面向服务架构 (Dubbo框架使用) 5.分布式缓存 (redis分布式缓存) 6.分布式全文检索 (solr分分布式全文检索) ...

  8. 混合App 框架选型

    个人一直想做个App,但是学习 IOS 的过程发现 原生的做界面还是听麻烦的就放弃了.后来就转到混合式App阵营了 混合式App 定义 Hybrid App(混合模式移动应用)是指介于web-app. ...

  9. atitit.ajax 最佳实践跟框架选型 o99

    atitit.ajax 最佳实践跟框架选型 1. 选型框架dwr/dwr3 跟jq 1 2. DWR方便的地方分为两个地方. 1 3. dwr 优点: 1 4. 缺点: 2 5. 根jq的区别 2 1 ...

随机推荐

  1. 用js将从后台得到的时间戳(毫秒数)转换为想要的日期格式

    得到后台从数据库中拿到的数据我们希望格式是 2016年10月25日 17时37分30秒 或者 2016/10/25 17:37:30 然而我们前台得到的却是一段数字(时间戳,毫秒数) 14773860 ...

  2. SQLServer idenity 字段跳值

    修改数据库实例的启动参数 然后修改SQLServer启动参数,打开SQLServer configuration manager,然后选择服务实例,点击右键属性,查看实例的属性界面,然后启动参数选项输 ...

  3. iOS 适配https

    1.准备证书 首先找后台要一个证书(SSL证书,一般你跟后台说要弄https,然后让他给你个证书,他就知道了),我们需要的是.cer的证书.但是后台可能给我们的是.crt的证书. 我们需要转换一下: ...

  4. [python] 创建临时文件-tempfile模块

    This module generates temporary files and directories. It works on all supported platforms.In versio ...

  5. C#实现:给定任意数字,输出在该数字下所有()括号的集合

    class Program { static void Main(string[] args) { getPairs(, , , , ""); Console.ReadKey(); ...

  6. shell常用命令之curl: -w,–write-out参数详解

    顾名思义,write-out的作用就是输出点什么.curl的-w参数用于在一次完整且成功的操作后输出指定格式的内容到标准输出. 输出格式由普通字符串和任意数量的变量组成,输出变量需要按照%{varia ...

  7. Sublime Text 安装Emmet

    1.简单的安装方法 从菜单 View - Show Console 或者 ctrl + ~ 快捷键,调出 console.将以下 Python 代码粘贴进去并 enter 执行,不出意外即完成安装.以 ...

  8. python核心编程(第二版)习题

    重新再看一遍python核心编程,把后面的习题都做一下.

  9. 慕课网Java高并发秒杀学习

    课程地址:http://www.imooc.com/learn/587 一个很好:spring,springMVC,mybatis,bootstrap,jQuery,mysql,Restful学习案例 ...

  10. 简单jquery实现select三级联动

    简单的jquery实现select三级联动 代码如下: <!DOCTYPE html> <html> <head> <meta charset="u ...