Dubbo

Dubbo一简介

谁说我不能喝 提交于 2020-02-06 17:04:02
简介 Dubbo是阿里巴巴公司开源的一个服务框架,可以进行服务的管理,使得应用可通过高性能的RPC(remote procedure call,远程调用),实现服务的输入输出功能。 可以和spring框架无缝集成。 官网 github代码地址 ,在分支那里选择tag看最新版本。 用户手册 架构 首先有很多个provider服务的提供方,它们需要先到zookeeper中注册。 然后注册中心发现有服务,就会去通知消费者,消费者根据暴露的接口去调用服务提供方。 当然,服务是运行在容器里的。 全程都有监控在统计服务被调用的次数和时间。 参考视频:一头扎进dubbo第一讲 来源: CSDN 作者: haienenen 链接: https://blog.csdn.net/jiachunchun/article/details/104192804

Dubbo三发布dubbo服务

半世苍凉 提交于 2020-02-06 17:00:44
首先把github上的源码下为zip包,这里我们选2.6.0版本。 我们准备仿写dubbo-demo/dubbo-demo-provider,这个是服务的提供方。 用eclipse开发,新建一个其他->maven项目,右键项目->构建项目路径,把原本为1.5的JRE移除,然后add library,选择jre 系统库,选中工作空间缺省JRE(1.8jre)。 额然后添加依赖的时候受阻了,因为没有在eclipse配置好maven,所以依赖下载失败。我们转到idea开发。 pom:参考官方"D:\ideaProjects\dubbo-dubbo-2.6.0\dubbo-demo\dubbo-demo-provider"代码。 com.alibaba dubbo 2.6.0 com.101tec zkclient 0.10 org.apache.curator curator-framework 4.0.1 com.alibaba fastjson 1.2.46 log4j log4j 1.2.17 org.slf4j slf4j-api 1.7.25 org.apache.commons commons-lang3 3.4 io.netty netty-all 4.0.35.Final 项目如下: 我们新建一个接口和接口实现类,其中只有一个方法,返回一个字符串而已。 然后到"D:

dubbo SPI

