首页 > 其他分享 >初涉项目架构

初涉项目架构

时间:2024-07-14 19:58:19浏览次数:12  
标签:SOA 服务 请求 项目 架构 初涉 分布式

初涉项目架构

  • 了解传统项目与互联网项目的区别

    • 传统项目指OA、HR、CRM这种,互联网项目则是常见的app

    • 首先是受众(服务对象)不同,传统项目是面向公司、学校等群体,互联网项目则是面向全体网民

      1. 两种对象数量不同,差异较大
      2. 两种对象对产品的忍耐力不一样
  • 互联网项目特点:

    • 用户多、 流量大,并发大、 海量数据
    • 易受攻击
    • 功能繁杂、 变更快
  • 大型互联网项目的架构目标;

    1. 高性能
      • 响应快:发出请求到收到响应数据的时间
      • 并发数:系统同时能处理的请求数量
        • 并发连接数:发起请求并建立连接。每秒服务器连接的总TCP数量
        • 请求数:QPS(Query Per Second),一次TCP连接可能产生多次请求
        • 并发用户数:单位时间内有多少用户
      • 吞吐量:单位时间内系统能处理的请求数
        • QPS
        • TPS(Transactioins Per Second)
          • 一次页面的访问属于一个TPS
          • 一次页面的请求,可能产生多次对服务器的请求
          • 所以结论: QPS >= 并发连接数 >= TPS
    2. 高可用: 网站服务一直可以正常访问
    3. 可伸缩:通过硬件 / 增加减少,提高 / 降低处理能力
    4. 高可扩展:系统间耦合低
    5. 安全性:网站安全访问,数据加密,安全存储
  • 分布式系统(满足上述目标);

  • 在这里插入图片描述

    • 集群和分布式:

      • 集群:很多’‘人’'做一样的事
        • 一个业务模块,在多台服务器上都有部署
      • 分布式:很多’‘人’'做不一样的事
        • 一个大的业务系统,拆分为小的业务模块,分别部署在多台服务器
    • 架构演进:

      单体架构 —> 垂直架构 —> 分布式架构 —> SOA架构 —> 微服务架构

      1. 单体架构:
        • 优点:
          • 简单:开发部署方便。小型项目的首选
        • 缺点一大堆:
          • 启动慢、 可靠性查、拓展性差、性能低
      2. 垂直架构:
        • 垂直架构是指将大的单体架构中的多个功能模块拆分成多个独立项目,形成多个单体架构
        • 拆分后,对于之前的一个大的单体架构的存在问题就有所减轻
        • 但垂直架构不够先进的地方就在于,拆分后的每个项目中存在很多重复的模块,问题出于它不能远程调用
      3. 分布式架构:
        • 分布式架构就是在垂直架构基础上,将那些重复的模块抽取出来,作为独立的服务,供其他调用者消费,以实现服务的共享和重用
        • RPC:Remote Procedure Call(远程过程调用) 有非常多的协议和技术来实现RPC的过程。比如:HTTP REST风格、 Java RMI规范、 WebServiece SOAP协议、 Hession等
        • 缺点:
          • 服务提供方一旦产生变更(如 地址等),所有消费者都需要变更
      4. SOA架构:
        • SOA(Service - Oriented Architecture面向服务的架构)是一个组件模型,ta将应用程序的不同功能单元(服务)进行拆分,并在这些服务之间定义良好的接口和契约联系起来
        • 提供了ESB(Enterprise Service Bus)企业服务总线,相当于一个服务中介。主要是提供了服务之间的交互和治理。ESB包含了负载均衡、流量控制、加密处理、服务监控、异常处理、监控告急等等
        • 上面分布式的缺点就得以改善了,消费者不用变更了,让那个中介去变更
      5. 微服务架构:
        • 微服务架构是在SOA上做的升华,微服务架构强调”业务需要彻底的组件化和服务化“,原有的单个业务系统拆分成多个独立开发、设计、运行的小应用。这些小应用之间通过服务完成交互和集成。
        • 微服务架构 = 80% SOA服务架构思想 + 100% 组件化架构思想 + 80% 领域建模思想
        • 特点:
          • 服务实现组件化:开发者可以自由选择开发技术
          • 服务之间交互一般使用REST API
          • 去中心化:每个微服务有自己的数据库
        • 服务实现组件化:开发者可以自由选择开发技术
        • 服务之间交互一般使用REST API
        • 去中心化:每个微服务有自己的数据库
        • 方便部署、测试、运维

