首页 > 其他分享 >springcloud day01

springcloud day01

时间:2023-02-18 21:22:20浏览次数:40  
标签:负载 服务 springcloud day01 nacos 规则 服务器 cloud

单体架构:业务所有功能都在一个项目中开发,打成一个包部署 优点是架构简单 部署成本低 缺点是 耦合度高

分布式架构:根据业务功能对系统做拆分,每个业务功能模块作为一个独立的项目开发,也称为一个服务 优点是 耦合度低 缺点是 关系更复杂了

微服务:就是一种经过良好架构设计的分布式架构方案

springcloud是国内使用最广泛的微服务框架,他是微服务架构的一站式解决方案,集成了各种优秀的微服务功能组件

 

微服务的拆分原则

1.不同的微服务不能重复开发相同的业务

2.微服务之间的数据独立,且不能访问其他微服务的数据库

3.微服务可以把自己的业务暴露成接口供其他微服务调用

微服务的远程调用

大概步骤为

1.注册一个RestTemplate的实例到spring容器中

2.修改order-service服务中的OrderService类中的queryOrderById方法,根据Order对象中的userId查询User

3.将查询的User填充到Order对象,一起返回

提供者与消费者

 

 服务消费者:一次业务中,调用其他微服务的服务

服务提供者:一次业务中,被其他微服务调用的服务

这两个角色不是绝对的 只是相对于业务而言

ribbon负载均衡

 

 负载均衡策略

 

 

内置负载均衡规则类规则描述
RoundRobinRule 简单轮询服务列表来选择服务器。
AvailabilityFilteringRule 对以下两种服务器进行忽略: (1)在默认情况下,这台服务器如果3次连接失败,这台服务器就会被设置为“短路”状态。短路状态将持续30秒,如果再次连接失败,短路的持续时间就会几何级地增加。 (2)并发数过高的服务器。如果一个服务器的并发连接数过高,配置了AvailabilityFilteringRule规则的客户端也会将其忽略。并发连接数的上限,可以由客户端的<clientName>.<clientConfigNameSpace>.ActiveConnectionsLimit属性进行配置。
WeightedResponseTimeRule 为每一个服务器赋予一个权重值。服务器响应时间越长,这个服务器的权重就越小。这个规则会随机选择服务器,这个权重值会影响服务器的选择。
ZoneAvoidanceRule 以区域可用的服务器为基础进行服务器的选择。使用Zone对服务器进行分类,这个Zone可以理解为一个机房、一个机架等。而后再对Zone内的多个服务做轮询。
BestAvailableRule 忽略那些短路的服务器,并选择并发数较低的服务器。
RandomRule 随机选择一个可用的服务器。
RetryRule 重试机制的选择逻辑

其中ZoneAvoidanceRule为默认的策略

更改负载均衡规则有两种方式

一般用默认的负载均衡规则,不做修改!!!!!!!!!!!!

1.定义一个新的IRule

@Bean
public IRule randomRule(){
return new RandomRule();
}

2.在配置文件中添加新的规则

userservice: # 给某个微服务配置负载均衡规则,这里是userservice服务
ribbon:
NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule # 负载均衡规则

饥饿加载

Ribbon默认的是懒加载

可以改成饥饿加载 更改方式如下

ribbon:
eager-load:
enabled: true
clients: userservice

Nacos注册中心

服务注册到nacos

1.引入依赖

父工程

<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>2.2.6.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>

子工程

<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>

2.配置nacos地址

在子工程的yml文件中添加nacos地址

spring:
  cloud:
    nacos:
      server-addr: localhost:8848

3.重启

服务分级存储模型

Nacos将同一机房内的实例划分为一个集群。Nacos使用多副本集群技术,可以让多台服务器在同一个网络中共享配置信息和服务发现。当某个实例宕机时,其他实例依然可以正常工作,确保Nacos服务的高可用性。

 

标签:负载,服务,springcloud,day01,nacos,规则,服务器,cloud
From: https://www.cnblogs.com/big-li/p/17133651.html

相关文章

  • SpringCloud Alibaba框架都有啥啊
    前言springcloud是一个基于springboot实现的微服务架构开发工具,使用springcloud框架进行微服务业务开发是java后端开发必备技能,目前主流的SpringCloud分为SpringCloudNet......
  • MyBatis-Plus (SpringBoot2 版) Learning Day01
    Day01学习任务了解Mybatis-Plus整合Mybatis-Plus通用CRUDMybatis-Plus的配置条件构造器1、了解Mybatis-plus1.1、Mybatis-Plus介绍MyBatis-Plus(简称......
  • SpringCloudStarterSleuth搭建&使用
    是什么SpringCloudSleuth是SpringCloud生态系统中的一个分布式跟踪解决方案,可以用于跟踪微服务应用程序中的请求链路。它通过在请求中添加唯一标识符(TraceID)和调用标......
  • SpringCloudGateway启动报错解决
    报错启动项目后报错,提示如下2023-02-1621:51:35.786ERROR[main]o.s.boot.diagnostics.LoggingFailureAnalysisReporter.report:40-***************************APP......
  • JavaScript 基础 - Day01
    了解变量、数据类型、运算符等基础概念,能够实现数据类型的转换,结合四则运算体会如何编程。体会现实世界中的事物与计算机的关系理解什么是数据并知道数据的分类理解......
  • Day01 Markdown学习
    Markdown学习标题:#+空格+标题:一级标题##+空格+标题:二级标题###+空格+标题:三级标题……最多到六级标题 字体:Hello,World!两个*加粗Hello,World!一个*斜体......
  • Hystrix + OpenFeign+ SpringCloud +Nacos
      注意:2023年2月 springcloud最新版本不支持nacos2.2和hystrix,测试发现以下这个版本还支持<groupId>org.springframework.cloud</groupI......
  • CICD流水线 Jenkins搭建 及构建后端SpringCloud项目
    一、CICD在CI/CD和DevOps领域中,持续交付和持续部署是一个老生常谈的话题。持续集成这个术语最早是在1994年由GradyBooch提出。微服务提出者MartinFlower在2014年发表的......
  • Day01-记录Markdown学习,使用Typora编辑第一篇博客
    Mrakdown学习标题:(##或者ctrl+数字)三级标题四级标题字体Hello,world!(ctrl+b或者**)Hello,world!(ctrl+i或者*)Hello,world!(ctrl+u)Hello,world!(~~)Hello,world!(***)引用用>引......
  • OpenFeign 4.0.1+SpringCloud3.0.x+Consul集群
    介绍OpenFeignopenFeign是工作在客户端可与其他注册发现管理服务器整合(eureka,zookeeper,consul,nacos等)功能上替代了restTemplate,本身集成Ribbon有负载均衡功能,在形式......