当前位置: 首页 > 编程日记 > 正文

分布式RPC实践--Dubbo基础篇

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

简介

Dubbo是阿里巴巴开源的一个高性能的分布式RPC框架,整个框架的核心原理来源于生产者与消费者的运作模型;框架的核心分4大部分:

1. 服务注册中心

注册中心主要用于保存生产者消费者信息;生产者将自己的服务保存在注册中心,消费者通过注册中心寻找可用的生产者。

2. 服务提供者(生产者)


    服务提供者,传统的软件架构中的Service、Dao层;主要实现种类多样、多元化的业务需求,并通过注册中心提供服务接口给其他系统集成。

3. 服务消费者(消费者)

服务消费者,传统软件架构中的Controller、Service层;作为Controller,则主要是接参、校验,响应结果;作为Service则是整合其他微服务实现自己的多元化业务。

4. 服务监控中心

监控中心主要用于运维;可视化的界面直观的了解各个微服务的情况。

架构

dubbo-architucture

节点角色说明

节点角色说明
Provider暴露服务的服务提供方
Consumer调用远程服务的服务消费方
Registry服务注册与发现的注册中心
Monitor统计服务的调用次数和调用时间的监控中心
Container服务运行容器

调用关系说明

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

转载于:https://my.oschina.net/mobinchao/blog/1860932

相关文章:

又居家办公了,要签合同怎么办?

本篇文章暨 CSDN《中国 101 计划》系列数字化转型场景之一。 《中国 101 计划——探索企业数字化发展新生态》为 CSDN 联合《新程序员》、GitCode.net 开源代码仓共同策划推出的系列活动,寻访一百零一个数字化转型场景,聚合呈现并开通评选通道&#xff0…

lombox的用法(省去了set/get/NoArgsConstructor/AllArgsConstructor)

1、环境的搭建,在eclipse下的eclipse.ini中添加以下参数,-Xbootclasspath/a:C:\repository\org\projectlombok\lombok\1.16.6\lombok-1.16.6.jar-javaagent:C:\repository\org\projectlombok\lombok\1.16.6\lombok-1.16.6.jar重启你的eclipse.2、将lombo…

mysql 压力测试脚本

#创建表DEPTCREATE TABLE dept( /*部门表*/deptno MEDIUMINT UNSIGNED NOT NULL DEFAULT 0,dname VARCHAR(20) NOT NULL DEFAULT "",loc VARCHAR(13) NOT NULL DEFAULT "") ENGINEMyISAM DEFAULT CHARSETutf8 ;#创建表EMP雇员CREATE TABLE emp(empno…

C++语言学习(十二)——C++语言常见函数调用约定

C语言学习(十二)——C语言常见函数调用约定 一、C语言函数调用约定简介 C /C开发中,程序编译没有问题,但链接的时候报告函数不存在,或程序编译和链接都没有错误,但只要调用库中的函数就会出现堆栈异常等现象…

PHP代码保护——Zend Guard

Zend Guard的作用,就是用编译处理的方式来保护PHP源代码免于被反编译查看、未经授权的定制修改、未经许可的使用和重新发布等。而且,它是PHP的东家Zend公司开发的,是完全为PHP量身定做的保护神。 下面,请大家就和我一起来学习使用…

Python 2.4 递归函数

递归函数在函数内部,可以调用其他函数。如果一个函数在内部调用本身,这个函数就是递归函数。举个例子:计算阶乘n!1*2*3*4*5*...*n,用函数fact(n)表示,可以看出fact(n)n!f(n-1)*n所以,fact(n)可以表示为n*fa…

生于俄罗斯的 Web 服务器王者 Nginx,现宣布俄罗斯禁止贡献!

作者 | 苏宓出品 | CSDN不久之前,一些底层工具、软件、开源项目相继宣布在俄罗斯停服,彼时也有不少开发者呼吁 Nginx 是时候进行反限制了。万万没想到,就在国际局势发生改变的一个月后,Nginx 动了手,但是有些「意料之外…

OCP换考题了,052新考题及答案整理-第17题

