高效稳定 · 简洁易用 · 灵活扩展
项目地址:lemon-echo微服务架构
用户访问APP、WEB、H5页面通过LBS算法调用到最佳的nginx服务器,nginx通过规则转发调用到指定的服务或服务网关,gatway经过鉴权、风控等安全校验后通过consul注册中心LB路由到指定的业务服务,业务服务根据需要调用对应的数据支持端、RPC服务短信或第三方服务端,完成业务功能后返回对应的数据。

整个部署架构分为入口访问组、核心服务组、基础支撑组和服务监控组。
1、LBS域名指向服务域名,开通https、防ddocs等安全性功能。
2、入口访问组包含nginx、potal web、activity web、gateway服务,nginx需要开通外网流量权限,gateway需打通与核心业务组网段调用,potal web和activity web为前端网页服务,可视情况与nginx服务同机器部署或单独部署。
3、核心服务组根据各服务压测和预估QPS状况,部署相应量级的服务节点,为保障服务高可用,每个服务至少部署两个节点。
4、基础支撑组需开放核心业务组网络相互访问,部署consul注册中心集群,consul集群请独立部署并至少部署3个server节点和2+个client节点,DB至少保证主从节点配置,rabbitmq集群使用镜像模式保障服务的高可用,redis根据服务需要主从、集群部署,其他支持服务根据需要部署相应套件。
5、服务监控组需开放核心业务组网络相互访问,zabbix、prometheus、zipkin server根据服务需要部署相应节点套件,ELK部署至少3个master节点和3个data节点,数据节点建议内存30G,master节点建议10G,聚合节点等根据需要配置,日志类索引根据需要设置n*3个Primaries(如无特殊需要Replicas设置为0),日志索引名称按天存储。日志收集采用filebeat -> kafka -> logstash -> elasticsearch套件,logstash路由pipeline简化配置和服务管理。