Dubbo

dubbox使用

帅比萌擦擦* 提交于 2020-01-25 10:26:52
1.命令行下 git clone https://github.com/dangdangdotcom/dubbox 2.mvn install -Dmaven.test.skip=true 跳过测试编译 3.安装一个zookeeper,参考zoo.cfg如下: tickTime=2000 initLimit=10 syncLimit=5 dataDir=/home/shilin/zookeeper-3.4.6/data dataLogDir=/home/shilin/zookeeper-3.4.6/log clientPort=2181 server.1=localhost:2287:3387 bin/zkServer.sh 启用zookeeper 4.运行dubbox测试例子(用jdk1.7+运行例子) 生产者和消费者配置文件里 <dubbo:registry address="zookeeper://192.168.118.136:2181"/>改成配置好的zookeeper地址如果zookeeper集群,配置类似 <dubbo:registry address="zookeeper://172.28.*.102:2181?backup=172.28.*.102:2182,172.28.*.102:2183"/> 运行 \dubbox\dubbo-demo\dubbo-demo

python测试dubbo接口

大兔子大兔子 提交于 2020-01-25 08:44:48
dubbo官方文档中有提到: 从 2.0.5 版本开始,dubbo 开始支持通过 telnet 命令来进行服务治理。 也就是说我们可以通过telnet远程连接已经部署dubbo的服务器,执行shell命令, 可用来调用dubbo接口 import json import random import re import telnetlib import time class TelnetClient ( object ) : """通过telnet连接dubbo服务, 执行shell命令, 可用来调用dubbo接口 """ def __init__ ( self ) : self . tn = telnetlib . Telnet ( ) self . server_host = "127.0.0.1" self . server_port = "20880" self . user = "root" self . password = "root" # 此函数实现telnet登录主机 def connect_dubbo ( self ) : try : print ( "telent连接dubbo服务端: telnet {} {} ……" . format ( self . server_host , self . port ) ) self . tn . open ( self

如何参与一个顶级开源项目

眉间皱痕 提交于 2020-01-25 08:10:06
前言 最近个人事情比较多(搬家、换工作、短暂休息)所以一直也没有顾得上博客更新,恰好最近收到一封邮件提醒了我。 也是时候写一篇文章来聊聊参与开源项目的事(最近也确实进入了笔荒期)。 ps:第一次收到这样的中秋节礼物,加上 Dubbo 社区的活跃及阿里的重视度,还在做 RPC 或微服务技术选型的朋友可以考虑 Dubbo 。 参与开源 现在具体来聊聊参与开源的事; 日常几乎所有的开发者都会享受到开源项目所带来的便利甚至是收益,受限于环境早在十几年前甚至几年前开源活动一直都是有国外开发者主导。 但这几年国内互联网公司逐渐国际化扩大影响力也很大程度的提高了我们的开发水平,以 BAT 为首出现了许多优秀的开源项目。 现在甚至参与开源项目还能另辟蹊径的拿到大厂 offer ,所以其实不少朋友都想参与其中,可能这事给人的第一感觉就不太容易,所以现在还卡在第一步。 具体步骤 以下是以我个人经验总结的几大步骤: 发现问题或自荐 feature 。 fork 源码。 本地开发、自测。 发起 pull request 。 等待社区 Code Review 。 跟进社区意见调整代码。 审核通过,合并进 master 分支,完成本次贡献。 下面我会结合最近一次参与 Dubbo 的流程来具体聊聊。 发现问题或自荐 feature 首先第一步自然要搞清楚自己本次贡献的内容是什么

SpringBoot集成Dubbo

有些话、适合烂在心里 提交于 2020-01-25 04:18:11
1.构建环境 1.1安装zookeeper,参考链接 https://blog.csdn.net/qq_33316784/article/details/88563482 1.2下载运行 dubbo-admin 下载地址:https://github.com/apache/dubbo/tree/2.5.x 环境配置完成后,启动zookeeper和dubbo-admin服务 2.构建dubbo服务消费者,服务提供者 项目结构 创建一个项目springboot-dubbo ,相关pom.xml 依赖: < ? xml version = "1.0" encoding = "UTF-8" ? > < project xmlns = "http://maven.apache.org/POM/4.0.0" xmlns : xsi = "http://www.w3.org/2001/XMLSchema-instance" xsi : schemaLocation = "http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" > < modelVersion > 4.0 .0 < / modelVersion > < groupId > top . xzhand . springboot -

