SpringCloudNetflix

1.什么是单体架构

1.1单体项目就是只有一个Tomcat服务器启动的,业务和代码在一个项目中

1.2优点:

.易于开发:架构简单,技术成本低

.易于测试:所有功能在一个项目中,方便测试

.易于部署:一个Tomcat就可以实现部署,简单方便

1.3缺点:

.单机故障

.并发处理差

.代码臃肿

集群/多实例

概念:把项目赋值多份进行部署

作用:处理高并发,高可用

负载均衡(Nginx)

概念:把请求分发到服务应用集群

算法:随机,轮训,权重

分布式/SOA

概念:按照业务拆分成多个子系统,使用多个服务器部署

作用:解决并发,代码臃肿

SOA:把业务服务化(把功能暴露处理,直接调用),业务调用更加方便,功能重组

缺点:运维成本高,硬件成本高,技术成本高

微服务

概念:基于SOA/分布式 , 系统拆分成多个服务,每个服务的独立的负责一部分功能,有自己的数据库,服务之间项目调用

优势:解决高并发,解决代码臃肿,单个服务业务简单,扩展性强,对敏捷开发支持友好

缺点:运维成本高,硬件成本高,技术成本高 , 服务调用网络开销 ,事务处理麻烦

Eureka

概念

1.1服务注册:客户端启动向服务端注册(服务名,IP,端口等),服务端维护一个服务注册表

1.2服务发现:客户端30s/次拉取注册表缓存到本地,服务调用的时候,去注册表中根据服务名查找服务实例,拿到通信地址,发起HTTP请求

1.3服务续约:客户端30s/次向服务端发送心跳续约请求,报告自己的健康状态,超过3次续约失败,会被剔除

eurekaServer注册中心

1.1.导入依赖:eureka-server

1.2.启动类:@EnableEurekaServer加上这个注解就可以表示开启Eureka服务器

1.3.yaml配置

端口

主机名

禁用服务注册,服务发现

注册地址

eurekaClient(user,order服务)客户端的搭建

1.1.导入依赖:eureka-client +  web包

1.2.启动类 @EnableEurekaClient 或者@EnableDiscoveryClient标记为Eureka客户端

1.3yml配置

端口

服务名

注册地址

实例ID

RestTemplate服务通信

1.搭建公共的实体类模块写一个实体类对象

2.订单服务 和 用户服务 : 导入 实体类模块的.jar

3.用户服务:编写controller,返回一个User

4.订单服务:编写一个controller,远程调用User

.定义Bean : RestTemplate

.注入RestTemplate.getForObject(url , 类型)

Ribbon负载均衡

1.用户服务集群

.修改端口,修改实例ID,启动多个

.读取端口:@Value("${server.port}") ,用来区分

2.订单整合Ribbon

.导入Ribbon的依赖 

.定义RestTemplate的方法加:@LoadBalanced

.修改RestTemplate调用方式:把ip:端口改成服务名

面试必备

  • 微服务的优缺点

  • 优点:易于开发和维护,因为一个服务只关注一个特定的业务功能,业务清晰,代码量少,同时技术栈不受限制,比如有些服务可以使用redis,有些服务使用mysql,部分服务使用JAVA开发,部分微服务使用Node.js开发,微服务代码独立,数据独立,如果修改应用,可以对单服务进行修改再部署,并且可根据需求,对各个微服务进行突破瓶颈,比如升级CPU,增加内存等

  • 缺点:
    提升了运维难度(发版、问题排查、配置管理、监控) -->催生了Jenkins + ELK +Spring Config + Spring Admin + Docker
    性能降低,网络延迟,接口调整成本高,微服务之间通过接口进行通信

  • 什么是集群什么是分布式,有什么区别

  • 集群的概念:集群中每台服务器就叫做这个集群的一个“节点”,所有节点构成了一个集群每个节点都提供相同的服务,那么这样系统的处理能力就相当于提升了好几倍有几个节点就相当于提升了这么多倍

  • 分布式概念:

    将一个完整的系统,按照业务功能,拆分成一个个独立的子系统,

    在分布式结构中每个子系统就被称为“服务”。这些子系统能够独立运行在web容器中它们之间通过RPC方式通信

  • 集群解决什么问题,分布式解决什么问题

  • 集群解决高并发问题,分布式解决代码臃肿的问题也就是耦合度的问题

  • SpringCloud常用组件和作用

  • Eureka:注册中心
    Zuul:服务网关
    Rbiibon:负载均衡
    Feign:服务调用
    Hystrix:熔断器

  • bus:消息总线

  • Eureka的工作流程

  • 服务发现,服务注册,服务续约是什么

  • Ribbon的工作流程是什么

  • Ribbon有哪些负载均衡算法

  • 随机,轮训,权重

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值