Dubbo

SpringCloud或者dubbo

限于喜欢 提交于 2020-02-28 18:58:43
以前的项目一直使用Dubbo,最近SpringCloud比较火,恰好这个时期比较特殊,就在家里仔细研究了一下SpringCloud,但是学习的过程中发现SpringCloud真的不一定适合所有人:主要和通讯协议有关,Springcloud使用HTTP的REST协议,Dubbo使用RPC调用。 1、对 性能要求比较高 的项目不建议使用SpringCloud【和Dubbo的比较中,性能相差至少一倍以上】 2、项目 单纯由Java项目构成 不建议使用SpringCloud【如果跨多种语言,使用Springcloud比较好,毕竟REST协议】 3、项目中要求 开发进度快 的【Dubbo只要定义一个接口就可以了,但是SpringCloud的REST协议方便的同时也是双刃剑,接口一致性比较难以控制】 SpringCloud的组件架构 Dubbo的框架 Dubbo和SpringCloud的性能比较 当然仁者见仁智者见智,你喜欢哪个就用哪个吧。毕竟黑猫白猫抓到老鼠就是好猫。 老板非要喜欢SpringCloud你用就是了。 来源: CSDN 作者: 风月无边 链接: https://blog.csdn.net/xzknet/article/details/104558112

架构师成长系列 | 从 2019 到 2020,Apache Dubbo 年度回顾与总结

馋奶兔 提交于 2020-02-28 18:42:02
作者 | 刘军(陆龟)Apache Dubbo PMC 本文整理自架构师成长系列 2 月 18 日直播课程。 关注“阿里巴巴云原生”公众号,回复 “218” ,即可获取对应直播回放链接及 PPT 下载链接。 导读 :Apache Dubbo 是一款开源的 RPC 框架,其提供了简单易用、高性能的 RPC 能力、灵活可控的扩展、强大的服务治理,目前已有 Java、Go、JS、Python 等多个语言支持;并且已经悄然衍进为 Cloud Native 基础设施。这一切成就都离不开 Dubbo 社区的建设,本文将由 Apache Dubbo PMC 刘军来介绍 Dubbo 社区在过去的一年取得的成绩及未来 Dubbo 社区的发展新规划。 非常感谢大家对 Dubbo 社区的关注,通过这篇文章我们将: 总结过去一年 Dubbo 社区取得的成绩,包括社区和框架演进两个方面; 展望未来 Dubbo 社区和框架的新的规划(roadmap)。 社区建设是推动 Dubbo 健康持续发展的一个非常重要的环节,我们需要与社区保持良性的互动、有活跃的贡献者、有积极的富有建设性的讨论,而整个 Dubbo 社区过去一年在这方面都做的不错;在框架演进上,我们主要发布了 2.7.0 - 2.7.5 共 6 个特性版本,功能层面涵盖编程模型、协议、服务治理、性能优化等多个方面;除了已经发布的功能外,我们在 Dubbo

微服务治理实践:服务查询

我是研究僧i 提交于 2020-02-28 17:06:18
前言 自从微服务架构变得火热以后,越来越多服务治理相关的名词被大家所熟知,例如:服务注册发现、负载均衡、容错等等,其中有一项能力,可以说是服务治理平台的刚需,却又很少被大家提及,也是这篇文章即将介绍的内容 -- 服务查询。 什么是服务?其实并没有严格的定义,但按照使用不同框架的习惯,我们可以大概归纳如下: 1、Dubbo 一类的服务框架,接口即服务。一般以服务名、版本号、分组这样的三元组作为唯一标识 2、SpringCloud 一类的微服务,应用即服务。一般以应用名称作为唯一标识 服务查询开源实现 开源框架对服务查询的支持主要有 Apache Dubbo 提供的 Dubbo Admin、Nacos 提供的 Nacos 控制台 。首先介绍这两种开源实现,再介绍 EDAS 对服务查询的延伸。 服务查询主要包括:服务列表查询、服务详情查询、服务提供者列表、服务消费者列表、服务元数据等,下面主要展示服务列表查询。 Dubbo Admin Dubbo Admin 支持 2.7 版本以上的 Dubbo 应用,提供了 Dubbo 基本的服务治理能力,其中就包括了服务查询。 Dubbo Admin 默认支持 Zookeeper 注册中心,但理论上可以支持任意注册中心,只需要引入对应的注册中心扩展即可。由于 Zookeeper 并不支持模糊查询的需求,Dubbo Admin 采取了同步的策略,即在

[dubbo 源码之 ]1. 服务提供方如何发布服务

北城余情 提交于 2020-02-28 16:12:29
服务发布 启动流程 1.ServiceConfig#export 服务提供方在启动部署时,dubbo会调用 ServiceConfig#export 来激活服务发布流程,如下所示: Java API: // 1. 创建ServiceConfig实例 ServiceConfig<igreetingservice> serviceConfig = new ServiceConfig<>(); // 2. 设置应用程序配置 serviceConfig.setApplication(new ApplicationConfig("deep-in-dubbo-first-provider")); // 3. 设置注册中心 RegistryConfig registryConfig = new RegistryConfig(" zookeeper://127.0.0.1:2181/ "); serviceConfig.setRegistry(registryConfig); // 4. 设置接口和实现类 // 5. 设置服务分组和版本 // dubbo中,服务接口+服务分组+服务版本 唯一的确定一个服务,同一个接口可以有不同版本,方便维护升级 serviceConfig.setInterface(IGreetingService.class); serviceConfig.setRef(new

[dubbo 源码之 ]1. 服务提供方如何发布服务

