SpringCloud简单使用

本文介绍了如何使用SpringCloud搭建Eureka服务注册中心,创建商品服务和订单服务,并实现Ribbon客户端负载均衡。此外,还详细讲解了如何通过Feign进行声明式服务调用,设置超时和重试,以及如何集成Hystrix实现断路器和降级策略,保障服务的稳定性和容错性。
摘要由CSDN通过智能技术生成

参考文档:https://www.springcloud.cc/

项目结构说明:订单服务远程去调用商品服务

eureka-server:服务注册中心

order-server:订单服务

product-server:商品服务

1、搭建Eureka注册中心

 1.1、创建一个SpringBoot项目名为eureka-server,在pom加入如下依赖

    <properties>
		<java.version>1.8</java.version>
		<spring-cloud.version>Hoxton.SR6</spring-cloud.version>
	</properties>

	<dependencies>
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
		</dependency>
	</dependencies>

	<dependencyManagement>
		<dependencies>
			<dependency>
				<groupId>org.springframework.cloud</groupId>
				<artifactId>spring-cloud-dependencies</artifactId>
				<version>${spring-cloud.version}</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
		</dependencies>
	</dependencyManagement>

1.2、在application.yml中添加如下配置

server:
  port: 8761

eureka:
  instance:
    hostname: localhost
  client:
    register-with-eureka: false #是否将自己注册到服务中心
    fetch-registry: false  #屏蔽注册信息
  #关闭实例保护,心跳比例低于85%,eureka会将这些实例保护起来,不会过期,如保护期间内该服务刚好下线,消费者就会拿到无效服务实例
  server:
    enable-self-preservation: false

1.3、在启动类加上@EnableEurekaServer注解,表示启动注册中心。随后可访问http://localhost:8761/地址,查看注册的服务等信息。

2、搭建商品服务项目

2.1、使用SpringBoot创建一个项目,名为product-server,加入如下依赖

<properties>
		<java.version>1.8</java.version>
		<spring-cloud.version>Hoxton.SR6</spring-cloud.version>
	</properties>

	<dependencies>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
		</dependency>
	</dependencies>

	<dependencyManagement>
		<dependencies>
			<dependency>
				<groupId>org.springframework.cloud</groupId>
				<artifactId>spring-cloud-dependencies</artifactId>
				<version>${spring-cloud.version}</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
		</dependencies>
	</dependencyManagement>

2.2、在application.yml配置文件中加入如下配置,表示将该服务往注册中心注册

server:
  port: 8389

#往哪个地址注册
eureka:
  client:
    serviceUrl:
      defaultZone: http://localhost:8761/eureka/

#配置本服务名称
spring:
  application:
    name: product-server

2.3、增加根据ID获取商品的接口

2.4、商品服务我们开启两个,端口分别是8389,8489,方便后面Ribbon做客户端负载平衡器;轮询去调用,可修改,假如有一台挂了,默认情况下,如果RestClient在最后三次未能与其建立连接,则会触发实例。一旦一个实例被电路跳闸,它将停留在这种状态30秒后,电路才会被视为再次关闭。然而,如果它继续失败连接,它将再次成为“电路跳闸”,等待时间成为“电路关闭”将成倍增加的数目连续故障。

Ribbon是一种客户端负载平衡器,可让您对HTTP和TCP客户端的行为进行大量控制。

Ribbon中的中心概念是指定客户的概念。每

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值