17、Which two statements are true about tablespaces? A) A database can contain multiple undo tablespaces. B) A database can contain only a single temporary tablespace. C) A database instance stores undo data In the SYSTEM tablespace If no undo tablespace …

linux的mount(挂载)命令详解

linux下挂载(mount)光盘镜像文件、移动硬盘、U盘、Windows和NFS网络共享 linux是一个优秀的开放源码的操作系统,可以运行在大到巨型小到掌上型各类计算机系统上,随着 linux系统的日渐成熟和稳定以及它开放源代码特有的优越性&…

GPT-3 再更新,新增编辑和插入文本功能,简直不要太好用!

编译 | 禾木木出品 | AI科技大本营(ID:rgznai100)GPT-3 是 OpenAL 提出的基于上下文的超大规模自然处理深度学习模型。这意味着如果你给 GPT-3 某些上下文内容时,它会试图去填充其余内容。例如给出句子的前部分,它会推测出下半部分…

scala akka 修炼之路5(scala特质应用场景分析)

scala中特质定义:包括一些字段,行为(方法/函数/动作)和一些未实现的功能接口的集合,能够方便的实现扩展或混入到已有类或抽象类中。 scala中特质(trait)是一个非常实用的特性,在程序设计中能够 更好的抽象现实。使程序更关注各自功…

6.2 sql安全性

最后的例子将显示如何通过现有证书创建-个新的用户。本章稍后会介绍证书,但在 这个例子中,首先创建证书,然后创建用户: USE AdventureWorks2008; CREATE CERTIFICATE SalesCert ENCRYPTION BY PASSWORD Pssw0rd WITH SUBJECT fSa…

2022,人工智能开启未来新密码

作者 | 剑客阿良_ALiang(胡逸) 出品 | AI科技大本营(ID:rgznai100) 购买大型电器、汽车,你是否会询问有没有智能语音功能?是的,潜移默化中人们已经不再将人工智能当作魔术,而是习以为…

PHP Socket配置以及实例

2个php测试文件 server.php <?php//phpinfo();//确保在连接客户端时不会超时set_time_limit(0);$ip 127.0.0.1;$port 1935;/*-------------------------------* socket通信整个过程-------------------------------* socket_create* socket_bind* socket_lis…

Windows下msysGit使用及相关配置

Windows下msysGit使用及相关配置

使用可信证书为windows RDP服务提供加密

2019独角兽企业重金招聘Python工程师标准>>> 0x01 前言 在windows server下可以通过配置远程桌面服务为RDP连接提供有效的数字证书以便提高安全性。 可是个人用户或并没有部署域控制器的用户是无法通过这种途径修改RDP所使用的数字证书&#xff0c;在不安全的环境中…

JavaScript跨域总结与解决办法

JavaScript跨域总结与解决办法 什么是跨域1、document.domainiframe的设置2、动态创建script3、利用iframe和location.hash4、window.name实现的跨域数据传输5、使用HTML5 postMessage6、利用flash本文来自网络&#xff08;http://f2e.me/200904/cross-scripting/&#xff0c;该…

这几个 Python 的小技巧,你会么?

来源丨Python小二作者 Peter Gleeson 是一名数据科学家&#xff0c;日常工作几乎离不 python。一路走来&#xff0c;他积累了不少有用的技巧和 tips&#xff0c;现在就将这些技巧分享给大家。这些技巧将根据其首字母按 A-Z 的顺序进行展示。ALL OR ANYPython 之所以成为这么一门…

如何创建可扩展表视图中的iOS 学习和拓展优化(有待更新)

首先介绍老外的文章&#xff1a;《How To Create an Expandable Table View in iOS》这是老外用Swift实现的&#xff0c;对应的老外github项目源码&#xff1a;https://github.com/appcoda/expandable-table-view小编经过学习了老外的Expandable Table View然后用Objective-C实…

String、StringBuffer、StringBuilder的理解

