- 单体架构
全部功能整合在一个项目里,功能不拆分表现层(controller)、业务层(service)、持久层(dao或mapper);耦合高,开发成本低
- 垂直架构
功能单独部署(垂直架构即功能拆分),功能不拆分表现层(controller)、业务层(service)、持久层(dao或mapper)
- 水平架构
单体或垂直架构基础上功能拆分成表现层(controller)、业务层(service)、持久层(dao或mapper)
- SOA架构
面向服务(即分布式框架)各个功能模块作为单独服务,独自部署并且把自身(IP地址和端口)注册到服务治理中心实现服务注册;各个服务之间远程调用通过服务治理中心(http、RPC等通信协议)实现服务发现完成调用,例如Dubbo+Zookeper(RPC实现远程调用)
- 微服务架构
RestFul风格接口(即http通信协议、JSON数据传输格式);微服务架构是整合多种技术组件,例如:网关(zuul、gateway)、服务注册中心(Eureka)、远程调用(Feign)、负载均衡(ribbon)、服务容错(Hystrix)等五大技术组件,例如:SpringCloud(Feign通过http实现远程调用)
Http和RPC两种通信协议区别:
- 都是基于TCP协议
- http固定数据传输格式(即JSON数据格式);RPC自定义数据传输格式
- RPC传输比http快,RPC基于TCP协议封装少,更接近底层即TCP协议
- http由于固定数据传输格式不受开发语言限制即不同开发语言系统可以通过http通信协议互通;RPC自定义数据传输格式,不同系统是相同开发语言(不同开发语言语法格式不同)