八种架构设计方案 智能化系统工程架构的设计包括?
智能化系统工程架构的设计包括?
智能系统工程建筑设计的全过程和建筑设计一样,有三个阶段:方案设计、初步设计、施工图设计。智能系统设计和建筑设计同时进行是最好的做法。
什么是主机架构?
主机架构是一系列相关的抽象模式,用于指导大型软件系统各方面的设计。软件架构是系统的草图。
主机架构描述的对象是直接构成系统的抽象组件。
组件之间的连接清晰且相对细致地描述了组件之间的通信。在实现阶段,这些抽象组件被细化成实际的组件,比如一个特定的类或对象。
在面向对象领域,组件之间的连接通常是通过接口来实现的。主机架构是构建计算机软件实践的基础。
就像架构师将建筑项目的设计原则和目标设定为绘图员画图的基础一样,软件架构师或系统架构师将软件架构陈述为实际系统设计方案的基础,以满足不同客户的需求。
你平时主要使用什么Java开发框架?
以我们的项目为例。
我们的项目是纯后台服务项目,即没有前端页面,只对外提供服务;项目基于Spring Boot,引入spring-boot-starter-web,直接公开接口,消息使用的JSON,很少接口是从旧系统迁移过来的,所以为了让调用方尽可能小的修改,保留了XML消息;在正式的生产环境中,内置的Tomcat也是用;集成了Swagger,在线自动生成界面文档。
ORM框架选择MyBatis。由于项目中的查询大多是单表查询,且查询条件相对固定,所以标注做出的SQL语句是直接绑定的。
因为项目不仅使用了关系型数据库,而且经过处理关联后在MongoDB中保存了更多的数据,所以项目也使用了Spring数据MongoDB。我们的MongoDB已经部署了副本集,使用Spring数据MongoDB,通过简单的配置就可以完成对多个mongob的访问。如果其中一个MongoDB挂了,对服务没有影响,所以我们可以在扩展MongoDB时在线进行(扩展内存和CPU时MongoDB需要停止)。
在与一些系统的交互中使用RabbitMQ,只要将spring-boot-starter-amqp引入Spring Boot,其实可以很容易地与RabbitMQ集成。生产者和消费者都很方便。
因为是纯接口服务。为了减轻数据库的压力,我们根据业务场景(数据变化不频繁,业务场景对实时性要求不是很高)将部分接口的结果直接缓存到Redis中。在整合Redis的时候,我们前后尝试了两种
Spring Boot项目,最简单的与Redis集成可以直接使用@Cacheable注释完成,但是后来因为设置缓存超时不够灵活,我们后来改成了第二种方案;
使用RedisTemplate,可以完成Redis上的大部分操作。
我会继续分享我对Java开发、架构设计、程序员职业发展等方面的看法,希望得到大家的关注。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。