SpringCloud

什么是微服务

微服务就是不同的模块部署在不同的服务器上面,通过接口去访问就是微服务。

(理解:不同的功能模版在不同的服务器上分布,要使用时就用通过接口去获取)

作用:利用分布式解决网站高并发带来的问题。

 

什么是RPC

RPC是一种面向接口的远程调用形式。它允许程序调用另一个地址空间(通常是共享网络的另一台机器上)的过程或函数,而不用程序员显式编码这个远程调用的细节。比如两台服务器A,B,一个应用部署在A服务器上,想要调用B服务器上应用提供的函数或者方法,由于不在一个内存空间,不能直接调用,这时候需要通过就可以应用RPC框架的实现来解决。

RPC就是从一台机器(客户端)上通过参数传递的方式调用另一台机器(服务器)上的一个函数或方法(可以统称为服务)并得到返回的结果。

RPC 是一个请求响应模型。客户端发起请求,服务器返回响应(类似于Http的工作方式)
RPC 在使用形式上像调用本地函数(或方法)一样去调用远程的函数(或方法)。

(理解:不同服务器上的功能调用的一个方式)

 

有哪些RPC:WebServiceDubboSpringCloud

 

什么是集群

多台服务器部署相同应用构成一个集群。

(理解:不同的多个服务器但是有相同的功能模块,防止一个坏掉有备用的)

作用:通过负载均衡设备共同对外提供服务。

 

Restful:是一种架构设计风格,提供了设计原则和约束条件,而不是架构。而满足这些约束条件和原则的应用程序或设计就是 Restful架构或服务。主要是JSON实现(可以简单的理解restful就是Json)

 

SOA和微服务的区别

SOA:面向服务(暴露接口),业务系统分解为多个组件,让每个组件都独立提供离散,自治,可复用的服务能力。通过服务的组合和编排来实现上层的业务流程。是一种面向服务的架构理念

微服务:是SOA的升华版本,多模块之间采用RPC远程调用技术。架构设计概念,各服务间隔离(分布式也是隔离),自治(分布式依赖整体组合)其它特性(单一职责,边界,异步通信,独立部署)是分布式概念的跟严格执行。

 

 

 

 SpringCloud:

 就是一套完整的微服务治理框架,重点内容如下:

服务注册(生产者),发现(消费者),负载均衡(集群下使用),路由网关(转发地址)

SpringCloud为我们开发人员提供了快速构建分布式的一套工具,包括配置管理,服务发现(Eureka注册中心)服务消费(ribbon和Feign路由(负载均衡)断路器(出错处理)。一套完整的分布式微服务的治理框架。

 

1.注册中心Eureka)       按文档完成。

 

注册中心的作用就是用来方便接口暴露出来的一个管理工具。

 

 

通过我们配置的端口号9000可以访问到我们的Eureka注册中心

 

 

2.服务提供者       

 

3.消费者创建

Ribbon实现了服务的负载均衡

Feign同样负载均衡,默认集成了Ribbon。调用简单。

所以一般情况下我们使用Feign作为消费端。

(1)Ribbon           按文档完成。

Ribbon架构图

·一个服务注册中心,eureka server,端口为9000

·EurekaProduce工程跑了两个实例,端口分别为9001,9002分别向服务注册中心注册

·EurekaRibbon端口为9003,向服务注册中心注册

·当EurekaRibbon通过restTemplate调用mjxy-hellohello接口时,因为用ribbon进行了负载均衡,会轮流的调用mjxy-hello90019002两个端口的hello接口;

 

 (2)Feign                 按文档完成。

为什么选用Feign,Feign的service采用借口。

面向借口编程的好处:

1.完全不管实现

2.传入规定格式的数据就可以了

 

 

4.断路器

断路器:就是对服务访问不到的情况作出自己的处理。

(1)Ribbon使用断路器                      按文档完成。

 

这样我们就实现了在Ribbon下使用断路器。

 

我们只需要先正常启动EurekaServer,然后启动生产者,并且启动我们的Ribbon消费者服务,通过http://127.0.0.1:9003/hello?name=Liaoxiang访问我们的服务

 

浏览器打印:Hello Liaoxiang,From Port:9001

 

当我们关闭生产者打印:Hello,Liaoxiang,Sorry,Server Error!

 

 

(2)Feign使用断路器             按文档完成。

 

Feign使用的比那个多,因为Feign集成了断路器。

原理是当Feign找不mjxy-hello时,就会 fallback调用HelloServiceImpl下的方法

@FeignClient(value = "mjxy-hello", fallback = HelloServiceImpl.class)

 

 

5.ZUUL路由网关               按文档完成。

  

 

转载于:https://www.cnblogs.com/StingLon/p/10528882.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值