【SpringBoot】最通俗易懂的分布式学习(二)--SptringBoot整合SpringCloud

注:本文章基于尚硅谷Springboot高级特性相关视频及资料进行编写,代码简单,较容易理解,若有问题或者源码资料获取可以在评论区留言或者联系作者!



导引

SpringCloud是一个分布式的整体解决方案,SpringCloud为开发者提供了在分布式系统(配置管理,服务发现,熔断,路由,微代理,控制总线,一次性Token,全局锁,leader选举,分布式session,集群状态)中快速构建的工具,使用SpringCloud的开发者可以快速启动服务或者构建应用,同时能快速和云平台资源进行对接;

一、整合SpringCloud

(1)SpringCloud创建工程

(2)在工程中创建eureka-server的项目,引入Eureka Server的依赖(用来做注册中心
在这里插入图片描述
(3)在工程中创建provider-ticket,引入Eureka Discovery(用来做服务提供者
注意;服务提供者和服务消费者都是注册中心;(可参考下面的图片)

(4)在工程中创建consumer-user,引入Eureka Discovery(用来做服务消费者
在这里插入图片描述
(5)在注册中心配置文件中进行配置,并在注册中心启动文件上使用@EnableEurakaServer注解启用注册中心的功能:

server:
	PORT:8761    #服务的端口号

eureka:
	instance:
		hostname:euraka-server   #euraka实例的主机名

	client:
		register-with-eureka:false #不把自己注册到euraka上
		fetch-registry:false#不从euraka上来获取服务的注册信息
		service-url:
			defaultZone:http:localhost:8761/euraka/
	


(6)启动注册中心项目文件,并访问http:localhost:8761
在这里插入图片描述


二、服务注册

(1)在provider-ticket中编写TicketService文件

@Service
pulic class TicketService{
	public String getTicket(){

	return "《厉害了我的国》";
}

}

(2)提供Controller:

public class TicketController{
	@Autowired
	TicketService ticketService;
	
	@GetMapping("/ticket)
	public String getTicket(){
	return ticketService.getTicket();
	
}
}

(3)将服务提供者注册到服务中心中,在服务中心的配置文件中进行编写:

server:
	port:8001 #服务提供者的名字
	
spring:
	application:
		name:provider-ticket #服务提供者的名字

eureka:
	instance:
		prefer-ip-address:True #注册服务的时候,使用服务的ip地址

	client:
		service-url:
			defaultZone:http:localhost:8761/euraka/

(4)提供服务提供方的项目和注册中心的项目,访问http:localhost:8001/ticket,可以获取数据
在这里插入图片描述


三、消费服务

(1)在consumer-user项目中编写UserController:

@RestController
public class UserController(){
@Autowired
RestTemlate testTemplate;//后面会编写这个类

 @GetMapping("buy")
 public String buyTicket(String name){
 String s=restTemlate.getForObject("http://PROVIDER-TICKET/ticket",String.calss);
 	return name+"购买了"+s}
}

(2)在consumer-user项目中编写application.yaml配置文件:

spring:
	application:
		name:consumer-user

server:
	port:8200

eureka:
	instance:
		prefer-ip-address:True #注册服务的时候,使用服务的ip地址

	client:
		service-url:
			defaultZone:http:localhost:8761/euraka/
	

(3)在配置文件中使用@EnableDiscoveryClient注解开启服务发现功能,并使用RestTemplate发送HTTP请求

public class ConsumerUserAppplication(){
//主启动方法省略
@LoadBalanced //使用负载均衡机制
@Bean
public RestTemplate restTemplate(){
 return RestTemplate();
}
}

(4)启动消费者进行测试,访问8200的buy方法:http:localhost:8200/buy?name=张三
在这里插入图片描述


总结:

这一节我们学习了SpringBoot分布式应用的第二部分,使用SpringCloud与SpringBoot整合。需要注意
使用SpringCloud的Eureka(服务发现),需要有注册中心,服务提供者和服务消费者,其中服务提供者和服务消费者都需要在注册中心注册进行调用,另外的可以在服务消费者开启负载均衡机制;
SpringBoot分布式学习到此为止!


如果感觉内容写的还不错的话,一键三连不迷路!!!!
后面将会更新更多学习内容,一起学习吧!!!!!!
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

PoJo123

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

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

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

打赏作者

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

抵扣说明:

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

余额充值