美文网首页
如何设计网络服务

如何设计网络服务

作者: yangweigbh | 来源:发表于2017-03-19 13:29 被阅读10次

设计需要考虑的因素:

  • Availability: 平均无故障时间

  • Performance:响应时间

  • Reliability: 数据可靠

  • Scalability:可扩展

  • Manageability:可维护

  • Cost:尽量降低费用

如何设计

Services

将不同功能解耦到不同的service中。

Paste_Image.png

Redundancy

同一服务要有多个实例,一来可以解决单点失败问题,二是可以平衡负载。

数据存储也要有Copy来防止数据丢失。

Paste_Image.png

Partitions

数据量太多,则需要进行分片,或者分担负载。

Paste_Image.png

访问数据如何Scale

Paste_Image.png

随着访问量增大,app server要尽量使用shared-nothing architecture来进行minimized,访问压力都会落到database server。

如何保证database server的scalability和快速访问呢

Caches

Paste_Image.png

Cache有两种方式:

  • Global Cache:

Cache是独立的一个服务器

Paste_Image.png
  • Distributed Cache:

每一个Request Node有自己的Cache,同一请求通过hash分配到不同Request Node上

Paste_Image.png

Proxies:

在Database server前架设一个代理

通过代理可以将同一内容的请求包装到对database的一次请求里

Paste_Image.png

也可以将数据相近的请求包装到同一请求里(局部性原理)。

Paste_Image.png

Indexes

Index 可以加速数据查询,可以采取多级Index,可以减少index占用的空间

Paste_Image.png

Load Balancers

Queues

使用Queue可以解决client写数据等待时间过长的问题

Paste_Image.png

Refer:

http://www.aosabook.org/en/distsys.html

相关文章

  • 如何设计网络服务

    设计需要考虑的因素: Availability: 平均无故障时间 Performance:响应时间 Reliabi...

  • [libco] libco 工作流程

    libco 设计初衷:为了方便编写 C++ 高性能网络服务。 高性能网络服务主要有两个点:IO 非阻塞 + 多路复...

  • 多进程网络服务

    1、高性能网络服务程序 Linux的一个应用优势是可用于设计各种高性能网络服务程序,高性能的一个特点就是实现并发...

  • 隐私政策

    交互设计课堂尊重并保护所有使用交互设计课堂网络服务用户的个人隐私权。为了给您提供更准确、更有个性化的服务,交互设计...

  • 20. select如何同时感知多个I/O事件

    这一讲是性能篇的第一讲。在性能篇里,我们将把注意力放到如何设计高并发高性能的网络服务器程序上。我希望通过这一模块的...

  • [转]Linux Epoll vs Windows IOCP

    1 Epoll vs. IOCP   Epoll 和 IOCP 都是为高性能网络服务器而设计的高效 I/O 模型;...

  • 隐私政策

    家装设计尊重并保护所有使用家装设计网络服务用户的个人隐私权。为了给您提供更准确、更有个性化的服务,家装设计会按照本...

  • linux学习六

    网络服务 常用网络服务器软件 常用网络服务 管理服务的shell命令 1.0 service 服务名 sta...

  • 隐私政策

    艺术签名设计尊重并保护所有使用艺术签名设计网络服务用户的个人隐私权。为了给您提供更准确、更有个性化的服务,艺术签名...

  • 隐私政策

    隐私政策 签名设计大师尊重并保护所有使用签名设计大师网络服务用户的个人隐私权。为了给您提供更准确、更有个性化的服务...

网友评论

      本文标题:如何设计网络服务

      本文链接:https://www.haomeiwen.com/subject/izzpnttx.html