标签:SOA,服务,请求,项目,架构,初涉,分布式
From: https://blog.csdn.net/2302_80742310/article/details/140409418

相关文章

  • 在 Linux 中的 Nginx 上部署 Django 项目
    要在Linux中的Nginx上部署Django项目,一般需要以下步骤:安装必要的软件安装Python和相关依赖。安装Django项目所需的库。配置Django项目完成Django项目的开发和测试。配置项目的 settings.py 文件,例如设置数据库连接、静态文件路径等。安装和配置uWSGI......
  • .NET MAUI开源架构_2.什么是 .NET MAUI?
    1.什么是.NETMAUI?             .NET多平台应用UI(.NETMAUI)是一个跨平台框架,用于使用C#和XAML创建本机移动和桌面应用。使用.NETMAUI,可从单个共享代码库开发可在Android、iOS、macOS和Windows上运行的应用。         .NETMAUI是......
  • springboot+vue前后端分离项目-项目搭建10-验证码功能
    本次演示的验证码功能只涉及前端,而且功能简单1.新建vue/src/components/ValidCode.vue<template><divclass="ValidCodedisabled-select":style="`width:${width};height:${height}`"@click="refreshCode"><spanv-f......
  • 《项目管理》-笔记2
    1.项目集定义项目集是一组相互关联且被协调管理的项目、子项目集和项目集活动,以便获得分别管理所无法获得的利益。项目集有三个核心特征:(1)多个项目(2)统一战略目标(3)统一配置资源项目组合管理利用了MPT的概念,并且也应用了三个关键评估标准来衡量项目:项目承担的成本、存在的风险......
  • PMP-项目经理的能力
    技术项目管理与项目、项目集和项目组合管理特定领域相关的知识、技能和行为,即角色履行的技术方面。实际当中更多认为把技术和管理能力融合在一起,以管理带技术。战略和商务管理关于行业和组织的知识和专业技能,有助于提高绩效并取得更好的业务成果。组织的知识: 使命、愿景、......
  • 封装C++项目为dll
    这是头文件,定义了一个接口类IMyInterface。#pragmaonce#ifndefMY_INTERFACE_H#defineMY_INTERFACE_H#define_CRT_SECURE_NO_WARNINGS#defineMY_DLL_API__declspec(dllexport)//定义导出到DLL中的宏//接口类,用于导出到DLLclassMY_DLL_APIIMyInterface{pub......
  • PMP-项目管理办公室PMO
    PMO更多做的是项目治理项目经理的目标是项目成功PMO的目标是项目管理的妥当和项目支持的得当,以及项目的健康程度。PMO更注重的是支持、管理、规范,PMO更喜欢过程透明、可控、有序。考试中PMO不明确指定的话默认是支持型支持型•担当顾问的角色。向项目提供模版、最佳实践、......
  • AnnotatedTransformer中文pycharm项目版
    本文项目代码链接为:AnnotatedTransformer中文pycharm项目版本文是学习AnnotatedTransformer过程中产出的笔记,原项目代码来自于Annotated-Transformer,本项目主要是将原文中的jupyter版本的代码转换成pycharm项目的形式来进行注释和运行(jupyter中的可视化部分没有添加到项目......
  • 全网最全-适用于OA、CRM、WMS等单体系统的项目亮点(二)
    文章目录前言项目亮点一场景描述实现思路redis实现自动幂等的原理图:一:搭建redis的服务Api二:自定义注解AutoIdempotent三:token创建和检验四:拦截器的配置五:保障业务数据的幂等性总结前言在传统的OA办公自动化、CRM客户关系管理、WMS仓储管理系统中,使用的技术栈比较老......
  • PMP-项目运行环境
     影响项目环境有两大客观因素和人,两大客观因素:事业环境因素和组织过程资产。事业环境因素包括组织外部因素和组织内部因素,组织内部因素是组织可以改变的,但是项目不能我改变;在默认条件下事业环境因素是项目无法改变的。事业环境因素是指项目团队不能控制的,将对项目产生影响、......