Dubbo

dubbo升级2.7.4.1平滑迁移到nacos

ε祈祈猫儿з 提交于 2020-04-05 20:52:41
前言 dubbo是一款非常优秀的服务治理型RPC框架,dubbo的优秀在于,庞大的架构体系、精湛的模块设计、灵活的SPI设计、丰富的组件实现,博主做微服务技术选型考察dubbo时,非常惊叹在那个年代别人就已经能够产出如此优秀的项目,以至于后面每逢别人说想要学习架构设计时,我都会推荐他读读dubbo的代码,学习下dubbo的架构设计原则。常说dubbo不仅仅是一款RPC框架,是因为他的服务治理特性相对于RPC通讯来说更加的突出,这个特性让我在2017年选型的时候果断选择了他,那个时候dubbo官方还没产出spring boot starter,而我们的项目大部分完成了从spring mvc改造到spring boot项目。为了简化开发集成dubbo组件,我们基于dubbo2.5.6版本自研了一套spring-boot-dubbo-starter组件,并且自定义dubbo服务暴露和引入的注解, 自定义了dubbo的配置装载方式。当时没有专业的运维、搭建高可用zk也费资源,为了简单方便少维护一个组件、当时我们直接选了redis(阿里云高可用实例)作为dubbo的注册中心。以上就是我们这次升级dubbo的背景情况 为什么升级到2.7.4.1? 从2.5.6到2.7.x,中间修复非常多的bug,带来了非常多的新特性。 2.5.x版本不在作为一个保留维护的版本,目前主力维护的就2.6.x和2

Windows下搭建Dubbo+zookeeper环境

喜你入骨 提交于 2020-04-05 19:03:03
1.下载好zookeeper3.4.5或者其他版本,将conf目录下的zoo_sample配置文件改成zoo.cfg即可。 zookeeper在windows下双击即可启动 bin/zkServer.cmd 2.github上下载 dubbo-admin 3.解压dubbo-admin 1. 将项目进行打包,这是一个springboot项目 E:\Develop03\Dubbo\dubbo-admin-master\dubbo-admin cmd 命令 2. # 打包成功 BUILD SUCCESS mvn package 3. 运行jar包,jar所在位置 cmd【启动之前确保zookeeper启动】 E:\Develop03\Dubbo\dubbo-admin-master\dubbo-admin\target java -jar dubbo-admin-0.0.1-SNAPSHOT.jar 4.访问127.0.0.1:7001 root root 5.系统管理-->系统状态 可以查看zookeeper注册中心的状态【有错误,重启zookeeper】 4.搭建成功! 来源: oschina 链接: https://my.oschina.net/wyn365/blog/3216239

dubbo解析扣了2张图

£可爱£侵袭症+ 提交于 2020-04-05 19:02:37
netty是全双工的工作模式 dubbo异步转同步。 执行流程: consumer 发送消息给provider,provider接受到消息,provider返回给consumer消息,consumer接受到消息。 实现原理: consumer 发送消息给provider,这时候consumer保存全局唯一id,用future实现等待结果。 consumer接受到消息后加锁,锁里边future.get取得结果。 因为netty是全双工,我怎么知道那么多线程互相发消息谁发给谁的, 这个时候用consumer 发送消息给provider的时候保存的全局唯一id,如果拿到后比对无误,删除这个id,返回结果给consumer。 来源: oschina 链接: https://my.oschina.net/u/3730149/blog/3220742

构建安全可靠的微服务 | Nacos 在颜铺 SaaS 平台的应用实践

最后都变了- 提交于 2020-04-05 18:56:52
作者 | 殷铭 颜铺科技架构师 本文整理自架构师成长系列 3 月 19 日直播课程。 关注“阿里巴巴云原生”公众号,回复 “319” ,即可获取对应直播回放链接及 PPT 下载链接。 **导读:**颜铺科技因美业⽽⽣,“颜铺专家”是一款专为美业商家打造的 SaaS 平台,为了能够给商户提供更加安全、稳定、高效的平台,我们在技术方面做了很多尝试,经过几次演进,使系统变得更加稳定可靠。今天主要和大家分享一下颜铺科技的架构演进,以及 Nacos 在颜铺的应用实践。 单体应用时代 上图是我们单体服务时的架构图,分为会员、订单、门店等很多模块,看架构图似乎还算清晰,但是真正看到包结构的时候,真的令人头秃!改起代码特别头痛。单体服务带来的几个挑战: **发布周期慢:**虽然当时业务量不算大,但是代码量很大,业务迭代牵一发而动全身,每次发布需要对整个服务进行重新编译打包部署。特别是最开始在没有构建工具的时候,发布过程需要一堆的命令,总有一种 **“一顿操作猛如虎,定睛一看原地杵” **的感觉。 **协同效率低:**合并冲突多,有时你在前面开心地写代码,而别人在解决冲突时,可能也在开心地删着你的代码,增加了很多的沟通成本。 **稳定性差:**当服务出现故障时,可能会导致整个系统不可用,并且系统不易扩容,当商户搞促销时,可能活动结束了,服务器还没有扩容完成。 **性能差:**因为在单体服务内

