一、技术架构
项目是采用目前比较流行的 SpringBoot/SpringCloudAlibaba构建微服务电商项目,从项目中台架构技术选型、模块设计、基础设施的构建、分布式解决方 案、互联网安全架构设计、Devops与K8S容器化部署,apm应用程序性能监控、实现一套串联的电商项目。
二、技术图
三、技术选型
核心架构技术方案
- 项目采用中台化设计,分为技术中台、业务中台、组织中台;
- 基于SpringBoot+SpringCloudAlibaba构建微服务电商项目
- 使用 Nacos 作为注册中心与配置中心,实现服务治理;
- 使用新一代 Gateway 网关框架管理服务请求入口;
- 使用 Ribbon 实现本地负载均衡器和 OpenFegin 客户端调用工具;
- 使用 Sentinel 服务保护框架(系统自适应限流、降级、热词限流等);
- 微服务 API 接口安全控制与单点登陆系统 CAS+JWT+Oauth2.0;
分布式基础设施
- 分布式任务调度平台 XXL-Job;
- 分布式事务解决方案 Seata;
- 分布式锁 redislock/Redisson 与高可用设计原理;
- 分布式配置中心 Nacos ;
- 高并发分布式全局 ID 生成雪花算法;
- 基于 canal 结合 MQ 解决 MySQL 与 Redis/ES 一致性问题
- 基于网关统一解决微服务接口跨域问题
- 基于 openresty+lua+Redis 实现亿级商品详情页面
- 基于SkyWalking实现分布式系统监控APM;
项目运营与部署环境
- 分布式设施环境,统一采用 docker 安装;
- 使用 jenkins+结合 kubernetes(k8s)容器部署技术;
- 微服务 API 管理 ApiSwagger;
- 使用 GitLab 代码管理;
- 数据库使用MySQL5.7以上;
- 使用七牛云服务器对静态资源实现加速;
- 构建企业级 Maven 私服仓库管理jar包;
四、架构相关名词
Saas/Paas/IaaS/APM相关概念
IaaS:基础设施服务,Infrastructure-as-a-service
PaaS:平台服务,Platform-as-a-service
SaaS:软件服务,Software-as-a-service
Saas概念
1.软件即服务:SaaS,是Software-as-a-Service的缩写名称,意思为软件即服务,即通过网络提供软件服务。SaaS平台供应商将应用软件统一部署在自己的服务器上,客户可以根据工作实际需求,通过互联网向厂商定购所需的应用软件服务,按定购的服务多少和时间长短向厂商支付费用,并通过互联网获得Saas平台供应商提供的服务。 SaaS 应用软件有免费、付费和增值三种模式。付费通常为“全包”费用,囊括了通常的应用软件许可证费、软件维护费以及技术支持费,将其统一为每个用户的月度租用费,SaaS不仅适用于中小型企业,所有规模企业都可以从SaaS中获利。
以上摘自于百度百科:https://baike.baidu.com/item/SaaS
2.Saas简单通俗易懂理解为就是:
2.1:比如每特教育开发了一套在线教育平台系统,使用Java语言编写、在传统的模式的情况下,将整套在线教育的软件产品部署到企业内多个终端交付之后,企业还需要专门请专门的IT人员来维护;
2.2:就像买房,你需要装修、买家具,之后东西坏了还需要自己来维护、而Saas模式,为企业搭建所有网络基础设施软件、硬件、运营平台,进行前期的实施和后期的维护、企业无需购买硬件 也不需要自己建机房、招聘IT人员,就像现在市面上各种精装修房一样 对外出租大家可以直接拎包入住,而且东西坏了有专门的人来维护 这时候更像是租赁公司提供的服务,简单理解saas模式的核心: 将软件的所有权 变成了使用权。
2.3: 比如腾讯课堂提供Saas服务,很多机构入职腾讯课堂使用腾讯课堂在线教育系统。
3.SaaS 是软件的开发、管理、部署都交给第三方,不需要关心技术问题,可以拿来即用。普通用户接触到的互联网服务,几乎都是 SaaS。
Paas概念
1.Paas平台 Pass平台即(Platform-as-a-Service:平台即服务),把应用服务的运行和开发环境作为一种服务提供的商业模式。
2.Paas可以简单理解为,构建在IaaS之上提供软件应用开发组件、运行环境存储接口和中间件,
通常Paas和IaaS是需要懂一定的技术背景。
3.提供给消费者的服务是把客户采用提供的开发语言和工具(例如Java,python, .Net等)开发的或收购的应用程序部署到供应商的云计算基础设施上去。
4.客户不需要管理或控制底层的云基础设施,包括网络、服务器、操作系统、存储等,但客户能控制部署的应用程序,也可能控制运行应用程序的托管环境配置;
IaaS概念
1.IaaS(Infrastructure as a Service),即基础设施即服务。指把IT基础设施作为一种服务通过网络对外提供,并根据用户对资源的实际使用量或占用量进行计费的一种服务模式;
2.在这种服务模型中,普通用户不用自己构建一个数据中心等硬件设施,而是通过租用的方式,利用 Internet从IaaS服务提供商获得计算机基础设施服务,包括服务器、存储和网络等服务;
3.提供给消费者的服务是对所有计算基础设施的利用,包括处理CPU、内存、存储、网络和其它基本的计算资源,用户能够部署和运行任意软件,包括操作系统和应用程序。
消费者不管理或控制任何云计算基础设施,但能控制操作系统的选择、存储空间、部署的应用,也有可能获得有限制的网络组件(例如路由器、,防火墙,、负载均衡器等)的控制。
4…IaaS 云服务: 阿里云、腾讯云、百度云、华为云等。
Apm概念
(Application Performance Monitoring,即APM)工具 实现服务追踪、监控报警等。
SkyWalking 提供了一种简便的方式来清晰地观测分布式系统
Devops
devops开发运维一体化 基于docker或者k8s实现
五、Maven阿里云加速镜像
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>central</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/131262.html