admin管理员组文章数量:1588954
上篇文章里,我给你留了道思考题,让你作为公司的CTO,想一想我们提到的电商系统,它的技术选型应该是什么样的?
- 使用什么编程语言和技术栈?
- 需要哪些第三方的框架和云服务?
- 存储系统该怎么选型?
对于上述问题的思考和回答,我认为需要从这两个原则来考虑:
- 团队的人员配置,尽量选择大家熟悉的技术
- 考察选择的技术它的生态是不是够完善
这两个原则,在选择编程语言、技术栈、云服务和存储的时候都是适用的。
其实技术选型本身没有好与坏,更多的是选择“合适”的技术。
技术选型
你作为初创公司的CTO,在为电商系统选择技术栈时,以下是一些常见的编程语言和技术栈、第三方框架和云服务,以及存储系统选型的建议。
只选择最适合你的特定业务需求的技术,才是最重要的。
下面提到的是一些常见和流行的选择,但并不是唯一的解决方案。
编程语言和技术栈
后端开发:
- Java:使用Java作为主要后端语言时,可以选择Spring框架。Spring提供了全面的功能和模块,例如Spring Boot用于快速构建应用程序,Spring MVC用于处理Web请求,Spring Data用于数据库操作,Spring Security用于身份验证和授权等。
- Python:可以选择Django框架。Django是一个高效且功能强大的Python框架,提供了ORM(对象关系映射)和内置的管理后台等特性,适合快速开发和维护。
- Node.js:对于更轻量级和高并发的应用程序,可以选择Express.js框架。Express.js是一个快速且灵活的Node.js框架,适合构建RESTful API和实时应用程序。
前端开发:
- JavaScript:使用JavaScript作为主要前端语言,结合流行的前端框架,如React、Angular或Vue.js,以提高开发效率和用户体验。
关系型数据库:
- 对于传统的关系型数据结构,如用户信息、订单和库存等,可以选择MySQL或PostgreSQL作为主要数据库,它们具有成熟的功能和广泛的社区支持。
非关系型数据库:
- 对于具有更灵活数据结构或需要快速读取和写入的数据,可以考虑使用MongoDB。MongoDB是一个流行的文档数据库,具有强大的横向扩展能力和灵活的数据模型。
第三方框架和云服务
第三方框架
- 网关:springcloud gateway,kong,zuul
- 注册中心:nacos, consul
- 配置中心:nacos, apollo
- 调度中心:elastic-Job, xxl-job
- 日志中心:elk
- 脚手架开发框架:mybatis-plus
- 技术框架标准:springboot,springcloud, springcloud alibaba
- 分库分表组件:sharding-jdbc
- 熔断降级:hystrix
- 负载均衡:ribbon
- 消息中间件:rocketmq, rabbitmq
- 服务监控:springboot admin, pinpoint, supervisor
- 链路追踪:spring cloud sleuth(zipkin)
- 爬虫框架:webmagic
- 分布式事务:seata
- 分布式缓存:redis
- 应用缓存:caffeine, guava, jetcache
- 其他:docker, jenkins, nexus, puppet, k8s, ansible
云服务
- 阿里云
- 腾讯云
- 等等
这里推荐阿里。
- 因为其在电商领域,已深耕多年,电商相关技术的生态圈最早构建出来,且相对成熟完善。
- 它的产品种类比较多,基本能满足电商系统的开发需要。如图片视频等文件存储,可采用对象存储OSS。如商品搜索,可采用开放搜索OpenSearch,它提供了专门针对电商的分词支持。
存储系统选型
文件存储:
- 对于电商系统,你可能需要存储和管理大量的图片和其他媒体文件,可以考虑使用云存储服务,比如阿里oss,腾讯cos,七牛存储等。它们提供了高可用性、可扩展性和持久性的存储解决方案。
数据库存储:
- 根据你的数据模型和需求选择合适的数据库类型。如果你的数据是结构化的,关系型数据库如MySQL或PostgreSQL可能是一个不错的选择。
- 如果你的数据是半结构化或非结构化的,如文档、声音、图像文件等,NoSQL数据库如MongoDB或Elasticsearch可能更适合。
最终的选择:取决于你的业务需求、团队技能和可承受的成本。
重要的是确保你选择的技术能够满足你的功能要求,并且具有可扩展性和可维护性,以支持未来的业务增长。
我的建议
- 开始阶段建议首选java技术栈,如果团队能驾驭别技术栈也可以
- 前端可能只做小程序,先跑起来,再决定是否做App
- 数据库使用mysql或最熟悉的
- 图片视频存储直接购买公有云产品,还需要CDN
- 支付框架如第三方支付SDK 等
- 还要申请一堆东西域名、证书...
这对小规模的团队,特别是首创团队,这是一个非常务实且合理的选择。
因为创业公司最重要的事是什么?第一个MVP产品版本,需要快速出成品,配套的技术也是同理。
思考题
当系统在创建和更新订单时,如何保证数据准确无误?
期待、欢迎你留言或在线联系,与我一起讨论交流,“一起学习,一起成长”。
上一章教程
电商系统架构设计系列(一):电商系统到底是如何设计出来的?
推荐阅读
- 架构师:不想当架构师的程序员不是好程序员
- 架构师技能修炼图
- 技术破局,业绩狂飙十倍:亿级电商平台重构大揭秘
- 当我们聊高并发时,到底是在聊什么?如何真正地掌握高并发设计能力?
- 【总结】我的十二个架构设计原则
- 微服务架构实战 - 我的经验分享总结2019(系统架构师)架构演进过程-从信息流架构到电商中台架构
系列分享
- 高可用高并发实战专栏
- DevOps实战专栏
- SpringBoot系列专栏
- 微服务架构实战
- 架构思维成长系列
------------------------------------------------------
------------------------------------------------------
我的CSDN主页
关于我(个人域名,更多我的信息)
我的开源项目集Github
期望和大家 一起学习,一起成长,共勉,O(∩_∩)O谢谢
如果你有任何建议,或想学习的知识,可与我一起讨论交流
欢迎交流问题,可加个人QQ 469580884,
或者,加我的群号 751925591,一起探讨交流问题
不讲虚的,只做实干家
Talk is cheap,show me the code
版权声明:本文标题:电商系统架构设计系列(二):电商系统的技术选型要怎么做才更有效呢? 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/xitong/1728049131a1143475.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论