spring cloud之注册中心(consul)

本文介绍了Consul分布式服务框架的功能,包括服务发现、健康检查和多数据中心支持。重点讲解了Windows安装和ConsulClient的配置,以及如何通过HTTP和RPC解决微服务间的通信问题,还提到了SpringCloud和Dubbo的应用。
摘要由CSDN通过智能技术生成

Consul

简介
- 官网地址:https://www.consul.io
- consul是一个可以提供服务发现,健康检查,多数据中心,key/value存储等功能的分布式服务框架,用于实现分布式系统的服务发现和配置。
安装和启动consul
以windows为例:
1.下载consul
	https://www.consul.io/downloads
2.在指定目录解压缩,不建议目录路径含有中文
3.启动服务注册中心,在consul安装目录中打开cmd
	consul agent -dev
4.访问consul管理界面
	localhost:8500(默认端口)
5.consul管理界面基本介绍
	dc1:数据中心名称,datacenter(默认为dc1)。指定数据中心启动: consul agent -dev -datacenter=aa
	services:当前consul服务中注册服务列表。默认client和server同时启动,自己注册自己,会出现一个consul服务
	Nodes:用来查看consul的集群节点
consul client(微服务)
  • 1.引入依赖
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-consul-discovery</artifactId>
</dependency>
  • 2.在启动类上加注解@EnableDiscoveryClient
@SpringBootApplication
@EnableDiscoveryClient
public class ConsulClientApplication {

}
  • 3.配置文件
# consul server 服务注册地址
spring.cloud.consul.host=localhost
spring.cloud.consul.port=8500
  • consul client 启动后,出现如下问题
    图片待补充

原因:consul server检测所有客户端心跳,但发送心跳时,client端必须给予响应才能正常使用,由于在consul client没有引入检查检查依赖,所以健康检查不通过,导致服务不能使用

<!-- 健康检查依赖 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
# 关闭健康检查(不建议关闭,默认开启)
spring.cloud.consul.discovery.register-health-check=false

微服务间通信

如何解决微服务的服务间通信问题?

- 1.HTTP方式,使用http协议进行数据传递(JSON),spring cloud使用HTTP协议传递数据
	RestTemplate(GET,POST,DELETE,PUT,PATCH...)
	RestTemplate发送请求存在的问题:
		1.调用地址写死在代码中不利于维护
		2.在调用过程中无法实现请求负载均衡
    
- 2.RPC方式,远程服务调用(二进制)
	Dubbo(java 阿里巴巴)

OSI:物理层、数据链路层、网络层、传输层(RPC)、会话层、表示层、应用层(HTTP)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

coo_lw

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

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

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

打赏作者

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

抵扣说明:

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

余额充值