架构师训练营——第四周作业
一个典型的大型互联网应用系统使用了哪些技术方案和手段,主要解决什么问题?请列举描述。
这个问题涉及到的点太多了,我就从我自己公司的业务出发,大概说一下吧:
服务治理
公司的后端都是基于微服务架构的,服务之间通过 GRPC 进行通信。为了更好地对所有服务进行统一管理,公司基于 Zookeeper 开发了自己的服务注册中心,所有服务都在注册中心上进行登记,并且通过定时心跳上报自己的状态。服务的调用方也是从注册中心获取目标服务的路由信息。在此基础上,公司对服务进行了细粒度的鉴权、限流、重试机制、过载保护等处理,只需在平台上简单配置即可实现复杂的服务治理需求。
缓存
缓存是性能优化的首选手段。特别是对于例如商品详情页这种聚合展示服务,合理使用缓存可以大幅提升系统性能。公司提供了丰富的缓存组件,包括内存级别的本地缓存,和 Redis、Memcached 这种分布式缓存,并封装了简单易用的 sdk。
消息
公司业务中使用消息机制,主要有一些这些场景:
服务异步解耦
流量整形
基于事务消息实现分布式事务
基于定时消息实现延迟队列
日志收集
负载均衡
负载均衡也是常有的架构手段,主要使用在:
前端负载均衡服务器,如 Nginx
微服务网关负载均衡
跨机房流量调度负载均衡
评论