首页 > 其他分享 >百人研发团队百亿销售规模的技术架构实践分享

百人研发团队百亿销售规模的技术架构实践分享

时间:2023-05-10 14:00:56浏览次数:46  
标签:架构 百亿 业务 用于 监控 服务 分享 分布式

公司背景

公司融资10亿,剥离B2B生鲜业务板块为独立公司运营。除部分核心产品经理,运营,采购角色外,诸如研发团队等重新组建,并承接部分历史系统重新打造一整套供应链平台去支撑大规模业务扩张。全国70个左右仓(包含前置仓,中转仓和实体仓),实际达到百亿业务规模(营收),预计达到千亿业务规模。

研发规模

研发团队规模前期规划约百人(大约在6个月以内),后期增长到近180人左右;

研发组织采用矩阵式架构管理,分别包含财务组,工厂组,仓储组,采购组,大B销售业务组,小B销售业务组,数据分析组,架构组。

产品总监: 负责并统筹管理所有产品人员,为整个产品,流程,使用及体验负责;

项目经理: 统筹所有项目进度和研发人员资源调配,为整个产品的研发进度和交付负责。

首席架构师: 统筹所有技术架构,支持所有项目技术和业务使用,构建技术中台并支撑技术演变和运维,为整个产品的稳定性负责;

数据经理: 统筹所有数据和业务报表,打造数据中台,支撑智能化数据运营,为业务和高层管理决策提供数据支持。

应用架构

业务架构

技术架构

技术架构演进

研发基础设施

运维自动化

数据库运维

 

分布式基础设施

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

目标: 为了更好地支持业务开发,让开发人员从中间件中解放出来,专注业务以提高开发效率。同时基础框架集中统一优化中间件相关服务及使用,为开发人员提供高性能,更方便的基础服务接口及工具,实践过程可让效率提升10倍。

开源地址: https://gitee.com/chejiangyi/free-bsf-all

底层框架bsf和业务框架business剥离,让通用的底层框架剥离实际的公共业务类库; 基于bsf和business之上,定义标准的项目脚手架csx-b2b-demo,用于快速构建项目服务。

业务基础服务构建

对比现有服务市场架构

技术架构

业务架构

未来

  1. 业务服务拆分架构重构
  2. 大数据和读写分离
  3. ai 对于业务的应用
  4. bsf 对jdk17及21的支持
  5. 表单引擎及流程引擎

 

 

by 车江毅

2023-5-6

java研发团队内部架构分享笔记

标签:架构,百亿,业务,用于,监控,服务,分享,分布式
From: https://www.cnblogs.com/chejiangyi/p/17387775.html

相关文章

  • Linux ARM架构_安装JDK8-银河麒麟V10 Kylin Linux
    原文链接:https://blog.csdn.net/a767815662/article/details/1245799391、官网下载aarch64架构jdk包2、linux服务器中创建java文件夹,方便后期快速寻找3、将jdk包传输到Linux系统中的/usr/local/java目录下4、查看linux机器中是否有安装jdk85、查看java安装文件6、卸载OpenJDK7、......
  • 分享一个简单爬虫
    今天有同学问我为什么信息提取不出来?下面是同学的源代码:importrequestsfrombs4importBeautifulSoupstart_url="http://tieba.baidu.com/p/4957100148"headers={"User-Agent":"Mozilla/5.0(WindowsNT6.1;WOW64)AppleWebKit/537.36(KHTML,likeGecko)Ch......
  • 《asyncio 系列》9. 使用基于 asyncio 实现的异步框架构建 Web 应用程序
    楔子Web应用程序为我们今天在Internet上使用的大多数网站提供支持,如果你曾在拥有互联网业务的公司担任过开发人员,那么你可能在职业生涯的某个阶段编写过Web应用程序。在同步Python的世界中,这意味着你使用过Flask、Bottle或非常流行的Django之类的框架。除了新版本的D......
  • MVC和三层架构
       案例 、查询所有: 添加: 修改  ......
  • 你还在纠结怎么选IDE吗?常用IDE工具分享
    近期有不少刚学编程的小伙伴来问我,市面上那么多IDE工具,该怎么选?今天在这里跟大家分享几款个人比较钟爱的IDE工具,供大家参考。VisualStudio 优点:支持多种语言,包括C#,C++,VisualBasic等,可用于Web应用程序、桌面应用程序、移动应用程序等开发;集成了多种工具和功能,例如调试器......
  • 分享一个提高运维效率的 Python 脚本
    哈喽大家好我是咸鱼,今天给大家分享一个能够提升运维效率的python脚本咸鱼平常在工作当中通常会接触到下面类似的场景:容灾切换的时候批量对机器上的配置文件内容进行修改替换对机器批量替换某个文件中的字段对于Linux机器,咸鱼可以写个shell脚本或者直接批量使用sed命......
  • make 备忘清单_开发速查表分享
    make备忘清单make是一条计算机指令,是在安装有GNUMake的计算机上的可执行指令。该指令是读入一个名为makefile[1]的文件,然后执行这个文件中指定的指令。Make可以从一个名为makefile的文件中获得如何构建你所写程序的依赖关系,Makefile中列出了每个目标文件以及如何由其他文件......
  • 【触想智能】工业触摸显示器触摸失灵原因分析与解决办法分享
    工业触摸显示器,顾名思义就是带有触摸功能的工业显示器。目前工业触摸显示器已经在智能制造业、人工智能、商业金融、城市交通、智慧医疗、学校教育等诸多领域得到广泛应用,对社会经济发展具有很大的促进作用,同时也推升了人们生活的便捷性。工业触摸显示器属于电子产品,我们......
  • SQL技术分享和问题交流
    1.多数表在建表时考滤了主键,但是应用查询时并没有及是补足索引,多数表没索引,造成查询数据慢。建议建立标准数据库,并配置索引。2.分表太细,union多表查询消耗大量服务器的SQL编译时间。建议分表最小到年即可,要有索引。分表尽量按热数据、冷数据的条件去分,避免用时间等区分。3.巨......
  • 安卓免费听歌软件分享 卡音
    卡音 下载地址:https://whykang.lanzouy.com/iF2uQ09e7bif 备用地址:https://wwi.lanzoup.com/i2G5j0v0kf0h ......