2021/11/2 北京 微服务,分布式,服务远程调用和eureka注册中心

spring cloud 和spring boot的版本

spring cloud H SRX1

spring boot 2.2.2


微服务对比单体架构

单体架构:就是将所有功能放在一个项目里开发,最终打成一个包部署

分布式架构:根据业务功能对系统拆分为一个一个服务,好处是可以降低服务耦合,有利于服务升级拓展

微服务:经过良好设计的分布式框架,拆分粒度更小,做到单一职责。会面向服务对外暴露业务接口,数据独立,每一个服务都有自己的数据库,隔离性强,能避免出现级联问题

分布式系统是由一组通过网络进行通信,为了完成任务而协调工作的计算机节点组成。目的是为了让用廉价的、普通的机器完成单个计算机无法完成的计算、存储任务。

好处1:读写分离

好处2:容灾快速恢复。当一台从服务器挂掉,能根据策略快速切换到另一台从服务器完成读操作。


分布式服务框架 RPC

http是无状态通信协议

rpc 是一种进程间的通信方式,允许程序调用另一个地址空间(共享网络的另一台机器)的过程或函数。rpc就像调用本地的函数一样去调用远程函数。

dubbo解决·rpc调用的通讯和序列化。序列化的原因是数据传输需要转换


SpringCloud 是目前国内使用最广泛的微服务框架,是基于SpringBoot实现组件的自动装配,从而提供了开箱即用的体验,先就看红色框吧


RestTemplate 发一个远程调用,它可以发任意的http请求

注意下面这个图的注意点:

@SpringBootApplication,加载配置文件

@Bean,创建RestTemplate并注入Spring容器


接下来就是代码里实现远程调用,也很简单,一行代码。

//会自动把json反序列化成user对象,注意序列化的这个说法
User user=restTemplate.getForObject(url,User.class)


依稀就得立哥给我们讲服务的提供者与消费者这些基本概念。一个服务既可以是提供者又可以是消费者,相对而言的。

注册中心 eureka-server

每一个服务在服务启动时都会注册服务信息给注册中心,这么干的好处是什么?

我自己记得最牢固的就是心跳续约,作用是避免服务挂掉你还不知道。

注册中心这一块,看一波老师总结的干货吧。我自己理解的就是他们都面向注册中心了,不管是提供者还是消费者,都直接找的是注册中心。


讲个笑话,要不日子真的过不下了,太累了

孔融爹妈吵架,孔融不耐烦的说:你俩能过过,不能过离这就是孔融让离的故事


eureka自己也是微服务,启动时会把自己也注册到自己上

 服务拉取,基于服务名称获取服务列表,再对服务列表做负载均衡

核心代码:
String url="http://userservice/user/"+order.getUserId()
                    ^
                    |
此处是基于服务名拉取,取代了ip地址


@Bean
@LoadBalanced  加这个负载均衡注解就是说下面这个restTemplate发起的所有请求都被ribbon拦截,并处理
public RestTemplate restTemplate(){
return new RestTemplate();
}

负载均衡的大概就是他根据服务名称去拉取服务列表,他根略Irule(比如轮询)帮你挑一个服务。

 要是你觉得不够细,那走一遍源码,放个图自己去啃吧,皮皮虾我们走


最后一定要上老师专业的笔记

(具体中透露着一种整齐,整齐中透漏着一种不想看,哈哈,要是忘了服务注册,服务发现的具体实现,还是可以看看的)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值