架构总结

三层架构 :MVC
架构本质:解耦

开发框架:Spring 轻量级的java开源框架,容器
目的:解决企业开发的复杂性
IOC:控制反转(提供一个容器) 原来我们都是自己一步步操作,现在交给容器,需要什么就去拿就可以
AOP:面向切面编程,本质动态代理(为了解决不影响业务本来的情况下实现动态增加功能)大量应用于日志和事务。。

Spring配置文件过于复杂

SpringBoot 新一代JavaEE开发标准,开箱即用(拿过来就可以用,自动配置:SpringBoot就是Spring的升级版)约定大于配置
随着公司体系越来越大,用户越来越多,一台服务器解决不了->增加服务器(横向解决)【如果a服务器占用了98%资源,b服务器只占用了10% 资源分配不平衡->尽可能平衡->负载均衡】

(一台服务器有全部功能模块)同一台服务器上有一些功能模块使用频率很高,有一些很低-->模块化

微服务架构->全新架构:模块化,功能化
将原来整体的项目分为模块化,用户就是一个单独的项目,与其他功能项目进行通信,完成功能

  1. 这么多功能模块分散在不同服务器上,用户如何访问

  2. 这么多服务,服务之前如何进行通信(解决防火墙,保证安全性)

  3. 如何统一管理服务->ZooKeeper

  4. 服务宕机了怎么办

解决方案:
SpringCloud,是一套生态,就是来解决以上分布式架构的四个问题
但是想使用SpringCloud,必须掌握SpringBoot,因为SpringCloud是基于SpringBoot

SpringCloud NetFlix,NetFlix公司出来了一套解决方案 一站式解决方案 ->

  1. Api网关 zuul组件

  2. Feign组件-->HttpClient-->基于Http通信方式,同步并阻塞(异步非阻塞)

  3. Eureka组件-->服务注册与发现

  4. Hystrix-->熔断机制

2018年底,NetFlix宣布无限期停止维护,生态不在维护-->就会脱节

Apache Dubbo zooKeeper 第二套解决系统

  1. 没有Api,要么找第三方组件,要么自己实现

  2. Dubbo组件-->高性能的基于Java实现的RPC通信框架

  3. Zookeeper(第三方组件:管理Hadoop,Hive)-->服务注册与发现

  4. 没有熔断机制,借助了NetFlix的熔断机制

SpringCloud Alibaba 一站式解决方案

下一代微服务标准-->服务网格 Server Mesh 代表解决方案 -->istio

万变不离其宗
Api网关,服务路由
Http RPC框架 异步调用
服务注册与发现
熔断机制,服务降级(服务器宕机)

为什么要解决这四个问题--->网络是不可靠的

posted @ 2021-12-06 13:43  一刹流云散  阅读(78)  评论(0编辑  收藏  举报