你离开我真会死。 提交于 2020-02-05 17:06:44
RMI rmi clinet: public class RmiClient { public static void main(String[] args) throws RemoteException, NotBoundException, MalformedURLException { String remoteAddr = "rmi://localhost:8080/UserService"; UserService userService = (UserService) Naming.lookup(remoteAddr); System.out.println(String.format("引用远程服务成功,当前主机:%s ", ManagementFactory.getRuntimeMXBean().getName())); String response = userService.getName(11); System.out.println("=======> " + response + " <======="); } } /** * @author Tommy * Created by Tommy on 2019/12/1 **/ public class RmiRegister { public static void main(String[] args)

Dubbo快速入门

北城以北 提交于 2020-02-05 14:14:37
Dubbo是一个分布式服务框架,既然是服务,必然存在服务提供者与服务调用者。 接下来,我们先编写一个服务提供者。工程仍然使用上篇文章spring4入门中的工程。 我们在pom.xml中加入dubbo的依赖 <dependency> <groupId>com.alibaba</groupId> <artifactId>dubbo</artifactId> <version>2.5.3</version> </dependency> 编写如下类: package com.mm.service; public interface WeatherService { public String getMessage(String city); } package com.mm.service.impl; import com.mm.service.WeatherService; public class WeatherServiceImpl implements WeatherService{ @Override public String getMessage(String city) { return city+"天气晴朗,局部有阵雨"; } } 新建一个spring配置文件(provider.xml) <?xml version="1.0" encoding="UTF-8"?>

Spring整合Dubbo框架

房东的猫 提交于 2020-02-05 14:06:47
Dubbo作为一个RPC框架,其最核心的功能就是要实现跨网络的远程调用。演示过程创建两个小工程,一个作为服务的提供者,一个作为服务的消费者。通过Dubbo来实现服务消费者远程调用服务提供者的方法。 dubbo 的使用需要一个注册中心,这里以Zookeeper为例来演示 1.Dubbo架构 Dubbo架构图(Dubbo官方提供)如下: 节点角色说明: 节点 角色名称 Provider 暴露服务的服务提供方 Consumer 调用远程服务的服务消费方 Registry 服务注册与发现的注册中心 Monitor 统计服务的调用次数和调用时间的监控中心 Container 服务运行容器 调用关系说明 : 服务容器负责启动,加载,运行服务提供者。 服务提供者在启动时,向注册中心注册自己提供的服务。 服务消费者在启动时,向注册中心订阅自己所需的服务。 注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者。 服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用。 服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心。 2.服务提供者开发 (1) 创建maven工程(打包方式为war)dubbodemo_provider,添加依赖pom.xml代码如下 <?xml

每日一技|巧用 Telnet 调试 Dubbo 服务

徘徊边缘 提交于 2020-02-05 13:16:39
个人博客地址 studyidea.cn ,点击查看更多原创文章 0x00. 前言 想象这样一个场景,线上某个服务突发异常,导致上游服务调用异常,数据处于中间状态。服务恢复之后,我们需要修复这笔数据至正常状态,怎么办? 如果仅是简单的服务,涉及少量数据变更,我们可以直接使用 SQL ,变更数据状态。但是有些情况下,服务需要联动调用其他系统,变更其他系统数据。这种情况下,变更数据非常麻烦,需要与其他系统开发沟通,整理数据,一起变更。如果涉及还涉及外部系统,数据变更几乎玩不下去了。 如果服务接口能重试,重新调用,那么数据变更就交给服务自动去调用即可。这个过程我们需要组装参数,然后调用服务接口。如果你的服务采用 Http 接口,可以使用 Curl 等命令重试。如果你的服务使用 Dubbo ,这就需要使用到 Telnet 命令。 0x01. telnet 进入 Dubbo 调试 通过以下指令,连接 Dubbo 服务。 telnet IP PORT #例如: telnet localhost 20880 Dubbo 版本需要大于 2.0.5,远程调用需要注意网络是否可用 连上之后,按下 回车键 将会进入以下页面: 这个界面与 Shell 类似,需要我们输入相关命令。例如: 命令参考手册: http://dubbo.apache.org/zh-cn/docs/user/references

每日一技|巧用 Telnet 调试 Dubbo 服务

浪子不回头ぞ 提交于 2020-02-05 11:51:04
个人博客地址 studyidea.cn ,点击查看更多原创文章 0x00. 前言 想象这样一个场景,线上某个服务突发异常,导致上游服务调用异常,数据处于中间状态。服务恢复之后,我们需要修复这笔数据至正常状态,怎么办? 如果仅是简单的服务,涉及少量数据变更,我们可以直接使用 SQL ,变更数据状态。但是有些情况下,服务需要联动调用其他系统,变更其他系统数据。这种情况下,变更数据非常麻烦,需要与其他系统开发沟通,整理数据,一起变更。如果涉及还涉及外部系统,数据变更几乎玩不下去了。 如果服务接口能重试,重新调用,那么数据变更就交给服务自动去调用即可。这个过程我们需要组装参数,然后调用服务接口。如果你的服务采用 Http 接口,可以使用 Curl 等命令重试。如果你的服务使用 Dubbo ,这就需要使用到 Telnet 命令。 0x01. telnet 进入 Dubbo 调试 通过以下指令,连接 Dubbo 服务。 telnet IP PORT #例如: telnet localhost 20880 Dubbo 版本需要大于 2.0.5,远程调用需要注意网络是否可用 连上之后,按下 回车键 将会进入以下页面: 这个界面与 Shell 类似,需要我们输入相关命令。例如: 命令参考手册: http://dubbo.apache.org/zh-cn/docs/user/references

【超实用】面对枯燥的源码,如何才能坚持看下去?

一世执手 提交于 2020-02-05 05:20:07
一个软件开发人员,工作到了一定的年限(一般是3、4年左右),如果他还没学会阅读源码,那么他就会遇到瓶颈。因为到了这个时候的开发,他应该不仅仅只会做那些 CURD 的业务逻辑,而应该会根据公司的实际情况去写框架。而基本上没有谁能像天才一样从零写出一个框架,很多人写框架其实都是从模仿开始的。而你要模仿,那么你首先得看得懂框架源码才行。所以说阅读源码才显得那么重要。 我在工作一两年的时候有尝试去看过 JDK 的源码,那时候感觉就跟看天书一样,看一点都觉得痛苦。一直到工作三年左右,因为同事都在看源码,我也开始看一些源码。我看的第一个框架的源码是 dubbo,虽然说没有完全搞懂它。但是通过阅读 dubbo 源码,我弄懂了 JDK 的 SPI 机制,知道 SPI 在框架开发中的作用。一直到最近阅读公司的一个网关框架,我才慢慢有一点阅读源码的经验和套路。正好趁热打铁,把这些经验写下来,希望你们也能早日踏上源码阅读之路。 搜索网上资料 阅读一个框架的源码,最基础的操作肯定是扫一遍网上的各种分析文章。通过这个操作,你可以对这个框架有个大致的了解。站在巨人的肩膀上,少走许多弯路。但如果你看的项目是公司内部的框架,那么你只能找公司内部的文档了,更甚者,有些连文档都没有。那么你可以略过这一步。 扫一遍源码 当你拿到框架的源码的时候,你可以大致把源码的每个包,以及每个包下面的文件扫读一遍

面试123

丶灬走出姿态 提交于 2020-02-04 21:11:31
dubbo与springcloud dubbo是RPC框架,长连接dubbo协议netty,并发效率高,开发难度大,组件少,需要自己实现fileter扩展功能,注册中心zk、redis 来源: CSDN 作者: 开心的小尾叭 链接: https://blog.csdn.net/weixin_39406672/article/details/104173208