ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

永辉彩食鲜架构概述

2019-12-24 09:55:09  阅读:190  来源: 互联网

标签:食鲜 架构 永辉彩 业务 技术 选型 用于 服务 分布式


背景

满足整个永辉彩食鲜大B业务从线上到供应链的全线业务系统的研发和维护,保证整个系统的稳定性和性能。

架构思考

大B业务不同于小B业务,它没有常见的业务高并发的场景,所以更多是对业务数据的一致性(业务数据基本都跟财务相关),系统的稳定性和常规故障自动恢复能力有更高期盼和要求。同时伴随业务的及数据增长,整体系统性能要保证的稳定。

总体架构图

架构演进历程

项目基础设施搭建 -> 运维自动化 ->数据库运维构建 -> 分布式基础设施搭建 -> 分布式监控体系构建 -> 分布式框架自研 -> 业务基础服务构建 -> 技术分享 -> 开源社区构建

(大致的推进重新历程如上,实际场景下不分严格先后顺序。)

项目基础设施的建设

涉及 gitlab, svn,  jenkins , nesus, sonar, 禅道, 知识库;剥离出永辉自身的研发基础设施,减少频繁的沟通成本,获取系统的管理员权限便于打通研发和运维自动化。

运维自动化

1. 钉钉自动化报警/通知

涉及jenkins,gitlab,禅道,sonar,知识库等自动化集成。

2. jenkins 一键发布

涉及jenkins的一键滚动发布,自动回滚,异常自动重启,便于运维快速发布,避免手工发布的出错。

3. docker 容器集群化

从docker单机版到docker集群版本,逐步验证,逐步推进到线上环境部署,提升现有服务器的资源的利用率,优化服务的稳定性(自动恢复机制),更加精简运维的维护。(如果高并发场景的业务,考虑实现自动化的弹性扩容服务)

数据库运维构建

1. 存储: 数据库采用mysql存储,innodb存储引擎。

2. 读写分离: 采用主从mysql 进行读写分离。

3. 冷备热备: 采用主从mysql 进行热备。

每天进行一次冷备到其他服务器。

磁盘每天进行一次快照存储。

4. 异地备份: 暂无。

5. 故障切换: 因数据一致性要求较严,一般dba手工进行故障恢复。

分布式基础设施搭建

采用开源的基础服务设施, 构建整个分布式技术体系, 从而加快完成分布式基础设施的整体布局,做好主备和故障愈合的预案,从而确保整体基础设施的稳定性。(ps: 假如是大型的,偏向高并发,长远的电商业务,可以综合考虑自研基础服务设施为优先方案)

1. 分布式任务调度平台

技术选型: xxl-job, 用于后台/异步任务等任务的挂载,确保一些耗时/耗资源/定时的任务和api分离,确保前端api的稳定。

2. 分布式服务中心

技术选型: eureka-server, 用于服务的注册,负载均衡,故障转移,健康检测等服务统一管理。

3. 分布式消息队列

技术选型: rocketmq, 用于业务的异步解耦,上下游消息的转发,异构业务的异步通信等。

4. 分布式日志中心

技术选型: elk, 用于应用日志的统一管理,查询,统计等。

5. 分布式文件服务

技术选型: 七牛文件服务, 用于文件的上传,下载,文件生命周期的管理,图片的动态缩放等。

6. CDN

技术选型: 腾讯cdn, 用于图片,脚本,css等文件的cdn网络加速,加快前端资源的下载速度。

7. 分布式配置中心

技术选型: apollo, 用于所有项目的配置分类,抽象,灰度发布等管理。

8. 分库分表中间件

技术选型: sharding-jdbc, 用于对业务开发人员屏蔽数据库的分库分表,主从读写分离的拆分细节。

9. 搜索服务

技术选型: elasticsearch, 用于全文检索,相似度文档(数据)的业务查询。

10. 分布式缓存

技术选型: redis, 用于业务的分布式缓存,从而加快业务的查询速度。

分布式监控体系搭建

1. 调用链监控

技术选型: pinpoint, 用于所有服务的调用关系的监控分析,里面也包含(cpu,内存,耗时)性能等。未来要迁移成skywalking。

2. 日志监控

技术选型: elk, 用于应用日志的统一管理,查询,统计等。

3. 服务器监控

技术选型: zabbix, 用于所有linux服务器系统级别的性能监控。

4. DB监控

技术选型: pmm,用于所有线上mysql数据库的性能监控记录,慢查询等分析。

5. 应用监控(性能分析)

技术选型: cat,用于所有线上顺向和逆向调用链路的分析,数据库和url耗时的性能分析,服务及服务器的性能分析报表,bsf自研监控报表等。

分布式框架自研

基于开源的分布式基础设施和分布式的监控体系,通过自研的bsf框架进行粘合;把复杂的配置和复杂的各个分布式组件之间的协作,通过单一bsf框架进行整合,通过简单的接口对开发者提供标准规范的调用方式;采用类似springcloud的思想,以插件形式对所有的基础服务进行平行扩展,方便开发人员阅读和维护;未来基础服务可以随时升级替换,只需要保持对开发者的接口兼容即可。

愿景: 让开发人员仅关注快速使用,无需了解底层服务实现,让开发变得更简单。

目前已集成插件有:

cat(分布式监控平台),

apollo(分布式配置中心),

elk(分布式日志中心),

eureka(注册中心),

job(分布式任务调度),

message(消息),

mq(消息队列),

shardingjdbc(分库分表),

redis(分布式缓存),

elasticsearch(搜索引擎),

health(bsf健康检查),

file(文件服务)

等。

同时底层框架bsf和业务框架business剥离,让通用的底层框架剥离实际的公共业务类库。

基于bsf和business之上,定义标准的项目脚手架csx-b2b-demo,用于快速构建项目服务。

业务基础服务构建

主数据 提供公用的业务基础配置数据。

用户中心 提供统一用户登陆鉴权。

流程服务 提供流程的设计,表单设计和流程审批功能。

短信服务 提供永辉等第三方短信平台对接等。

报表 提供线上统一报表查询和导入导出等。

技术分享

架构组提供进行11场左右的技术分享,同时业务部门也会举办一些业务培训,让开发人员了解并熟悉底层框架技术原理,日常使用,以及现有产品业务等。

开源社区构建

构建开源技术博客,开源bsf底层技术框架,推进核心技术人员参与技术分享社区和沙龙, 邀请第三方技术人员做一些培训分享。

关于混合云

永辉云 用于内部所有测试开发环境的构建和部分线上服务。

腾讯云/七牛云 用于文件服务,第三方cdn,dns等公共服务。

自建机房 用于搭建所有线上服务,数据库,容器集群,大部分基础服务设施等等。

其他

暂未涉及前端,大数据,机器学习(人工智能),测试平台相关。

by 首席架构师 车江毅

2019-12-20

标签:食鲜,架构,永辉彩,业务,技术,选型,用于,服务,分布式
来源: https://www.cnblogs.com/chejiangyi/p/12089803.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有