网站越做越大,代码越来越乱,改一个地方影响全身。微服务架构把系统拆分成小服务,各自独立开发部署。这篇文章说说微服务的实践经验。
团队超过10人,代码冲突频繁。系统复杂,新人上手困难。部分模块需要独立扩展。这时候考虑拆微服务。
按业务领域拆分,用户服务、订单服务、支付服务。每个服务有独立数据库,服务间通过API通信。别拆太细,否则运维成本爆炸。
服务注册发现:服务上线自动注册,调用方自动发现。用Consul、Eureka或Nacos。
负载均衡:多个实例自动分配请求。用Nginx或客户端负载均衡。
熔断降级:服务故障时快速失败,避免拖垮整个系统。用Hystrix或Sentinel。
微服务不是银弹,拆分后分布式事务、服务调用链、监控日志都变复杂了。小团队别盲目追微服务,单体应用也能做得很好。
架构演进要循序渐进,先做好单体,真有需要再拆。