zoukankan      html  css  js  c++  java
  • 技术架构和业务实现

    背景

    通过近段时间对公司部分项目的了解,对公司软件系统架构平台和业务实现提出一些个人的意见和建议。

    技术平台

    公司现在项目较多,使用的基础架构也各不相同,前端使用Jquery、Extjs、Bootstrap、Vue等,后台使用hibernate、mybatis等。因为技术栈较复杂,开发人员需要对各个技术栈都需要了解。因此需要实现项目平台的统一,降低业务开发复杂度,实现平台的基础目标:

    1. 所有项目采用相同的平台架构(包括前端和后台)。
    2. 保证平台的可升级、延续性,可实现平台层的无缝升级。
    3. 持续维护平台架构,提升其稳定性、可用性。
    4. 实现前后台分离,提高接口的服用度。
    5. 实现前后台的热升级功能。

    为了实现平台的无缝升级和扩展,平台架构的主要设计及开发准则

    1. 业务系统开发中的注解等,采用经过封装的一维大成注解。
    2. 系统基础功能(如配置、日志、监控、接口调用、数据库等),采用统一的设计封装。
    3. 前后台实现完全分离,后台逐步采用微服务方式,前台可以采用VUE等模块化解决方案。

    注解

    现有框架采用注解的方式实现AOP等功能,可以将常用的注解进行封装,减少系统中注解数量,并可以不断对注解功能进行丰富和扩展。实现平台的扩展和升级。

    配置

    结合本地配置、数据库配置等方式,统一封装配置功能,实现配置的灵活性。

    1. 实现配置的可视化,可以通过系统进行配置管理。
    2. 配置方式多样性,可实现配置的本地文件存储、数据库存储等方式。

    日志

    项目采用统一的日志记录方式,通过封装可以实现日志记录默认项的增加。提高日志记录的准确性。

    1. 自动增加日志记录时的方法、时间等信息。
    2. 日志中增加上下文链路记录,实现同一上下文中的日志的汇总。
    3. 实现日志线程记录,降低日志记录对系统响应性的影响。

    日志一个很重要的需求就是上下文打通,也就是可以从一次调用入手获取到所有日志信息,从而了解功能运行情况、运行时间、问题等。

    监控

    实现对操作系统的监控、系统运行效率的监控。

    1. 通过操作系统工具实现对操作系统的监控,通过监控了解系统运行情况(CPU、内存、网络等),从而辅助软件优化。
    2. 通过软件埋点,实现对系统功能运行效率进行直观展示和统计。

    接口调用

    现有WebApi接口定义、开发等都是从Controller搭建,并且无统一管理入口。

    1. 统一WebApi入口,对WebApi入参数据、出参数据、执行时间、异常记录等进行统一约定和日志记录。
    2. 规范入参格式和出参格式的统一规范,如入参采用传输方式(application/x-www-form-urlencoded等)、出参基本Json结构(status + data + msg + errmsg等)
    3. 通过接口规范,通过接口统一管理,降低接口开发复杂度,让开发人员更多的关注业务开发。
    4. 封装接口间Http调用方法,统一Http调用。提高访问的稳定性和规范性,提高接口访问扩展性。例如在调用参数的基础上,可以传递上下文链路标示等系统数据。

    前后台分离

    前后台分离有利于技术栈的深入学习和分工,有利于分工测试,提高系统稳定性。前后台分离的目标主要是模块化。实现前台和后台功能可以进行组合、拆分,实现系统的扩展和服用。

    1. 后台采用微服务的理念进行设计,实现服务的复用和组合。
    2. 前台可以采用VUE的模块架构,实现前台的复用和组合。

    实现计划

    平台不是短时间可以完成,需要不断的深入和细化。初步平台实现计划

    1. 总体需求及方案。论证平台需求及方案,规划平台最终实现目标。
    2. 关键技术选型。对于关键技术,如日志、数据库、中间件等的选型,关键技术指标论证。
    3. 平台关键接口实现。实现系统组件设计、实现。
    4. 平台管理功能。实现平台的管理功能,实现界面管理、查看等功能。

    总结

    通过平台的设计实现,实现将业务功能和平台进行分离,实现业务开发只专注于业务的实现。通过模块化、插件化的业务组件方式,实现可以将公司主要系统运行在同一平台下,实现业务组件的拆分、组合与服用,实现平台的无缝升级。

    基于平台的开发,平台也将实现配置、日志等基础功能,用户、权限等通用功能,并逐步丰富平台的服务管理功能。

    对于微服务的服务发现、监控、编排、发布等随着平台的开发也将逐步开展。服务管理需要不断深入,逐步完善。

  • 相关阅读:
    python_paramiko_SSHException Invalid requirement, parse error at
    python_实现发送邮件功能
    人生格言-羊皮卷
    xshell的Solarized Dark配色方案
    vim常用的配置
    Hadoop1.2.1 HDFS原理
    Hadoop1.x目录结构及Eclipse导入Hadoop源码项目
    Hadoop1.2.1 出现Warning: $HADOOP_HOME is deprecated.的解决方案
    Hadoop1.2.1 启停的Shell 脚本分析
    Hadoop1.2.1 配置文件详解
  • 原文地址:https://www.cnblogs.com/urmnur/p/7867272.html
Copyright © 2011-2022 走看看