Dubbo 源码分析

∥☆過路亽.° 提交于 2020-04-05 18:13:49
Dubbo SPI 系列文章 浅谈 Java SPI Dubbo SPI 使用方法(一)- 扩展点自动包装 Dubbo SPI 使用方法(二)- 扩展点自适应 Dubbo SPI 使用方法(三)- 扩展点自动装配 Dubbo 源码分析 - Dubbo SPI 在 Protocol 层 的应用 Dubbo 源码分析 - Dubbo SPI 通过 getExtension 获取扩展点实现类对象 前言 上一篇文章 Dubbo 源码分析 - Dubbo SPI 获取扩展点实现类对象 分析了 Dubbo SPI 通过 getExtension(String name) 如何获取扩展点实现类对象, 本文接着通过剖析 Dubbo 源码的方式看一下 getAdaptiveExtension() 方法是如何获取自适应扩展点实例的. 正文 1. ExtensionLoader 部分属性 // 1. 缓存的自适应扩展点实例 private final Holder<Object> cachedAdaptiveInstance = new Holder<>(); // 2. 自适应扩展点实现类 private volatile Class<?> cachedAdaptiveClass = null; 2. ExtensionLoader#getAdaptiveExtension() 从自适应扩展点实例

dubbo升级2.7.4.1平滑迁移到nacos

故事扮演 提交于 2020-04-05 17:16:29
dubbo是一款非常优秀的服务治理型RPC框架,dubbo的优秀在于,庞大的架构体系、精湛的模块设计、灵活的SPI设计、丰富的组件实现,博主做微服务技术选型考察dubbo时,非常惊叹在那个年代别人就已经能够产出如此优秀的项目,以至于后面每逢别人说想要学习架构设计时,我都会推荐他读读dubbo的代码,学习下dubbo的架构设计原则。常说dubbo不仅仅是一款RPC框架,是因为他的服务治理特性相对于RPC通讯来说更加的突出,这个特性让我在2017年选型的时候果断选择了他,那个时候dubbo官方还没产出spring boot starter,而我们的项目大部分完成了从spring mvc改造到spring boot项目。为了简化开发集成dubbo组件,我们基于dubbo2.5.6版本自研了一套spring-boot-dubbo-starter组件,并且自定义dubbo服务暴露和引入的注解, 自定义了dubbo的配置装载方式。当时没有专业的运维、搭建高可用zk也费资源,为了简单方便少维护一个组件、当时我们直接选了redis(阿里云高可用实例)作为dubbo的注册中心。以上就是我们这次升级dubbo的背景情况 为什么升级到2.7.4.1? 从2.5.6到2.7.x,中间修复非常多的bug,带来了非常多的新特性。 2.5.x版本不在作为一个保留维护的版本,目前主力维护的就2.6.x和2.7

Dubbo进阶--zookeeper注册中心

岁酱吖の 提交于 2020-04-02 07:37:55
上篇已经介绍了Dubbo的基本概念,我们知道了Dubbo提供方会将自己的服务注册到注册中心,使服务暴露出来,实现透明化。这节就介绍一下注册中心的搭建 目前常用的注册中心主要有四种,如下: 通过上述四种方法的对比,我选择了第一种zookeeper注册中心。 搭建环境: Linux:CentOS-7.0-1406-x86_64 jdk:jdk-7u76-linux-x64.tar.gz zookeeper:zookeeper-3.4.6.tar.gz 搭建步骤:(jdk环境不再叙述) 1、修改操作系统的/etc/hosts 文件中添加: # zookeeper servers 192.168.91.130 dubbo-zookeeper 注:此处是为了映射自己当前的ip地址,也可不进行设置。(建议设置,这样以后如果ip地址更换之后,只需要修改此文件即可,其他的依赖项不需要修改) 2、上传并解压zookeeper安装包,我的上传路径为/usr/local/dubbo-files 命令:# tar -zxvf zookeeper-3.4.6.tar.gz –C /指定目录 $ tar –zxvf zookeeper-3.4.6.tar.gz –C /usr/local/zookeeper 3、在/usr/local/zookeeper目录下创建以下目录: $ mkdir data $

