分布式理论

单一架构:

一个工程→一个 war 包→ 运行在一个 Tomcat 上 上

all in one

单机版
……

互联网时代的新挑战:

高可扩

项目设计架构的时候要考虑到功能的持续更新。

高性能

提高响应速度,系统处理一个请求的时间尽可能短,减少用户等待的时间,优化用户体验。

高并发

用户访问量非常大时,会增加系统的并发压力。

Tomcat处理并发大概300—500,经过优化达到2000,

加nginx,一个nginx可以支持5万个并发

nginx配集群,可以配F5、LVS

分布式架构:

一个项目拆分成多个模块工程,每个模块工程都是一个 war 包,运行在各自的Tomcat 上,模块之间可以通过网络互相调用。

方法远程调用:

本地调用

在同一个项目内部,不经过网络直接调用方法。不管是我们自己声明的方法还是第三方 jar 包中的方法都算本地调用。

远程调用

意义:

对内:让我们能够实现分布式架构

对外:让我们能够调用第三方接口

           发送短信

           查询物流

           执行支付

           天气预报

           股票行情

思想:

SOA

Service Oriented Architecture 面向服务的架构

在整个系统中,把相同的功能抽取出来作为一个 服务,供系统中的其他模块调用,提高代码的复用性。

微服务

微服务强调的特征:独立、可部署。

技术演进:

WebService(挺古老的了,调用代码太繁琐,调试太麻烦,已经不用了)

解决应用程序之间的跨平台访问问题。基于 SOAP/WSDL 协议,让应用程序之间可以进行远程通信。

Dubbo+Zookeeper

Dubbo:基于 RPC 的远程过程调用框架。

https://dubbo.apache.org/zh/

Zookeeper:基于树形目录结构、异步通知机制的注册中心。

SpringBoot+SpringCloud

SpringBoot:开发具体微服务,使用“场景启动器(starter)”快速整合第三方中间件

SpringCloud:提供的微服务架构整体管理的一站式解决方案

                        Eureka:注册中心

                        Ribbon:客户端负载均衡

                        Feign:远程接口的声明式调用

                        Hystrix:服务的熔断、降级、监控

                        Zuul:网关

相关概念

接口

一个以“接口”为功能代表的分布式环境下的服务模块。

远程接口的声明式调用

@Controller
public class EmpController {
    @Autowired
    private EmpRemoteService empRemoteService;

    @RequestMapping("/xxx/xxx")
    public String xxx(){
        // 像调用本地方法一样调用远程方法。所有远程方法调用时产生的请求、响应等细节全部被框架屏蔽了
        empRemoteService.xxx();
        return "xxx";
    }
}

注册中心

远程接口的声明式调用之所以能够实现,就是因为 Dubbo 或 Feign 这样的框架把服务的具体信息存入了注册中心,对程序员在上层进行的具体代码编写全部屏蔽细节。

分布式架构优缺点

优点

1、模块化程度更高,有利于分工

2、有利于提升项目性能:

      整体提升:整个项目中每个模块都可以独占一台服务器,整个项目分配到的服务器资源更多。

      局部提升:由于对项目进行了拆分,所以可以有针对性的对项目中局部的模块进行专门的优化。

                        纵向:给当前模块所在的服务器增加硬件资源

                        横向:给当前模块配置集群

缺点

1、结构复杂

          调用关系复杂

          部署复杂

2、数据不一致问题

          Session 不一致问题

          分布式事务问题

分布式和集群

相同点

都需要使用多台服务器

不同点

分布式:每台服务器上运行的模块不同——异构

集群:每台服务器上运行模块相同——同构

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ZHOU_VIP

您的鼓励将是我创作最大的动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值