问题: 理解 Java的字符串&#xff0c;String、StringBuffer、StringBuilder 有什么区别&#xff1f; 知识点 字符串设计和实现考量 String是Immutable(线程安全、字符串常量池复用)。Immutable对象在拷贝时候不需要额外复制数据。至于为什么imumutable&#xff0c;源码如下&…

Linux(centos6.0)下安装Node.js以及使用

Linux下(centos6.0)安装Node.js1.wget http://nodejs.org/dist/node-v0.6.9.tar.gz tar zxvf node-v0.6.9.tar.gz cd node-v0.6.9 ./configure --prefix/usr/local/node ----------安装提示-------------Checking for program g or c : not found Checking for progr…

Pandas 中的这些函数/属性将被 deprecated

作者 | luanhz来源丨小数志导读Pandas对于日常数据分析和处理来说是最常用的工具&#xff08;没有之一&#xff09;&#xff0c;笔者之前也总结分享了很多相关用法和技巧。与之不同&#xff0c;今天本文来介绍几个已经在函数文档中列入"deprecated"的函数/属性&#…

2016.01.04 论文改重

今天的任务是修改查重的问题&#xff0c;另外加入参考文献。 其中&#xff0c;上午的时间完成论文查重。 下午的时间完成参考文献的丰富和标记。 晚上的时间完成DOM基础&#xff08;李炎恢&#xff09;的学习 预计晚上八点到晚上十点 优先级&#xff1a;论文查重&#xff0c;参…

完美数据迁移-MongoDB Stream的应用

目录 一、背景介绍二、常见方案1. 停机迁移2. 业务双写3. 增量迁移三、Change Stream 介绍监听的目标变更事件四、实现增量迁移五、后续优化小结附参考文档一、背景介绍 最近微服务架构火的不行&#xff0c;但本质上也只是风口上的一个热点词汇。 作为笔者的经验来说&#xff0…

Tslib移植与分析【转】

转自&#xff1a;http://blog.csdn.net/water_cow/article/details/7215308 目标平台&#xff1a;LOONGSON-1B开发板&#xff08;mips32指令集&#xff09;编译平台&#xff1a;x86PC--VMware6.5--Ubuntu10.04&#xff08;下面简称“ubuntu系统”&#xff09; 或&am…

用 Python 写一个天天酷跑,在线摸鱼不烦恼

来源丨Python小二写出来的效果图就是这样了&#xff1a;下面就更新一下全部的代码吧~还是老样子先定义import pygame,sys import random写一下游戏配置width 1200 #窗口宽度 height 508 #窗口高度 size width, height scoreNone #分数…

php fsockopen解决办法

最近研究php多线程的问题&#xff0c;发现中文资源少的可怜&#xff0c;仅有的几篇文章被转了又转&#xff0c;但文中内容价值有限。搜索过程中发现国外很多网站引用的一篇文章写的不错&#xff0c;所以翻译过来。版权声明&#xff1a;可以任意转载&#xff0c;转载时请务必以超…

深入浅出JVM的锁优化案例

锁优化适应性自旋&#xff08;Adaptive Spinning&#xff09;线程阻塞的时候&#xff0c;让等待的线程不放弃cpu执行时间&#xff0c;而是执行一个自旋(一般是空循环)&#xff0c;这叫做自旋锁。自旋等待本身虽然避免了线程切换的开销&#xff0c;但它是要占用处理器时间的&…

DOMContentLoaded 与onload区别以及使用

一、何时触发这两个事件&#xff1f; 1、当 onload 事件触发时&#xff0c;页面上所有的DOM&#xff0c;样式表&#xff0c;脚本&#xff0c;图片&#xff0c;flash都已经加载完成了。 2、当 DOMContentLoaded 事件触发时&#xff0c;仅当DOM加载完成&#xff0c;不包括样式表&…

php-fpm – 配置详解

http://duyongguang.blogbus.com/logs/156375484.html php5.3自带php-fpm /usr/local/php/etc/php-fpm.conf pid run/php-fpm.pidpid设置&#xff0c;默认在安装目录中的var/run/php-fpm.pid&#xff0c;建议开启 error_log log/php-fpm.log错误日志&#xff0c;默认在安装目…