众城通app中集成了公交扫码、实时公交、定制公交等功能;我负责整体架构的设计:
1、整体采用目前流行的springcloud微服务体系架构。
2、采用了shardingjdbc来进行分库分表。运用了twitter的snowflake算法(好处:全局唯一性、趋势递增、能够融入分库基因)作为分布式id生成器。
3、使用elasticsearch存储rabbitmq异步收集的分布式服务链路追踪信息.
4、运用了spring-cloud-gray对新业务上线进行灰度发布,同时为新老业务过度提供多版本并存。
5、运用美团点评分布式监控cat作为关键业务点的监控,并接入钉钉告警可方便相关人员及时发现并排除异常。
6、运用携程apollo作为分布式服务的配置中心极大方便服务的配置管理。
7、使用redis作为缓存与分布式锁,rabbitmq作为消息队列推送消息。
8、使用spring-security-oauth2.0进行权限验证,并无缝集成短信登录,支付宝授权登录。