dubbo
一条路上的咸鱼
小白程序员一枚
0. 微信公众号(码农翻身录:coder_xiaobu)
1. [博客园](https://www.cnblogs.com/jack1995/)
2. [简书](https://www.jianshu.com/u/5ea1795d1adf)
3. [掘金](https://juejin.im/user/5ac308786fb9a028d444c410/posts)
4. [优快云](https://me.youkuaiyun.com/jack199504)
5. [语雀](https://www.yuque.com/mujingjing)
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
分布式的几件小事(一)为什么要把系统拆分成分布式的
1.为什么进行拆分①项目过于庞大维护困难。如果系统过去庞大,那么代码会有很多,达到几十万行上百行,这样就需要很多人一起来维护一份代码,这样就很容易造成各种冲突,这样光合并代码就会浪费大量的时间在上面。②项目发布复杂。一个小bug的修改发布需要整个系统全部进行重新发布,这样就很麻烦,不但发布后需要大量的测试,不管这个bug和自己负责的模块是否有关系,上线之后都要去检查,防止自己的模块被改出b...原创 2019-05-24 23:40:21 · 295 阅读 · 0 评论 -
分布式的几件小事(十一)分布式session如何实现
1.分布式会话是什么?首先,我们知道浏览器有个cookie,在一段时间内这个cookie都存在,然后每次发请求过来都带上一个特殊的jsessionid cookie,就根据这个东西,在服务端可以维护一个对应的session域,里面可以放点儿数据。其次,单系统的时候session是不存在问题的。分布式系统出现session问题的场景:比如系统部署了3台机器,用户登录的时候,负载均衡到了其中的...原创 2019-05-25 15:13:37 · 999 阅读 · 0 评论 -
分布式的几件小事(十)分布式锁是啥
1.什么是分布式锁分布式锁是控制分布式系统之间同步访问共享资源的一种方式。在分布式系统中,常常需要协调他们的动作。如果不同的系统或是同一个系统的不同主机之间共享了一个或一组资源,那么访问这些资源的时候,往往需要互斥来防止彼此干扰来保证一致性,在这种情况下,便需要使用到分布式锁。在分布式系统中,常常需要协调他们的动作。如果不同的系统或是同一个系统的不同主机之间共享了一个或一组资源,那么访问这些...原创 2019-05-25 14:38:30 · 219 阅读 · 0 评论 -
分布式的几件小事(九)zookeeper都有哪些使用场景
1.zookeeper介绍ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。Zoo...原创 2019-05-25 12:55:25 · 176 阅读 · 0 评论 -
分布式的几件小事(八)分布式服务接口请求的顺序性如何保证
1.调用顺序其实分布式系统接口的调用顺序,也是个问题,一般来说是不用保证顺序的。但是有的时候可能确实是需要严格的顺序保证。给大家举个例子,你服务A调用服务B,先插入再删除。好,结果俩请求过去了,落在不同机器上,可能插入请求因为某些原因执行慢了一些,导致删除请求先执行了,此时因为没数据所以啥效果也没有;结果这个时候插入请求过来了,好,数据插入进去了,那就尴尬了。本来应该是先插入 -> 再删...原创 2019-05-25 12:33:55 · 726 阅读 · 0 评论 -
分布式的几件小事(七)分布式系统接口的幂等性如何保证
1.幂等性所谓幂等性,就是说一个接口,多次发起同一个请求,你这个接口得保证结果是准确的,比如不能多扣款,不能多插入一条数据,不能将统计值多加了1。这就是幂等性。2.如何保证幂等性①对于每个请求必须有一个唯一的标志,比如订单支付请求,必须要包含订单的id,一个id只能支付一次。②每次处理完请求之后,必须要有一个记录标识这个请求已经处理过了,比如最常见的是在mysql中记录一个状态,比如支付前...原创 2019-05-25 12:21:34 · 246 阅读 · 0 评论 -
分布式的几件小事(六)dubbo如何做服务治理、服务降级以及重试
1.服务治理服务治理主要作用是改变运行时服务的行为和选址逻辑,达到限流,权重配置等目的。①调用链路自动生成一个大型的分布式系统,会由大量的服务组成,那么这些服务之间的依赖关系和调用链路会很复杂,这就需要dubbo对多个服务之间的调用自动记录下来,生成一张图,显示出来。②服务反复问压力以及时长统计需要自动统计各个接口和服务之间的调用次数以及访问延时,而且要分成两个级别。一个级别是接口粒度,...原创 2019-05-25 11:51:49 · 474 阅读 · 0 评论 -
分布式的几件小事(五)dubbo的spi思想是什么
1.什么是SPI机制SPI 全称为 Service Provider Interface,是一种服务发现机制。SPI 的本质是将接口实现类的全限定名配置在文件中,并由服务加载器读取配置文件,加载实现类。这样可以在运行时,动态为接口替换实现类。正因此特性,我们可以很容易的通过 SPI 机制为我们的程序提供拓展功能。SPI 机制在第三方框架中也有所应用,比如jdbc。java定义了一套jdbc...原创 2019-05-25 02:22:02 · 179 阅读 · 0 评论 -
分布式的几件小事(四)dubbo负载均衡策略和集群容错策略
1.dubbo负载均衡策略①random loadbalance 策略默认情况下,dubbo是random loadbalance 随机调用实现负载均衡,可以对provider不同实例设置不同的权重,会按照权重来进行负载均衡,权重越大分配的流量越高,一般就用这个默认的就可以了。②roundrobin loadbalance策略这个策略默认会将请求均匀的分布到各个provider上面,但是如...原创 2019-05-25 01:59:12 · 177 阅读 · 0 评论 -
分布式的几件小事(三)dubbo的通信协议与序列化
1.dubbo的通信协议①dubbo协议Dubbo缺省协议采用单一长连接和NIO异步通讯,适合于小数据量大并发的服务调用,以及服务消费者机器数远大于服务提供者机器数的情况。特点 :dubbo缺省协议,使用的是基于netty+hessian的tbremoting交互。连接个数:单连接。连接方式:长连接。传输协议:TCP。传输方式:NIO异步传输。使用范围:传入传出数据包较小,消费...原创 2019-05-25 01:37:15 · 276 阅读 · 0 评论 -
分布式的几件小事(二)dubbo的工作原理
1.dubbo的工作原理①整体设计图例说明:图中左边淡蓝背景的为服务消费方使用的接口,右边淡绿色背景的为服务提供方使用的接口,位于中轴线上的为双方都用到的接口。图中从下至上分为十层,各层均为单向依赖,右边的黑色箭头代表层之间的依赖关系,每一层都可以剥离上层被复用,其中,Service 和 Config 层为 API,其它各层均为 SPI。图中绿色小块的为扩展接口,蓝色小块为...原创 2019-05-25 00:48:46 · 157 阅读 · 0 评论 -
分布式的几件小事(十二)分布式事务
1.两阶段提交方案/XA方案。原理 这个就是所谓的XA事务,两阶段提交,有一个事务管理器的概念,负责协调多个数据库(资源管理器)的事务,事务管理器先问问各个数据库你准备好了吗?如果每个数据库都回复ok,那么就正式提交事务,在各个数据库上执行操作;如果任何一个数据库回答不ok,那么就回滚事务。适用场景:比较适合单块应用里,跨多个库的分布式事务。缺点因为严重依赖于数据库层面来搞复杂的事务,效...原创 2019-05-25 23:23:10 · 165 阅读 · 0 评论
分享