Web1.0
Web2.0 单体架构所有的业务场景view,service,dao等都放在一个项目中,由于是一个完整的结构体所以可以部署在一台服务器上,属于低内聚,高耦合
Nginx用户和服务器之间的负载均衡
Redis ElasticSearch
垂直架构,高内聚将相关度比较高的部分尽可能集中,不要分散,低耦合将相关模块的依赖部分降低到最小
将一台服务器专注于一个模块项目,这样高内聚就体现出来了
垂直架构常见的为题有项目一般分为三层service controller dao导致程序变慢原因是在dao service
分布式架构 rabitMQ运用于异步通讯,分布式架构常见的问题有它们是同步通讯的所有要等待每个模块运行完才响应给客户
Dubbo rpc
Springcloud http方式
项目迭代: 我们开发一个产品,如果不太复杂,会采用瀑布模型,简单的说就是先需求定义,然后构建框架,然后写代码,然后测试,最后发布一个产品。
瀑布模型(Waterfall Model) 是一个项目开发架构,开发过程是通过设计一系列阶段顺序展开的,从系统需求分析开始直到产品发布和维护,每个阶段都会产生循环 反馈 ,因此,如果有信息未被覆盖或者发现了问题,那么最好 “返回”上一个阶段并进行适当的修改,项目开发进程从一个阶段”流动”到下一个阶段,这也是瀑布模型名称的由来。. 包括 软件工程 开发、企业项目开发、产品生产以及市场销售等构造瀑布模型。
访问之间通讯地址的维护
Eureka实现通讯地址维护:解决服务器访问访问地址比较多,访问比较复杂不知道选哪个,每台服务器在启动的时候都会把自己的信息注册到Eureka里面去,这样Eureka就有所以模块的信息,这样就可以,用户服务器通过Eureka访问的时候也就会在它的本地用到Robbin找到具体的ip地址协议和端口号,就能精确的访问到某个服务器
Nginx:实现用户和服务之间的负载均衡
Robbin:实现服务和服务之间的负载均衡
Hystrix线程池隔离实现短路器和隔离,做到服务降级,这样每个服务器除了加Robbin之外还要加Hystrix