微服务架构介绍

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

Eureka注册中心,Robbin服务器和服务器负载均衡,HyStrix线程池隔离短路,服务降级,都是spring cloud的组件

海量数据

Mycat实现数据库的分库分表,这样就不会查询缓慢

微服务架构在分布式架构中再次拆分,一般小公司用分布式架构就够了,大型业务用微服务架构人力物力资源消耗比较大,模块也多运维成本增加,将压力比较大的服务器一直拆的更细,拆成单独的模块,查询模块

微服务架构在分布式架构中再次拆分,一般小公司用分布式架构就够了,大型业务用微服务架构人力物力资源消耗比较大,模块也多运维成本增加,为了解决,模块过多,用Docker容器化技术去管理部署模块等,后期软件需要去Linux安装,比如nginx,redis,mycat,ElasticSearch,RabbitMQ等,linux安装比较慢或者失败,我们可以用docker来帮助安装

分布式架构,分布式事务问题,导致服务器需要在多个数据库中查找数据它不知道去哪个数据库中,解决方法用RabbitMQ | LCN框架解决分布式事务问题方法解决

分布式锁:传统锁Synchronized | Lock锁,在分布式环境下是没有效果的解决问题用Redis | Zookeeper解决

分布式任务:传统定时任务重,由于分布式环境问题,出现很多任务会执行很多很多次导致一些问题,任务重复执行,比如任务冲突,大任务需要拆分,解决问题:用Redis+Quartz定时任务依赖||Elastic-job框架

    原文作者:YavR
    原文地址: https://blog.csdn.net/m0_52818006/article/details/122776406
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