资料搜集-JAVA系统的梳理知识12-Dubbo

こ雲淡風輕ζ 提交于 2020-01-25 03:18:54
本文是作者根据官方文档以及自己平时的使用情况,对 Dubbo 所做的一个总结。如果不懂 Dubbo 的使用的话,可以参考我的这篇文章[《超详细,新手都能看懂 !使用SpringBoot+Dubbo 搭建一个简单的分布式服务》](https://mp.weixin.qq.com/s?__biz=MzU4NDQ4MzU5OA==&mid=2247484706&idx=1&sn=d413fc17023482f67ca17cb6756b9ff8&chksm=fd985343caefda555969568fdf4734536e0a1745f9de337d434a7dbd04e893bd2d75f3641aab&token=1902169190&lang=zh_CN#rd) Dubbo 官网:http://dubbo.apache.org/zh-cn/index.html Dubbo 中文文档: http://dubbo.apache.org/zh-cn/index.html <!-- MarkdownTOC --> - [一 重要的概念](#一-重要的概念) - [1.1 什么是 Dubbo?](#11-什么是-dubbo) - [1.2 什么是 RPC?RPC原理是什么?](#12-什么是-rpcrpc原理是什么) - [1.3 为什么要用 Dubbo?](#13-为什么要用-dubbo)

Dubbo框架设计-分层设计思想

£可爱£侵袭症+ 提交于 2020-01-24 19:58:38
目录 整体设计 各层说明 config 配置层: proxy 服务代理层: registry 注册中心层: cluster 路由层: monitor 监控层: protocol 远程调用层: exchange 信息交换层: transport 网络传输层: serialize 数据序列化层: 关系说明 模块分包 依赖关系 调用链 暴露服务时序 引用服务时序 领域模型 基本设计原则 整体设计 图例说明: 图中左边淡蓝背景的为服务消费方使用的接口,右边淡绿色背景的为服务提供方使用的接口,位于中轴线上的为双方都用到的接口。 图中从下至上分为十层,各层均为单向依赖,右边的黑色箭头代表层之间的依赖关系,每一层都可以剥离上层被复用,其中,Service 和 Config 层为 API,其它各层均为 SPI。 图中绿色小块的为扩展接口,蓝色小块为实现类,图中只显示用于关联各层的实现类。 图中蓝色虚线为初始化过程,即启动时组装链,红色实线为方法调用过程,即运行时调时链,紫色三角箭头为继承,可以把子类看作父类的同一个节点,线上的文字为调用的方法。 各层说明 config 配置层: 对外配置接口,以 ServiceConfig, ReferenceConfig 为中心,可以直接初始化配置类,也可以通过 spring 解析配置生成配置类 proxy 服务代理层: 服务接口透明代理,生成服务的客户端

替代 Hystrix,Spring Cloud Alibaba Sentinel 快速入门

血红的双手。 提交于 2020-01-24 17:53:09
提起 Spring Cloud 的限流降级组件,一般首先想到的是 Netflix 的 Hystrix。 不过就在2018年底,Netflix 宣布不再积极开发 Hystrix,该项目将处于维护模式。官方表示 1.5.18 版本的 Hystrix 已经足够稳定,可以满足 Netflix 现有应用的需求,所以接下来其会把焦点转向对于自适应的实现,更多关注对应用程序的实时性能做出响应。对于新应用的熔断需求,将采用其它项目实现,Netflix 推荐了 Resilience4j。 作为 Spring Cloud Netflix 重要套件,Hystrix已经成为保障微服务稳定性的首选应用。其实除了 Netflix 和 Resilience4j,限流降级还有一个新的选择,就是阿里巴巴的Sentinel组件。 一、阿里开源 Sentinel 简介 2018年8月,阿里巴巴宣布将 Sentinel 进行开源,同时推出了结合 Dubbo 的适配器,捐赠给了Apache Dubbo社区。 1.Sentinel 的历史 2012 年,Sentinel 诞生,主要功能为入口流量控制。 2013-2017 年,Sentinel 在阿里巴巴集团内部迅速发展,成为基础技术模块,覆盖了所有的核心场景。Sentinel 也因此积累了大量的流量归整场景以及生产实践。 2018 年,Sentinel 开源,并持续演进。

【DUBBO】dubbo的LoadBalance接口

谁说我不能喝 提交于 2020-01-24 08:57:38
LoadBalance负载均衡, 负责从多个 Invokers中选出具体的一个Invoker用于本次调用,调用过程中包含了负载均衡的算法,调用失败后需要重新选择 --->类注解@SPI说明可以基于Dubbo的扩展机制进行自定义的负责均衡算法实现,默认是随机算法方法注解@Adaptive说明能够生成设配方法Select方法设配类通过url的参数选择具体的算法, 在从invokers集合中根据具体的算法选择一个invoker --->方法注解@Adaptive说明能够生成设配方法 Select方法设配类通过url的参数选择具体的算法, 在从invokers集合中根据具体的算法选择一个invoker 1. RandomLoadBalance: 随机访问策略,按权重设置随机概率,是默认策略 1)获取所有invokers的个数 2)遍历所有Invokers, 获取计算每个invokers的权重,并把权重累计加起来每相邻的两个invoker比较他们的权重是否一样,有一个不一样说明权重不均等 3)总权重大于零且权重不均等的情况下,按总权重获取随机数offset = random.netx(totalWeight);遍历invokers确定随机数offset落在哪个片段(invoker上) 4)权重相同或者总权重为0, 根据invokers个数均等选择invokers.get(random

搭建分布式环境:Dubbo+Zookeeper

假装没事ソ 提交于 2020-01-24 00:29:57
QUESTION:搭建分布式环境:Dubbo+Zookeeper? ANSWER: 一:官网下载Zookeeper 点击官网: Zookeeper ,进行下载。 下载完成,解压缩到文件。 二:配置启动Zookeeper 进入conf目录,复制zoo_sample.cfg一份zoo.cfg,修改配置文件。 # tickTime这个时间是作为zookeeper服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是说每个tickTime时间就会发送一个心跳。(以毫秒为单位) tickTime = 2000 # dataDir ZooKeeper的状态存储位置,看名字就知是数据目录。在你的系统中检查这个目录是否存在,如果不存在手动创建,并且给予可写权限。 dataDir = /path/to/zookeeper/data # 日志存放的位置 dataLogDir=/path/to/zookeeper/log # 这个端口就是客户端连接Zookeeper服务器的端口,Zookeeper会监听这个端口接受客户端的访问请求; clientPort = 2181 # initLimit这个配置项是用来配置zookeeper接受客户端(这里所说的客户端不是用户连接zookeeper服务器的客户端,而是zookeeper服务器集群中连接到leader的follower 服务器

Spring Cloud 与Dubbo

喜你入骨 提交于 2020-01-23 22:57:36
0.Spring Cloud是什么? 它是一个以Spring、Spring Boot为基础的微服务生态(或者说框架)。 1.Dubbo 和 Spring Cloud 的关系? Dubbo 是 SOA 时代的产物,它的关注点主要在于服务的调用,流 量分发、流量监控和熔断。而 Spring Cloud 诞生于微服务架构时 代,考虑的是微服务治理的方方面面,另外由于依托了Spring、 Spring Boot 的优势之上,两个框架在开始目标就不一致,Dubbo 定位服务治理、Spring Cloud 是一个生态。 2.Dubbo 和 Spring Cloud 的区别? ①协议区别:Dubbo 底层是使用 Netty 这样的 NIO 框架,是基于 TCP 协议传输的,配合以 Hession 序列化完成 RPC 通信。 而 SpringCloud 是基于 Http 协议+Rest 接口调用远程过程的通信, 相对来说,Http 请求会有更大的报文,占的带宽也会更多。但是 REST 相比 RPC 更为灵活,服务提供方和调用方的依赖只依靠一纸契 约,不存在代码级别的强依赖。 ②组件区别:由于Dubbo定位主要解决分布式调用,而Spring Cloud更全面,在网关、消息总线、分布式配置和数据流等方面都有设计,Dubbo这方面是缺失的。 3.服务注册和发现是什么意思?Spring Cloud