Dubbo

一不小心实现了RPC

左心房为你撑大大i 提交于 2020-04-28 09:14:49
前言 随着最近关注 cim 项目的人越发增多,导致提的问题以及 Bug 也在增加,在修复问题的过程中难免代码洁癖又上来了。 看着一两年前写的东西总是怀疑这真的是出自自己手里嘛?有些地方实在忍不住了便开始了漫漫重构之路。 前后对比 在开始之前先简单介绍一下 cim 这个项目,下面是它的架构图: 简单来说就是一个 IM 即时通讯系统,主要有以下部分组成: IM-server 自然就是服务端了,用于和客户端保持长连接。 IM-client 客户端,可以简单认为是类似于的 QQ 这样的客户端工具;当然功能肯定没那么丰富,只提供了一些简单消息发送、接收的功能。 Route 路由服务,主要用于客户端鉴权、消息的转发等;提供一些 http 接口,可以用于查看系统状态、在线人数等功能。 当然服务端、路由都可以水平扩展。 这是一个消息发送的流程图,假设现在部署了两个服务端 A、B 和一个路由服务;其中 ClientA 和 ClientB 分别和服务端 A、B 保持了长连接。 当 ClientA 向 ClientB 发送一个 hello world 时,整个的消息流转如图所示: 先通过 http 将消息发送到 Route 服务。 路由服务得知 ClientB 是连接在 ServerB 上;于是再通过 http 将消息发送给 ServerB 。 最终 ServerB 将消息通过与 ClientB

携程的 Dubbo 之路,值得学习!

杀马特。学长 韩版系。学妹 提交于 2020-04-28 09:13:38
以下文章来源于阿里巴巴中间件 ,作者董艺荃 注:本篇文章整理自董艺荃在 Dubbo 社区开发者日上海站的演讲。 1、缘起 携程当初为什么要引入 Dubbo 呢?实际上从 2013 年底起,携程内主要使用的就是基于 HTTP 协议的 SOA 微服务框架。这个框架是携程内部自行研发的,整体架构在这近6年中没有进行大的重构。 受到当初设计的限制,框架本身的扩展性不是很好,使得用户要想自己扩展一些功能就会比较困难。另外,由于 HTTP 协议一个连接同时只能处理一个请求。在高并发的情况下,服务端的连接数和线程池等资源都会比较紧张,影响到请求处理的性能。 而 Dubbo 作为一个高性能的 RPC 框架,不仅是一款业界知名的开源产品,它整体优秀的架构设计和数据传输方式也可以解决上面提到的这些问题。正好在 2017 年下半年,阿里宣布重启维护 Dubbo 。基于这些原因,我们团队决定把 Dubbo 引入携程。 2、Dubbo 落地第一步 要在公司落地 Dubbo 这个新服务框架,第一步就是解决服务治理和监控这两个问题。 服务治理 在服务治理这方面,携程现有的 SOA 框架已经有了一套完整的服务注册中心和服务治理系统。对于服务注册中心,大家比较常用的可能是 Apache Zookeeper 。而我们使用的是参考 Netflix 开源的 Eureka 自行研发的注册中心 Artemis 。

dubbo-admin 编译后jar

吃可爱长大的小学妹 提交于 2020-04-28 08:31:50
https://github.com/apache/dubbo-admin 出现错误: Failed to execute goal com.github.eirslett:frontend-maven-plugin:1.6:install-node-and-npm (install node and npm) on project dubbo-admin-ui: Could not extract the Node archive: Could not extract archive: 'D:\DevTools\myRepository\com\github\eirslett\node\ 然后进入dubbo-admin-ui的控制界面执行 npm install 还出现问题: 尝试 https://nodejs.org/dist/v9.11.1/node-v9.11.1-win-x64.zip 自己下载 放到maven路径 问题 得到解决 mvn clean package -Dmaven.test.skip= true 来源: oschina 链接: https://my.oschina.net/u/4413367/blog/4255753

源码分析Dubbo序列化-源码分析kryo序列化实现原理

删除回忆录丶 提交于 2020-04-27 17:53:52
云栖号资讯:【 点击查看更多行业资讯 】 在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 本文主要梳理 Kryo 序列化基本实现。重点剖析 Kryo # writeClassAndObject、Kryo # readClassAndObject 方法。 1、源码分析Kryo#writeClassAndObject public void writeClassAndObject (Output output, Object object) { if (output == null) throw new IllegalArgumentException("output cannot be null."); beginObject(); // @1 try { if (object == null) { writeClass(output, null); // @2 return; } Registration registration = writeClass(output, object.getClass()); // @3 if (references && writeReferenceOrNull(output, object, false)) { // @4 registration.getSerializer().setGenerics(this, null)