dubbo入门之helloWorld

百般思念 提交于 2020-03-30 05:14:52
dubbo官方文档: http://dubbo.apache.org/zh-cn/docs/user/quick-start.html 基于spring coloud的demo: http://start.dubbo.io dubbo的入门实例还是不够友好啊,我折腾了半天才搞定这个入门demo,废话不说,上代码 整体的项目结构如下: 为什么有三个工程呢? 因为client作为客户端调用服务端其实是调用interface接口,而服务端实现了interface接口,所以才能调用成功,所以打包的时候要把interface单独打成一个包,client和server都需要依赖这个包。 整个流程很简单,就是启动zookeeper,然后先启动服务端,再启动客户端即可,代码如下: interface模块 : HelloInterface.java: package com.sawshaw.dubbo_interface; public interface HelloInterface { public String sayHello(String name); } server模块 :   HelloServiceImpl.java: package com.sawshaw.dubbo_server; import com.sawshaw.dubbo_interface

【Other】最近在研究的, Java/Springboot/RPC/JPA等

可紊 提交于 2020-03-29 07:13:10
Dubbo-大波-服务化框架 dubbo_百度搜索 Dubbo与Zookeeper、SpringMVC整合和使用(负载均衡、容错) - 好库文摘 User Guide-zh - Dubbo - Alibaba Open Sesame User Guide-zh - Dubbo - Alibaba Open Sesame 简单之美 | Dubbo架构设计详解 DUBBO Hprose RPC框架 java rpc_百度搜索 谁能用通俗的语言解释一下什么是 RPC 框架? - 知乎 Java程序员的现代RPC指南 - 西代零零发 - 博客频道 - CSDN.NET Hprose_百度搜索 Hprose Hprose Home Hprose首页、文档和下载 - 高性能跨语言 RPC - 开源中国社区 项目 - 码云 - 开源中国 hprose/hprose-doc: Hprose 文档汇总 hprose_百度百科 thrift 和 Hprose有什么区别吗?_百度知道 hprose具体用途案例是什么,看到这个东西但是想不出来具体应用实例和优势? - 知乎 Hprose使用经历 - xiang_quan123的专栏 - 博客频道 - CSDN.NET Hprose 2.0.0 for HTML5 发布,高性能跨语言RPC - 开源中国社区 为什么采用hprosehttpclient

了解一下项目中所用到的开发工具(扫盲篇)

╄→尐↘猪︶ㄣ 提交于 2020-03-28 18:20:15
最近做的系统中有运用到类似这些页面化的工具kibana、rocketmq,swagger,quickBI,ES,Flowable,Dubbo admin,Rancher,xxjob,有很多新奇的东西不清楚怎么办,当然问度娘 --kibana   我在运用kibana过程中最多的是查报错日志,通过env,project,x_path和crid进行查询,定位报错日志。 实际百度到的作用不仅仅我所了解的功能 Kibana 是为 Elasticsearch设计的开源分析和可视化平台。你可以使用 Kibana 来搜索,查看存储在 Elasticsearch 索引中的数据并与之交互。你可以很容易实现高级的数据分析和可视化,以图标的形式展现出来。 Kibana 的使用场景,应该集中在两方面: 实时监控 通过 histogram 面板,配合不同条件的多个 queries 可以对一个事件走很多个维度组合出不同的时间序列走势。时间序列数据是最常见的监控报警了。 问题分析 关于 elk 的用途,可以参照其对应的商业产品 splunk 的场景:使用 Splunk 的意义在于使信息收集和处理智能化。而其操作智能化表现在: 搜索,通过下钻数据排查问题,通过分析根本原因来解决问题; 实时可见性,可以将对系统的检测和警报结合在一起,便于跟踪 SLA 和性能问题; 历史分析,可以从中找出趋势和历史模式