分布式服务体系框架
- 格式:ppt
- 大小:484.00 KB
- 文档页数:11
技术架构方案第1篇技术架构方案一、背景随着信息化建设的不断深入,我国各行业对技术架构的需求日益增长。
为满足业务发展需求,提高系统稳定性、安全性和可扩展性,本项目将围绕业务目标,结合现有技术资源,制定一套合法合规的技术架构方案。
二、目标1. 满足业务需求,提高系统性能和用户体验。
2. 确保系统稳定、安全、可扩展,降低运维成本。
3. 合法合规,遵循国家和行业标准。
4. 提高开发效率,降低开发成本。
三、技术选型1. 开发语言与框架- 后端:采用Java语言,Spring Boot框架进行开发。
- 前端:采用Vue.js框架,Element UI组件库进行开发。
2. 数据库- 关系型数据库:采用MySQL数据库。
- 非关系型数据库:采用Redis数据库。
3. 中间件- 消息队列:采用RabbitMQ。
- 分布式缓存:采用Redis。
- 分布式服务框架:采用Dubbo。
4. 容器技术- 采用Docker容器技术,实现应用轻量化部署。
5. 云计算- 采用阿里云服务,包括但不限于ECS、RDS、OSS等。
四、系统架构1. 整体架构本方案采用前后端分离的架构模式,后端负责数据处理,前端负责界面展示。
系统架构分为以下几个层次:- 用户层:提供用户操作界面,包括Web端和移动端。
- 前端层:负责接收用户请求,与后端进行数据交互,展示数据。
- 后端层:负责处理业务逻辑,提供数据接口。
- 数据库层:存储系统数据。
- 中间件层:提供消息队列、缓存、分布式服务等支持。
2. 网络架构采用分布式部署,网络架构分为以下三个部分:- 用户访问网络:用户通过互联网访问系统。
- 内部业务网络:内部服务器、数据库、中间件等设备互联。
- 管理网络:用于系统运维管理。
3. 安全架构遵循国家相关法律法规,建立完善的安全架构:- 身份认证:采用用户名密码、手机验证码等方式进行身份认证。
- 权限控制:实现用户、角色、菜单等多维度的权限控制。
- 数据加密:采用SSL加密技术,保证数据传输安全。
HSF中间件的使用场景1. 什么是HSF中间件?HSF(High-Speed Service Framework)是阿里巴巴集团自主研发的一款高性能、高可用的分布式服务框架。
它是基于Java语言开发的,用于构建大型分布式系统的中间件。
HSF提供了一整套的服务治理、服务调用、服务监控等功能,帮助开发者快速构建高效可靠的分布式应用。
2. HSF中间件的使用场景2.1 分布式服务治理HSF中间件提供了一系列的服务治理功能,包括服务注册与发现、负载均衡、服务降级、容错处理等。
这些功能能够帮助开发者更好地管理和调度分布式系统中的各个服务,提高系统的可用性和稳定性。
2.1.1 服务注册与发现在分布式系统中,各个服务的地址和状态是动态变化的,需要实时进行注册和发现。
HSF提供了注册中心来管理服务的注册与发现,开发者只需要将服务注册到注册中心,就可以通过注册中心来获取服务的地址和状态信息。
2.1.2 负载均衡在分布式系统中,不同的服务可能会有不同的负载情况,为了提高系统的性能和可用性,需要将请求均匀地分发到各个服务实例上。
HSF中间件提供了多种负载均衡算法,包括轮询、随机、权重等,开发者可以根据实际情况选择合适的负载均衡算法。
2.1.3 服务降级在高并发的场景下,服务可能会出现响应延迟或者故障,为了保证系统的稳定性,需要对服务进行降级处理。
HSF中间件提供了服务降级的功能,开发者可以根据实际情况配置服务的降级策略,当服务出现问题时,可以自动切换到备用方案,保证系统的正常运行。
2.1.4 容错处理在分布式系统中,服务之间的调用可能会出现网络延迟、超时等问题,为了保证系统的可用性,需要对调用进行容错处理。
HSF中间件提供了容错处理的功能,包括重试、熔断、限流等,开发者可以根据实际情况配置容错策略,保证系统的稳定运行。
2.2 分布式服务调用HSF中间件提供了一套高性能的分布式服务调用框架,可以帮助开发者快速构建分布式系统。
tcc分布式事务框架体系解析⽬录前⾔碎语以电商下单为例订单服务:库存服务:⽀付服务:hmily事务框架怎么做的?实现HmilyTransactionInterceptor接⼝dubbo的aspect抽象实现dubbo的HmilyTransactionInterceptor实现启动事务处理器处理逻辑如下需要注意三个地⽅参数者事务处理器⽂末结语前⾔碎语楼主之前推荐过2pc的分布式事务框架LCN。
今天来详细聊聊TCC事务协议。
⾸先我们了解下什么是tcc,如下图tcc分布式事务协议控制整体业务事务分为三个阶段。
try:执⾏业务逻辑confirm:确定业务逻辑执⾏⽆误后,确定业务逻辑执⾏完成cancel:假如try阶段有问题,执⾏cancel阶段逻辑,取消try阶段的数据这就需要我们在设计业务时,在try阶段多想想业务处理的折中状态,⽐如,处理中,⽀付中,进⾏中等,在confirm阶段变更为处理完成,或者在cancel阶段变更为处理失败。
以电商下单为例假设我们有⼀个电商下单的业务,有三个服务组成,订单服务处理下单逻辑,库存服务处理减库存逻辑,⽀付服务处理减账户余额逻辑。
在下单服务⾥先后调⽤减库存和减余额的⽅法。
如果使⽤tcc分布式事务来协调事务,我们服务就要做如下设计:订单服务:try:⽀付状态设置为⽀付中confirm:设置为⽀付完成cancel:设置为⽀付失败库存服务:多加⼀个锁定库存的字段记录,⽤于记录业务处理中状态try:总库存-1,锁定库存+1confirm:锁定库存-1cancel:总库存+1,锁定库存-1⽀付服务:多加⼀个冻结⾦额的字段记录,⽤于记录业务处理中状态try:余额-1,冻结⾦额+1confirm:冻结⾦额-1cancel:余额+1,冻结⾦额-1tcc分布式事务在这⾥起到了⼀个事务协调者的⾓⾊。
真实业务只需要调⽤try阶段的⽅法。
confirm和cancel阶段的额⽅法由tcc框架来帮我们调⽤完成最终业务逻辑。
腾讯云架构工程师认证(TCA)考试真题及答题解析(二)01.关于VPN连接的使用约束,下列说法错误的是哪项?A、VPN参数配置完成后,需要在子网关联的路由表中添加指向VPN网关的路由策略B、VPN连接稳定性依赖运营商公网质量,暂时无法提供SLA服务协议保障C、主要用于腾讯云私有网络和外部IDC之间建立安全可靠的加密网络通信D、在配置完路由表之后,即可激活此VPW通道回答错误。
正确答案为:D在配置完路由表之后,需要在VPC内云主机Ping对端网段中的IP以激活此VPN通道。
02.弹性网卡是绑定私有网络内云服务器的一种弹性网络接口,可以将云主机绑定弹性网卡接入网络。
下列关于弹性网卡说法错误的是哪项?A、一台云服务器可以绑定多个弹性网卡B、弹性网卡对配置管理网络与搭建高可靠网络方案有较大帮助C、弹性网卡可以绑定不同可用区下的云服务器D、弹性网卡可以在相同可用区下的多个云主机间自由迂移回答错误。
正确答案为:C弹性网卡有可用区属性03.私有网络内的CVM想要主动的访问互联网有多种方式,其中以下哪项接入互联网的描述是错误的?A、公网IPB、NAT网关C、公网网关D、对等连接回答错误。
正确答案为:D对等连接主要适用于内网互联互通的情况04.您已经在腾讯云上使用了CDN服务来加速用户体验,但是您担心如果大量的DDOS 攻击来临时,可能会额外支出大量不必要的费用,此时您应该使用以下哪项配置来避免超出预期的带宽流量费用?A、带宽封顶阈值B、缓存过期时间C、访问控制D、回源配置回答错误。
正确答案为:A开启带宽封顶阈值配置后,再超过指定的带宽后,采用直接回源的方式来避免大量的CDX流量费用问题05.以下关于不合理的架构可能会出现的问题以及优化的描述中,正确的有哪项?A、不合理的架构可能会导致访问延迟等性能不佳的问题,可以通过在架构中引入CDN, DSA等技术来提升用户体验B、不合理的架构可能会导致成本过高的问题,可以通过降低服务器配置来解决此问题C、不合理的架构可能会导致业务中断的问题,可以通过大量预留资源的方式来解决此问题D、不合理的架构可能会导致运维困难的问题,可以招聘各方向技术专家解决此问题回答错误。
轻量级分布式任务调度框架(⼀、LTS简介、特点、⼯作流程)LTS【轻量级分布式任务调度框架(Light Task Schedule)】(1) LTS简介LTS(light-task-scheduler)主要⽤于解决分布式任务调度问题,⽀持实时任务,定时任务和Cron任务。
有较好的伸缩性,扩展性,健壮稳定性⽽被多家公司使⽤,同时也希望开源爱好者⼀起贡献。
(2) LTS框架概况(2.1) LTS 四种节点:JobClient:主要负责提交任务, 并接收任务执⾏反馈结果。
JobTracker:负责接收并分配任务,任务调度。
TaskTracker:负责执⾏任务,执⾏完反馈给JobTracker。
LTS-Admin:主要负责节点管理,任务队列管理,监控管理等。
详解:其中JobClient,JobTracker,TaskTracker节点都是⽆状态的。
可以部署多个并动态的进⾏删减,来实现负载均衡,实现更⼤的负载量, 并且框架采⽤FailStore 策略使LTS具有很好的容错能⼒。
LTS注册中⼼提供多种实现(Zookeeper,redis等),注册中⼼进⾏节点信息暴露,master选举。
(Mongo or Mysql)存储任务队列和任务执⾏⽇志, netty or mina做底层通信, 并提供多种序列化⽅式fastjson, hessian2, java等。
(2.2) LTS⽀持任务类型实时任务:提交了之后⽴即就要执⾏的任务。
定时任务:在指定时间点执⾏的任务,譬如今天3点执⾏(单次)。
Cron任务:周期性任务,CronExpression,和quartz类似(但是不是使⽤quartz实现的)譬如 0 0/1 * * * ?⽀持动态修改任务参数,任务执⾏时间等设置,⽀持后台动态添加任务,⽀持Cron任务暂停,⽀持⼿动停⽌正在执⾏的任务(有条件),⽀持任务的监控统计,⽀持各个节点的任务执⾏监控,JVM监控等等.(3) LTS架构图组件说明:节点组NodeGroup:⼀个节点组等同于⼀个⼩的集群,同⼀个节点组中的各个节点是对等的,等效的,对外提供相同的服务。