某大型业务系统技术栈介绍【应对面试】
微服务架构【图】
微服务架构【概念】
微服务架构,是一种架构模式,它提倡将单一应用程序划分成一组小的服务,服务之间互相协调、互相配合,为用户提供最终价值。在微服务架构中,服务与服务之间通信时,通常是通过轻量级的通信机制,实现彼此间的互通互联、互相协作。所谓轻量级通信机制,通常是指与语言无关、与平台无关的这类协议。通过轻量级通信机制,使服务与服务之间的协作变得简单、标准化。
主要技术
1、服务注册发现: Nacos
2、服务配置中心: Nacos
3、服务调用:OpenFeign、Dubbo
4、服务网关:Spring Cloud Gateway,Apisix
5、熔断限流: Sentinel
6、服务监控: Spring Boot Actuator
、n9e、Istio(一个开源的服务网格解决方案,包含了Prometheus - Monitoring system & time series database)
7、分布式数据库:DRDS(分库分表,表冗余-按不同字段分库)
8、分布式缓存:Redis
9、分布式文件: MinIO(适用于大规模对象存储场景,支持多租户和细粒度的访问控制)
10、消息队列:Rocket MQ
11、分布式事务: Seata,用了其AT模式、TCC模式两种,没用Saga模式(无锁)
12、定时任务:Elasticjob(分片)
13、链路跟踪:SkyWalking
14、分布式日志:ELK(Elasticsearch , Logstash, Kibana)
15、容器云:Kubernetes、Rancher(开源的容器管理平台,使得用户可以在不同的云环境中灵活部署和管理容器化应用)
16、CI/CD持续集成/部署:GitLab+GitLab Runner
17、代码仓库:GitLab
18、代码质量:阿里PMD、Junit、Swagger(可视化在线接口测试)
19、镜像仓库:Harbor(镜像仓库)
重要提示【亮点】
1、点击上面的架构组件名称(含链接)进官方网站/下载地址/官方文档等
常见的微服务架构
常见的微服务架构主要包括以下几种:
-
洋葱架构:由Jeffrey Palermo提出,洋葱架构强调依赖倒置原则,所有代码依赖于更中心的层,但代码不能依赖于远离核心的层。这种架构偏向于面向对象的编程,将对象置于所有其他对象之上,适用于长期存在的业务应用程序以及具有复杂行为的应用程序。
-
整洁架构:由Robert C. Martin提出,整洁架构是基于洋葱架构的概念,但各层的细节有所不同。它的核心称为“实体”,代表企业范围的业务规则。整洁架构强调关注点分离,使得应用更容易维护。
-
微服务聚合模式:这种模式通过构建一个聚合服务来聚合多个微服务的响应数据,形成一个统一的结果返回给客户端。它简化了客户端的操作,减少了与多个微服务交互的复杂性,但可能成为性能瓶颈。
-
微服务共享模式:在这种模式下,每个微服务拥有自己的独立数据库,以确保服务之间的高内聚性和低耦合性。然而,在某些情况下,多个微服务可能需要共享数据,这通常被视为过渡性设计,因为共享数据库会导致微服务之间的紧密耦合。
-
微服务代理模式:代理服务充当其他微服务的代理,处理服务之间的通信。通过代理服务,客户端的请求被转发给后端服务进行处理。这种模式解耦了客户端和微服务之间的交互,易于管理、监控和控制,但需要额外的资源来处理请求
面试应对
1、面试提问深挖某方面的知识细节,答得上就答,答不上就甩,如:Rancher不熟悉的可以甩给K8S运维工程师。当然对于P7及以上岗位90%以上需要能对答如流
说明
1、持续更新......
附件一:P7
P7和P8是阿里巴巴职级体系中的高级职位,分别对应技术专家和高级专家级别。12
在阿里巴巴的职级体系中,P序列代表技术岗位,其中P7和P8是高级职位。具体来说:
- P7:技术专家,通常需要8年以上的工作年限,核心能力要求是指挥多个团队达成目标。P7在团队中扮演重要角色,负责跨部门合作和沟通,对所在行业的认知要达到专业水平。
- P8:高级专家,通常需要10年以上的工作年限,核心能力要求不仅包括技术和管理能力,还需要对公司内外的业务水平和整个业界的环境有较深了解。P8在公司内部有较高的威信,对行业的理解比P7更深,甚至能影响行业标准。
薪资和福利待遇
- P7:平均月薪约39000元,年终奖约3.4个月,部分开始有股票。
- P8:平均月薪约52000元,年终奖约5.2个月,绝大部分P8都有股票,年薪中位数约150万。
职业发展路径
从P5到P8,考察的核心逐渐从技术能力向业务能力、管理能力等多维度转变。P5是职场新手,P6是项目能手,P7是团队专家,而P8则需要具备更高的业务协调和组织能力,能够独立对问题做出判断并影响公司策略。