rpc :分布式系统设计思路和需要考虑的问题

设计分布式系统的本质就是“如何合理将一个系统拆分成多个子系统部署到不同机器上”。所以首要考虑的问题是如何合理的将系统进行拆分。由于拆分后的各个子系统不可能孤立的存在,必然是通过网络进行连接交互,所以它们之间如何通信变得尤为重要。当然在通信过程要识别“敌我”,防止信息在传递过程中被拦截和窜改,这就涉及到安全问题了。分布式系统要适应不断增长的业务需求,那么就需要考虑其扩展性。分布式系统还必须要保证可靠性和数据的一致性。

 

概况起来,在设计分布式系统时,应考虑以下几个问题:

  • 系统如何拆分为子系统?

  • 如何规划子系统间的通信?

  • 通信过程中的安全如何考虑?

  • 如何让子系统可以扩展?

  • 子系统的可靠性如何保证?

  • 数据的一致性是如何实现的?

实际上,上面的每一个问题都不是简单的问题。还好,我们要感谢开源,让这个时代的技术可以共享,让实现复杂系统的成本越来越低。比如,

我们在设计通信时,我们可以采用面向消息的中间件,比如Apache ActiveMQ、RabbitMQ、Apache RocketMQ、Apache Kafka等,也有类似与 Google Protocol Buffer、Thrift等 RPC框架。

在设计分布式计算时,我们分布式计算可以采用 MapReduce、Apache Hadoop、Apache Spark 等。

在大数据和分布式存储方面,我们可以选择 Apache HBase、Apache Cassandra、Memcached、Redis、MongoDB等。

在分布式监控方面,常用的技术包括Nagios、Zabbix、Consul、ZooKeeper等。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值