陌路散爱 提交于 2020-02-28 16:08:33
服务发布 启动流程 1.ServiceConfig#export 服务提供方在启动部署时,dubbo会调用 ServiceConfig#export 来激活服务发布流程,如下所示: Java API: // 1. 创建ServiceConfig实例 ServiceConfig<IGreetingService> serviceConfig = new ServiceConfig<>(); // 2. 设置应用程序配置 serviceConfig.setApplication(new ApplicationConfig("deep-in-dubbo-first-provider")); // 3. 设置注册中心 RegistryConfig registryConfig = new RegistryConfig("zookeeper://127.0.0.1:2181/"); serviceConfig.setRegistry(registryConfig); // 4. 设置接口和实现类 // 5. 设置服务分组和版本 // dubbo中,服务接口+服务分组+服务版本 唯一的确定一个服务,同一个接口可以有不同版本,方便维护升级 serviceConfig.setInterface(IGreetingService.class); serviceConfig.setRef(new

架构师成长系列 | 从 2019 到 2020,Apache Dubbo 年度回顾与总结

夙愿已清 提交于 2020-02-28 14:10:03
作者 | 刘军(陆龟)Apache Dubbo PMC 本文整理自架构师成长系列 2 月 18 日直播课程。 关注“阿里巴巴云原生”公众号,回复 “218” ,即可获取对应直播回放链接及 PPT 下载链接。 导读 :Apache Dubbo 是一款开源的 RPC 框架,其提供了简单易用、高性能的 RPC 能力、灵活可控的扩展、强大的服务治理,目前已有 Java、Go、JS、Python 等多个语言支持;并且已经悄然衍进为 Cloud Native 基础设施。这一切成就都离不开 Dubbo 社区的建设,本文将由 Apache Dubbo PMC 刘军来介绍 Dubbo 社区在过去的一年取得的成绩及未来 Dubbo 社区的发展新规划。 非常感谢大家对 Dubbo 社区的关注,通过这篇文章我们将: 总结过去一年 Dubbo 社区取得的成绩,包括社区和框架演进两个方面; 展望未来 Dubbo 社区和框架的新的规划(roadmap)。 社区建设是推动 Dubbo 健康持续发展的一个非常重要的环节,我们需要与社区保持良性的互动、有活跃的贡献者、有积极的富有建设性的讨论,而整个 Dubbo 社区过去一年在这方面都做的不错;在框架演进上,我们主要发布了 2.7.0 - 2.7.5 共 6 个特性版本,功能层面涵盖编程模型、协议、服务治理、性能优化等多个方面;除了已经发布的功能外,我们在 Dubbo

项目异常Caused by: java.util.zip.ZipException: invalid LOC header (bad signature)

与世无争的帅哥 提交于 2020-02-28 12:45:51
部署项目的时候,报了这个错误,后来后面运行其他项目的时候,发现其他项目能够正常运行,则说明tomcat没有问题。 这个错误后面提示的是spring的几个jar包无法正常加载,后来想了下应该是jar包冲突,点击打开pom.xml,打开dependency hierarchy视图,查看每一个jar包的依赖项,发现dubbo会自动引入spring几个jar包依赖,而我之前使用的时spring4.3.0版本,产生了冲突导致异常发生,修改成和dubbo一个版本即可,修改后如下图所示。引入jar包是一定要注意其所依赖的其他jar包,防止冲突 还有一种可能,就是jar包版本不匹配的问题 来源: oschina 链接: https://my.oschina.net/u/3352298/blog/3070858

dubbo+zookeeper遇到的坑

爱⌒轻易说出口 提交于 2020-02-28 11:07:12
1 能访问dubbo-admin页面但是无法获取项目连接 即服务未注册上 好像重新配置了zoo.cfg就行了? 2.第一次请求的时候因为zookeeper要注册自己 所以开始的时候还是注册(连接)失败 第二个项目就没这个问题。。。 3.在调用dubbo的interface层的 service方法 而这个service方法里用到本地的service方法 如userService.login() 但是发现Userserviceimpl没继承Userservice 4.没配置application.yml里的 关于redis配置文件 (默认是localhost 并且会存在本地的redis里) 也可能是因为没开redis 来源: CSDN 作者: c22cxz 链接: https://blog.csdn.net/c22cxz/article/details/104550468

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

末鹿安然 提交于 2020-02-28 09:58:02
个人博客地址 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金三银四BATJ面试试题汇总之腾讯 纯干货!

喜夏-厌秋 提交于 2020-02-28 06:43:45
2020年,跳槽面试就靠它们了,现在每天刷题,看源码文档,最近看的这些题目还是有些难度,有一部分我都要好好想一想才能回答出来,或者回答不出来,总的来说知识宽度够了深度还跟不上。所以要重点突破下底层的东西。 腾讯的Java面试题: TCP和UDP的区别,TCP为什么是三次握手,不是两次。 说说Java中异常的分类 Dubbo面试题: dubbo和dubbox之间的区别? 一般使用什么注册中心?还有别的选择吗? Java List面试题: ArrayList和LinkedList的区别?分别用在什么场景? 怎么给List排序? Java Map集合面试题: Collection集合接口和Map接口有什么关系? 你都知道哪些常用的Map集合? Spring面试题: 什么是Spring的内部bean? 为什么说Spring是一个容器? Spring框架的事务管理有哪些优点? 使用Spring框架的好处是什么? Zookeeper面试题: zookeeper是什么框架? JVM面试题: 说说Java虚拟机的生命周期及体系结构 Java 是如何实现跨平台的? 什么是JVM ? JVM 由哪些部分组成? 类加载器是有了解吗? Java 虚拟机是如何判定两个 Java 类是相同的? 类似-Xms、-Xmn这些参数的含义: 我们为什么要使用线程池?核心线程池内部实现了解吗? 解释AOP模块