IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> SpringCloudⅠ服务注册与拉取 -> 正文阅读

[Java知识库]SpringCloudⅠ服务注册与拉取

微服务架构

将单一的应用程序拆分成小的服务,每个服务运行在独立的进程中,服务之间通过轻量级的通信机制相互协调、互相配合。

特征:高内聚低耦合

  1. 单一职责:每个服务对应唯一业务能力
  2. 面向服务:服务对外暴露业务接口
  3. 自治:团队独立、技术独立、数据独立、部署独立
  4. 隔离性强:避免级联问题

项目架构
在这里插入图片描述
自动化部署
在这里插入图片描述

SpringCloud简介

分布式微服务架构的一站式解决方案,是多种微服务架构落地技术的集合体

所用技术组件升级
在这里插入图片描述

结构搭建

  1. 一个服务内包含多个springboot服务
    在这里插入图片描述
  2. 数据库拆分,一个springboot连接一个数据库
    在这里插入图片描述

服务远程调用

我现在要关联查询,数据库是分开的,就得调用另一个服务

通过订单服务向 用户服务发起一个http请求来获取用户信息
在这里插入图片描述

RestTemplate

spring提供了一个RestTemplate,通过它可以发起http请求

  1. 将RestTemplate注入spring容器
    在这里插入图片描述
  2. 在controller注入
@Autowired
    private RestTemplate restTemplate;
  1. 使用restTemplete调用user服务
    在这里插入图片描述

测试成功
在这里插入图片描述

提供者和消费者

在这里插入图片描述
提供和消费是相对的,一个服务既可以是提供者,也可以是消费者

Eureka

作用

  1. 启动的服务都会在eureka-server注册
  2. 消费者使用时会在注册中心拉取服务,并做负载均衡,挑选一个服务后进行远程调用
  3. 服务心跳续约,每隔30秒1次
    在这里插入图片描述
    在这里插入图片描述

服务注册

EurekaServer
  1. 新建一个项目eureka-service
  2. 导入pom依赖
<dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
  1. 创建启动类
@EnableEurekaServer
@SpringBootApplication
public class EurekaApplication {
    public static void main(String[] args) {
        SpringApplication.run(EurekaApplication.class, args);
    }
}
  1. 添加application.yml配置类
server:
  port: 10088
spring:
  application:
    # 服务名称
    name: eurekaserver
eureka:
  client:
    service-url:
      # eureka地址信息:以后集群会用到
      defaultZone: http://localhost:10088/eureka
EurekaClient
  1. 引入pom依赖
<!--eureka客户端-->
<dependency>
      <groupId>org.springframework.cloud</groupId>
      <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
  1. 加配置
spring:
  application:
    # user服务的服务名称
    name: orderservice
eureka:
  client:
    service-url:
      # eureka地址信息:以后集群会用到
      defaultZone: http://localhost:10088/eureka

服务注册列表
在这里插入图片描述

服务拉取

在这里插入图片描述
总结
在这里插入图片描述

Ribbon

负载均衡流程

在这里插入图片描述

负载均衡策略

在这里插入图片描述

  • 直接轮询
  • 根据服务健壮性轮询
  • 加权轮询
  • 随机
  • 重试

负载均衡策略配置

在这里插入图片描述

饥饿策略

在这里插入图片描述

Nacos

在这里插入图片描述

搭建

  1. https://github.com/alibaba/nacos/tags找到版本下载
  2. 解压到D:\Program Files\nacos
  3. Program Files\nacos\bin
    startup.cmd -m standalone
  4. http://192.168.52.1:8848/nacos/index.html登录
  5. 用户名:nacos 密码:nacos
    在这里插入图片描述

注册服务

  1. 引入父项目pom依赖
<!-- springCloud Alibaba -->
       <dependency>
           <groupId>com.alibaba.cloud</groupId>
           <artifactId>spring-cloud-alibaba-dependencies</artifactId>
           <version>2.2.5.RELEASE</version>
           <type>pom</type>
           <scope>import</scope>
       </dependency>
  1. 引入子服务pom依赖
<!-- nacos客户端依赖 -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>

查看服务
在这里插入图片描述

服务分级存储模型

在这里插入图片描述
配置集群
在这里插入图片描述

服务本不会优先选择本地集群中服务,可以配置;如果本地没有服务,会跨集群访问

配置优先访问本地集群服务:
在这里插入图片描述
可在Nacos界面通过修改权重,调整同一集群下负载均衡;权重从0-1;按比例分配;权重为0,不会被访问(服务平滑升级)

环境隔离

用namespace来做,每个namespace都有唯一id

实现服务隔离,不在一个空间的服务不能互相访问

配置:spring: cloud: discovery: namespace: (命名空间id)

Eureka和Nacos

相同点

  1. 都支持服务注册和服务拉取
  2. 服务提供者会有心跳方式做健康检测

不同点

  1. Nacos支持主动检测:临时实例 心跳模式;非临时实例 主动检测
  2. 临时实例心跳不正常会剔除;非临时不会
  3. 服务列表变更会推送 服务更新提醒
  4. Nacos集群默认为AP模式,集群中有非临时实例采用CP模式;Eureka为AP
  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-04-04 11:57:15  更:2022-04-04 11:58:40 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 8:02:48-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码