一 概念
特别强调在springcloud 中cloud的版本与springbootde 版本对应关系很重要,大多数根据网上教程,写完之后,发现程序运行没有效果两点:
1:cloud的版本与在使用springboot的版本不一致,导致配置的方式不一样,或者此版本方法已被弃用,或者 不存在此方法等等 情况,
请查看版本对应关系,确定自己的写法是否需要进行修改!
查看版本对应关系
SpringCloud中的核心组件Eureka提供了服务注册和服务发现功能,管理分布式系统中的各种服务,比如注册、发现、熔断、负载均衡等。
假设一个场景:服务A的某些业务需要调用服务B的某些功能。
使用服务中心前,服务之间的调用关系如下
使用服务注册中心后,服务之间的调用关系如下
通过服务中心来调用服务,不需要关心所调用服务所在机器的ip地址或其他信息,每个服务注册到服务中心时只需提供一个注册名称,调用时将通过服务名称来调用。
假设一个场景:服务A需要调用服务B,并且要保证服务B的高可用性,所以服务B有多个机器实例来组成集群。,关系图如下:
二、代码示例
javaSDK: 1.8
springboot : 2.1.x
cloud的版本 : Greenwich.SR1
1.首先是依赖 pom.xml
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
2.新建一个springboot 项目,导入依赖,在方法主函数入口 添加@注解
@EnableEurekaServer 标记 这是一个注册中心的微服务
@SpringBootApplication
@EnableEurekaServer
public class EurekaServerApplication {
public static void main(String[] args) {
SpringApplication.run(EurekaServerApplication.class, args);
}
}
3.配置文件 新建配置文件 application.yml
server:
port: 8888 #开放的端口
eureka:
# instance:
# hostname: localhost
client:
register-with-eureka: false #是否把自己注册进注册中心 选择FALSE
fetch-registry: false
# service-url:
# defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
spring:
application:
name: server-eureka #标记为 在注册中心的名字
4.保存,运行 打开 localhost:8888 进入即可打开注册中心
参考文章:
蓝先生的文章
https://www.jianshu.com/p/a723009526b7