基础设施三件套
DB当然是第一重要,但是因为所有开发都知道,所以就不罗列了。
RPC中间件。对于分布式系统而言,一个好的RPC中间件是非常重要的,这直接决定了整个系统的扩展性、灵活性。一个好的RPC中间件至少应该满足以下条件:
1、支持在RPC本地根据规则,比如说功能号进行路由,路由的目标可以是本地也可以是远程;
2、基于长连接,一般为TCP;
3、再不济,性能也不能低于HTTP;
4、支持自动负载均衡,连接恢复;
5、支持服务注册中心服务自动发布,服务注册信息自动拉取;
6、RPC客户端支持API依赖注入,RPC服务端支持根据注解发布和路径;
7、绝大部分情况而言,应该是不需要跨语言的,根据特定语言去做说不定更合理;
目前熟悉的还是公司的T2。其他的都有短板,需要自行扩展。
分布式缓存/DB。分布式缓存最常用的场景是分布式session,客户信息、产品信息等相对而言比较静态的数据。当然,它远远不止用于这里。
1、支持集群;
2、TPS 50000以上;
3、支持常规以外的list/hash结构;
Redis 3之后就比couchbase要更加合适了。
消息中间件。消息中间件是重要性等同于分布式缓存的中间件。对于大型的分布式系统而言,通常关键的业务场景在同步执行时会存在着致命的瓶颈。一个好的消息中间件应该至少满足下列条件:
1、支持集群;
2、支持持久化;
3、TPS 5000以上;
4、支持可信发布、订阅;
5、有管理API可监控队列,队列中内容等;
6、支持广播、点对点、主题;
rabbitmq是比较合适的。
时间: 2024-10-24 08:27:08