【Dubbo】Dubbo 接口是什么? 与http 接口有什么区别?

百般思念 提交于 2020-04-27 15:24:15
面试的时候会被问到 除了http https 请求外 有接触了解到其他的接口么? 一,什么是Dubbo 接口 Dubbo 接口是阿里巴巴开源的致力于提供高性能和透明化的RPC远程服务调用方案 ,以及SOA服务治理方案,dubbo框架告别了传统的web service的服务模式,进而改用provider和consumer模式进行服务。为什么是高性能的呢?可以在某个服务器集群中提供单一专注的服务,这样不与其他服务混杂,同时dubbo接口有SOA调度通过监控每台服务器而实现负载均衡。consumer端无需关注provider端如何实现,只需在注册中心订阅即可到相应服务器请求服务,这样就实现了高性能和透明化。说到底, Dubbo接口就是一个分布式服务框架。 二、为什么要用Dubbo 接口 官方文档是这么说的: “随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对, 分布式服务架构 以及流动计算架构势在必行,亟需一个治理系统确保架构有条不紊的演进 三、Dubbo 接口 与http 接口有什么区别? 1、协议层区别 HTTP ,HTTPS 使用的是 应用层协议 应用层协议:定义了用于在网络中进行通信和传输数据的接口 DUBBO接口使用的是 TCP/IP是传输层协议 传输层协议:管理着网络中的端到端的数据传输; 因此要比 HTTP协议快 2、socket 层区别

此刻你还在为跳槽而纠结、烦心吗?这篇1000道BATJava面试题分享你,看你掌握多少,有无资本跳槽

≡放荡痞女 提交于 2020-04-26 16:12:10
前言唠叨唠叨: 近段时间总是有人私信我说,现在适合裸辞吗,公司待不下去了....... 我.......................懂我这欲言又止的意思吧!!!!! 兄弟我只想说,今年啥情况啊,外面很多人找不到工作,你还想着裸辞,珍惜 这还真是应验了我们近期讨论的那句话:“上班的人不想上班,没工作的想上班” 当然如果发现公司形势不好,那你也确实可以考虑下. 但是你得具备以下条件: 具备很强的专业知识,牛逼,有信心快速找到下一家适合你的公司. 然后有一定存款,可以保证当下辞职后,生活方面不愁 当然学习是很重要的,不努力提升自己,加强自己的专业知识,后面就算是跳槽成功也是很容 易被PASS掉,现实是残酷的,可千万不要因为找到新工作就放松警惕,做咸鱼. 那今天给你们分享这千道面试题,希望在找工作或者是想要跳槽的朋友都可以刷刷,准备充 足,随时应战,顺利拿offer !!!! 面试题 文末福利,如果觉得文章对你有帮助的话,记得点赞、关注、评论给个支持.谢谢 MyBatis 面试题 什么是 Mybatis? Mybaits 的优点: MyBatis 框架的缺点: MyBatis 框架适用场合: MyBatis 与 Hibernate 有哪些不同? {}和${}的区别是什么? 当实体类中的属性名和表中的字段名不一样 ,怎么办 ? 模糊查询 like 语句该怎么写? 通常一个 Xml

3 月,跳不动了?

ⅰ亾dé卋堺 提交于 2020-04-26 12:07:56
不少单位已经开始复工了,跳槽季已经开始。虽说大多数互联网企业,像腾讯、字节跳动等,都已经开通远程面试环节,而且薪资有走高的趋势。但据目前看,面试难度大了许多,甚至有朋友面试后怀疑:自己真的落伍了? 比如,面试高级开发岗位时,面试官不仅考察基础能力,更会重点考察高并发、分布式等架构相关的技术背后的思考逻辑,比如:微服务,负载均衡,Redis,RPC等。(今年 Java 面试到底聚焦在知识点?文末扫码获取) 但这些技术包含了 N 多优化、N 多细节,对于一些 coding 的朋友,由于接触不到一线实战架构设计,想必并不是很了解。 刚好,趁着这段时间,整理了一套 “ 微服务+分布式 ” 的视频干货,讲解很透彻。今天分享给大家。这份资料 尤其适合 以下人群: 1.没有用过微服务技术,只会用传统的 SSM 框架 2.用过 Spring Cloud、Dubbo等技术,但是只限于使用,遇到问题基本无法解决 3.从来没有系统学习微服务、分布式架构,觉得架构设计是遥不可及的 4.对于微服务、分布式技术有所了解,但尚没有设计高可用高并发的实践经历 学完这份视频你将获得哪些收获? 理解当下最火热的微服务架构原理及其开源框架; 触及一线大厂所配备的微服务核心技术内幕知识; 对照自己掌握知识点进行查漏补缺,帮助扫除知识盲区、重构知识体系。 视频围绕“ 如何设计高可用高并发的微服务架构? ”的主题

