springcloud-netflix及微服务

springcloud-netflix

分布式系统理论

若干个独立系统的集合,这些计算机对用于来说就像单个相关系统
分布式系统是由一组通过网络进行通信、为了完成共同的任务而协调工作的计算机节点组成的系统。
目标:为了用廉价的、普通的机器完成单个计算机无法完成的计算、存储任务。
其目的是利用更多的机器,处理更多的数据。

RPC

rpc同样是一种基于http的应用层的通信协议
远程过程调用。

微服务架构的核心问题

由于网络的不可靠

  1. 路由问题
  2. 微服务之间的通信 (HTTP, RPC)
  3. 注册和发现
  4. 熔断机制

微服务概念

在这里插入图片描述

srpingcloud

在这里插入图片描述

创建项目

基础依赖
  1. 配置依赖
    打包方式为pom
    主文件中的依赖使用 dependencyManagement标签;这样在子工程中可以不填写依赖版本,默认为主工程的依赖版本
提供方
  1. 配置子项目的mybitas
    mybatis-config.xml(配置文件) 和 mapper文件(定义查询语句)
  2. spring的配置
  3. service层 control层
  4. applicaton 启动类
消费者
  1. 依赖web相关的 不需要连数据库
    在这里插入图片描述
  2. 配置文件
    只需要一个端口号
  3. 配置springboot中的bean即applicationsContet.xml
    在这里插入图片描述
  4. Control层
    使用RestTemplate来调用生产者的标准化的Restful服务
    在这里插入图片描述
    getForObject 接收参数,(请求地址, [传递参数], 返回值类型)
    在这里插入图片描述

Eureka(服务注册与发现)

cs架构
3大角色:Eureka Server 提供服务的注册与发现。zookeeper

Eureka服务端编写

  1. application.yml配置文件
    在这里插入图片描述
    defaultZone: 注册地址
  2. application启动类
    在这里插入图片描述

Eureka客户端
将服务提供方的服务注册到Eureka中

  1. 在application.yml配置文件中添加 eureka相关的配置
    在这里插入图片描述
    info为展示项目信息,可以省略
  1. 在当前服务的application主启动类中启动eurekaclient功能。@nableEurekaClient
    在服务启动之后会自动注册到EurekaServer中。之后在 Instances 列表中可以看到注册进来的服务。
    自我保护机制,避免错误删除微服务

eureka相关api
获取微服务清单
在这里插入图片描述
需要开启 DiscoveryClient功能

eureka集群
eureka服务端
配置上其他节点
在这里插入图片描述
服务提供端的配置
在这里插入图片描述
相互注册成功之后,可以在DS Replicas相互看到其他的eureka节点

分布式系统的cap原则

C(Consistency) 强一致性
A(Availability)可用性
P(Partition tolerace)分区容错性
Zookeeper保证的是CP
在这里插入图片描述
Eureka保证的是AP
在这里插入图片描述

ribbon

主要用于服务的负载均衡。ribbon客户端组件提供了一系列配置项:链接超时、重试等
负载均衡:
集中式:nginx(反向代理);进程式:ribbon、dns(由客户端决定)
在这里插入图片描述

客户端配置ribbon

  1. 导入ribbon及eureka依赖
    在这里插入图片描述
  2. 在客户端中配置eureka,主启动项中开启eureka功能
    在这里插入图片描述
  3. 在getRestTemplate中添加Rabbin的负载均衡
    在这里插入图片描述
  4. 将请求地址修改为eureka中对应的服务名称,来访问指定的服务;
rabbin自定义负载均衡

feign

在这里插入图片描述
面向接口编程

对接

  1. 导入依赖
    在这里插入图片描述
  1. 定义接口
    在这里插入图片描述

  2. 添加注解。并手动指定包的位置,并为feign客户端指定包的位置
    在这里插入图片描述

  3. 调用方 - 启动feignClient
    在这里插入图片描述

  4. 调用方使用
    在这里插入图片描述
    本质还是调用了eureka,只是增加了代码的可读性。

Hystix

在这里插入图片描述

服务熔断
针对服务端做的处理,代码写在服务端
在这里插入图片描述

服务降级
针对客户端做的处理,代码写在客户端中。即使服务提供方被关闭,客户端取访问的时候仍然可以获取默认的返回值
代码实现

  1. 在application.yml配置文件中开启feign.hystrix
    在这里插入图片描述
  1. 实现错误返回工厂方法
    在这里插入图片描述
  1. 在调用方的接口中指定错误返回工厂方法
    在这里插入图片描述

监控

  1. 监控服务导入依赖
    在这里插入图片描述
  2. 监控服务 开启监控
    在这里插入图片描述
  3. 保证服务端都有监控依赖
    在这里插入图片描述
  4. 服务端增加监控的代理服务
    在这里插入图片描述
    在这里插入图片描述

Zuul(路由网关)

在这里插入图片描述

  1. 项目配置 application.yml
    在这里插入图片描述
  2. 启动项目
    在这里插入图片描述
    将微服务地址隐藏起来
    在这里插入图片描述

config

在这里插入图片描述

配置服务端

  1. 导入依赖
    在这里插入图片描述
  1. 配置application.yml文件
    在这里插入图片描述
  2. 开启config功能
    在这里插入图片描述
  3. 在远程仓库中配置application.yml文件
    在这里插入图片描述
  4. 验证可以获取对应配置内容
    在这里插入图片描述
    curl http://localhots:3344/application-dev.yml

配置客户端

  1. 导入依赖
    在这里插入图片描述
  2. 配置客户端bootstrap.yml(系统级别的配置,防止被远程配置覆盖掉)
    在这里插入图片描述
    配置application.yml文件(用户级别的配置)
    在这里插入图片描述
    uri: config服务端地址;name: 文件名称;profile: 哪个环境
  3. 启动类
    在这里插入图片描述
  4. controller层
    在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

岳大博

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

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

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

打赏作者

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

抵扣说明:

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

余额充值