赞
踩
目录
2.100并发 -> 千万并发,阿里淘宝的 14 次架构演进之路!
5.4.项目父工程需要导入SpringCloud父工程依赖并需满足兼容
6.2.远程过程调用: RPC(Remote Procedure Call)
6.2.2.远程调用步骤(以SpringBoot web中封装的RestTemplate为工具)
单体架构:
概述:将业务的所有功能集中在一个项目中开发,打成一个包部署。 优点: 1.架构简单 2.部署成本低 缺点: 1.耦合度高(维护困难、升级困难) 2.技术栈受限(技术栈就是技术集,技术选型就是开发的语言) 3.一旦宕机无法提供服务 适合小型项目 例如:学生管理系统
分布式架构:微服务也是分布式架构
概述:系统中的多个模块在不同服务器上部署 优点: 1.降低服务耦合 2.有利于服务升级和拓展 3.技术栈不受限 缺点: 1.服务调用关系错综复杂 适合大型互联网项目 例如:京东、淘宝
集群:
概述: 多台服务器做相同的事情 解决的问题: 1.提高并发量 2.解决单点故障(单点,单台指只有一台服务器,一旦宕机,整个项目将会瘫痪) 3.保证服务的高可用 原则:半数原则,集群中只允许宕机数不超过总数的一半
分布式:
概述: 不同的服务器做不同的事情,协作起来完成一个完整的业务 好处: 1、资源合理利用;访问频率高的使用配置高的服务器,访问频率低的使用配置低的服务器; 2、耦合度降低;每个模块独立出来,各做个事,便于以后的扩展
正向代理:
概述: 代理服务器代替系统内部来访问外部网络的过程 好处: 1.为在防火墙内的局域网客户端提供访问Internet的途径 2 可以做缓存,加速访问资源 3 对客户端访问授权,上网进行认证 4 代理可以记录用户访问记录(上网行为管理),对外隐藏用户信息
反向代理:
概述: 外部请求访问系统时通过代理服务器转发到内部服务器的过程。 好处: 1.防止主服务器被恶意攻击:反向代理的客户端只能通过外网访问代理服务器,并且用户不知道自己访问的是一个代理服务器,反向代理将真正的处理放在内网中,有效的提高了网络安全 2.为负载均衡和动静分离提供实现支持:反向代理是将防火墙后的服务器提供给Internet用户访问,还可以为多个后端服务器提供负载均衡、缓存功能等
负载均衡:
概述: 将并发过来的请求,均匀的分发给不同的服务器 作用: 1、负载均衡可以优化访问请求在服务器组之间的分配,以此消除服务器之间的负载不平衡,从而达到提高系统的反应速度和总体性能的目的。 2、负载均衡能够监控服务器的运行状态,如果发现运行有异常情况的服务器,将会及时将访问的请求转移到其他可以正常工作的服务器上,以此提高整个服务器组的可靠性。因此采用了负载均衡设备之后,可以根据业务量的大小灵活增加服务器的数量,将系统的扩展能力提高,同时也能简化管理。 3、可以避免各种单点失效.
1.什么是微服务?
微服务架构就是给分布式架构制定一个标准,进一步降低服务之间的耦合度,提供服务的独立性和灵活性。做到高内聚,低耦合。(微服务是一种经过良好架构设计的分布式架构方案 。)
2.怎么实现微服务分布式架构项目开发?
SpringCloud框架集成了各种微服务功能组件,并基于SpringBoot实现了这些组件的自动装配,开箱即用,SpringCloud框架组件进行开发
3.SpringCloud微服务框架有哪些功能和常用组件?
分布式配置:Nacos
服务注册/发现:Eureka(低版本的SpringCloud使用)\ Nacos
服务熔断:Sentinel
服务调用:OpenFeign RestTemplate
服务路由:Spring Cloud Gateway
分布式消息:SCS RabbitMQ
负载均衡:Ribbon
分布式事务:Seata
微服务是一种经过良好架构设计的分布式架构方案 。 能解决单体架构的缺点.
优点:拆分粒度更小、服务更独立、耦合度更低
缺点:架构非常复杂,运维、监控、部署难度提高(SpringCloud是微服务架构的一站式 解决方案)
SpringCloud集成了各种微服务功能组件,并基于SpringBoot实现了这些组件的自动装配
<!-- springCloud父工程依赖 --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>Hoxton.SR10</version> <type>pom</type> <scope>import</scope> </dependency>
两台计算机之间相互访问 tomcat(客户端) ---> tomcat(服务端)
1.在Boot工程配置类中注册一个RestTemplate实例到Spring容器
@Bean public RestTemplate restTemplate() { return new RestTemplate(); }
2.在service层使用RestTemplate对象对远程对象发起调用
3.再把远程返回的数据和本身的数据合并返回给外界
服务提供者与服务消费者的角色并不是绝对的,而是相对于业务而言。
服务提供者:一次业务中,被其它微服务调用的服务。(提供接口给其它微服务)
服务消费者:一次业务中,调用其它微服务的服务。(调用其它微服务提供的接口)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。