Category: Distributed Strategy

[汇总]RPC经验总结 0

[汇总]RPC经验总结

东方证券正式开源其微服务框架gRPC-Nebula 如何设计一个短小精悍、可拓展的RPC框架?(含实现代码) 最流行6种微服务RPC技术,看完就知道用哪一种了 100 行代码透彻解析 RPC 原理

[转]推拉系统架构 0

[转]推拉系统架构

今年花了一些笔墨写推拉系统架构: 系统通知,推送还是拉取? 状态同步,推送还是拉取? 网页消息,推送还是拉取? 群已读回执,推送还是拉取?(这个diao) 群消息,存一份还是多份?(这个meng) feed流,到底什么是读扩散? feed流,到底什么是写扩散? 每一篇都是细致展开的案例,绝无花哨的装B。 画外音:每一篇,都先说业务场景,再聊N个方案,以及方案的优缺点,细细品味,定有收获。

[转]58集团RPC框架SCF的设计与实践 0

[转]58集团RPC框架SCF的设计与实践

1. 前   言 RPC 是远程过程调用(Remote Procedure Call)的缩写,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。举例来说,部署在 A 节点上的应用调用部署在 B 节点上的应用提供的接口,A 节点需要将调用的数据信息通过网络传递到 B 节点,B 节点根据接收到的数据信息找到具体的接口执行,并将执行的结果通过网络返回给节点 A。 RPC 框架封装网络传输、序列化、负载均衡、故障剔除等通用能力,使得 A 节点可以像调用本地方法一样简单地调用远程接口。 SCF 是 58 自主研发的 RPC 框架,致力于在分布式环境下提供高性能、高可靠和透明化的 RPC 远程调用方案。 服务管理平台是基于 SCF 框架的服务治理平台,具有服务节点自动注册与发现、负载均衡、服务鉴权、全方位监控、完善的告警等特点。 2. 整体架构 SCF...

[转]史上最全 40 道 Dubbo 面试题及答案 0

[转]史上最全 40 道 Dubbo 面试题及答案

Dubbo是国内最出名的分布式服务框架,也是 Java 程序员必备的必会的框架之一。Dubbo 更是中高级面试过程中经常会问的技术,无论你是否用过,你都必须熟悉。 下面我为大家准备了一些 Dubbo 常见的的面试题,一些是我经常问别人的,一些是我过去面试遇到的一些问题,总结给大家,希望对大家能有所帮助。

0

[转]ZooKeeper搞定服务注册与发现

1. 背景 最近在做分布式相关的工作,由于人手不够只能我一个人来怼;看着这段时间的加班表想想就是够惨的。 不过其中也有遇到的不少有意思的事情今后再拿来分享,今天重点来讨论服务的注册与发现。 2. 分布式带来的问题 我的业务比较简单,只是需要知道现在有哪些服务实例可供使用就可以了(并不是做远程调用,只需要拿到信息即可)。 要实现这一功能最简单的方式可以在应用中配置所有的服务节点,这样每次在使用时只需要通过某种算法从配置列表中选择一个就可以了。 但这样会有一个非常严重的问题: 由于应用需要根据应用负载情况来灵活的调整服务节点的数量,这样我的配置就不能写死。 不然就会出现要么新增的节点没有访问或者是已经 down 掉的节点却有请求,这样肯定是不行的。 往往要解决这类分布式问题都需要一个公共的区域来保存这些信息,比如是否可以利用 Redis? 每个节点启动之后都向 Redis 注册信息,关闭时也删除数据。 其实就是存放节点的 ip + port,然后在需要知道服务节点信息时候只需要去 Redis 中获取即可。 如下图所示: 但这样会导致每次使用时都需要频繁的去查询 Redis,为了避免这个问题我们可以在每次查询之后在本地缓存一份最新的数据。这样优先从本地获取确实可以提高效率。 但同样又会出现新的问题,如果服务提供者的节点新增或者删除消费者这边根本就不知道情况。 要解决这个问题最先想到的应该就是利用定时任务定期去更新服务列表。 以上的方案肯定不完美,并且不优雅。主要有以下几点: 基于定时任务会导致很多无效的更新。 定时任务存在周期性,没法做到实时,这样就可能存在请求异常。 如果服务被强行 kill,没法及时清除 Redis,这样这个看似可用的服务将永远不可用!...

0

[转]详解分布式协调服务 ZooKeeper

在 2006 年,Google 发表了一篇名为 The Chubby lock service for loosely-coupled distributed systems 的论文,其中描述了一个分布式锁服务 Chubby 的设计理念和实现原理;作为 Google 内部的一个基础服务,虽然 Chubby 与 GFS、Bigtable 和 MapReduce 相比并没有那么大的名气,不过它在 Google 内部也是非常重要的基础设施。 相比于名不见经传的 Chubby,作者相信 Zookeeper 更被广大开发者所熟知,作为非常出名的分布式协调服务,Zookeeper 有非常多的应用,包括发布订阅、命名服务、分数是协调和分布式锁,这篇文章主要会介绍 Zookeeper 的实现原理以及常见的应用,但是在具体介绍 Zookeeper 的功能和原理之前,我们会简单介绍一下分布式锁服务...