更多免费初级中级高级大数据java视频教程下载 加(微***信((号--:keepper,请备注java或扫下面2二3维4码[1]2.dubbo&dubbox

梦想与她 提交于 2020-04-26 06:07:35
更多免费初级中级高级大数据java视频教程下载 加(微***信((号--:keepper,请备注java或扫下面2二3维4码[1]2.dubbo&dubbox java视频教程01.mp4 java视频教程2016.mp4 java视频教程20160330001.mp4 java视频教程20160330002.mp4 java视频教程20160330003.mp4 java视频教程20160331001.mp4 java视频教程20160331002.mp4 java视频教程20160331003.mp4 java视频教程20160331004.mp4 java视频教程20160331005.mp4 更多免费初级中级高级大数据java视频教程下载 加(微***信((号--:keepper,请备注java或扫下面2二3维4码 ​ 来源: oschina 链接: https://my.oschina.net/u/4410977/blog/4155082

分布式事务解决方案FESCAR

一曲冷凌霜 提交于 2020-04-25 19:53:06
项目地址: FESCAR 以下是官网的文档。 简介 2019年,Fescar 是 阿里巴巴 开源的 分布式事务中间件,以 高效 并且对业务 0 侵入 的方式,解决 微服务 场景下面临的分布式事务问题。 1. 什么是微服务化带来的分布式事务问题? 首先,设想一个传统的单体应用(Monolithic App),通过 3 个 Module,在同一个数据源上更新数据来完成一项业务。 很自然的,整个业务过程的数据一致性由本地事务来保证。 随着业务需求和架构的变化,单体应用被拆分为微服务:原来的 3 个 Module 被拆分为 3 个独立的服务,分别使用独立的数据源(Pattern: Database per service)。业务过程将由 3 个服务的调用来完成。 此时,每一个服务内部的数据一致性仍由本地事务来保证。而整个业务层面的全局数据一致性要如何保障呢?这就是微服务架构下面临的,典型的分布式事务需求:我们需要一个分布式事务的解决方案保障业务全局的数据一致性。 2. Fescar 的发展历程 阿里是国内最早一批进行应用分布式(微服务化)改造的企业,所以很早就遇到微服务架构下的分布式事务问题。 2014 年,阿里中间件团队发布 TXC(Taobao Transaction Constructor),为集团内应用提供分布式事务服务。 2016 年,TXC 经过产品化改造,以 GTS

此刻你还在为跳槽而纠结、烦心吗?这篇1000道BATJava面试题分享你,看你掌握多少,有无资本跳槽

耗尽温柔 提交于 2020-04-25 13:47:26
前言唠叨唠叨: 近段时间总是有人私信我说,现在适合裸辞吗,公司待不下去了....... 我.......................懂我这欲言又止的意思吧!!!!! 兄弟我只想说,今年啥情况啊,外面很多人找不到工作,你还想着裸辞,珍惜 这还真是应验了我们近期讨论的那句话:“上班的人不想上班,没工作的想上班” 当然如果发现公司形势不好,那你也确实可以考虑下. 但是你得具备以下条件: 具备很强的专业知识,牛逼,有信心快速找到下一家适合你的公司. 然后有一定存款,可以保证当下辞职后,生活方面不愁 当然学习是很重要的,不努力提升自己,加强自己的专业知识,后面就算是跳槽成功也是很容 易被PASS掉,现实是残酷的,可千万不要因为找到新工作就放松警惕,做咸鱼. 那今天给你们分享这千道面试题,希望在找工作或者是想要跳槽的朋友都可以刷刷,准备充 足,随时应战,顺利拿offer !!!! 面试题 文末福利,如果觉得文章对你有帮助的话,记得点赞、关注、评论给个支持.谢谢 MyBatis 面试题 什么是 Mybatis? Mybaits 的优点: MyBatis 框架的缺点: MyBatis 框架适用场合: MyBatis 与 Hibernate 有哪些不同? #{}和${}的区别是什么? 当实体类中的属性名和表中的字段名不一样 ,怎么办 ? 模糊查询 like 语句该怎么写? 通常一个 Xml