SpringCloud 之Eureka组件
需注意本讲解的时候贴出的pom文件只会贴出新建项目之后手动添加的依赖
先贴出一份 基础的pom 新建项目之后什么都没有的依赖相
作者采用的是idea新建的springInit的新建project方式
基础pom文件
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
作者采用的是idea编辑器 问题不大 你随意
直接写代码
作者采用的2.1.4的SpringBoot版本
这个需要注意一下 不同的版本在使用yml文件上可能有细微的差异
先配置一个eureka的注册中心
package com.tg.eureka_api;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
//启动一个Eurekaserver注册中心服务
@EnableEurekaServer
@SpringBootApplication
public class EurekaApiApplication {
//因为Eurekaserver会把自身当作是一个客户端 所以通过application.properties需要禁止
public static void main(String[] args) {
SpringApplication.run( EurekaApiApplication.class, args );
}
}
//使用application.yml文件
spring:
application:
#注册中心名字
name: eureka
server:
#端口号
port: 8761
servlet:
context-path: /eureka
#注册中心的地址 ip
eureka:
instance:
hostname: localhost
#关闭掉默认注册
client:
register-with-eureka: false
fetch-registry: false
启动程序
在浏览器地址使用====localhost:8761
服务端pom文件
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-commons</artifactId>
<version>2.1.1.RELEASE</version>
</dependency>
图片中的红色不需要担心因为这是一种eureka的自我保护模式
会进行一个心跳检测如。如果需要关闭 可采用配置文件
eureka:
server:
enableSelfPreservation: false
配置eureka 的服务提供者
package com.tg.eurekaclient;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
//启动一个客户端
@SpringBootApplication
@EnableDiscoveryClient 自动注册服务到服务中心
@RestController 采用resuful风格去进行访问
public class EurekaClientApplication {
public static void main(String[] args) {
SpringApplication.run( EurekaClientApplication.class, args );
}
//写的一个测试方法
@GetMapping("hi")
public String sayHi() {
return "你好" + "zhangsan"+ "我来自" + 2000;
}
}
yml文件配置
spring:
application:
name: eureka-client
#配置服务端口
#配置注册中心地址
server:
port: 8062
eureka:
client:
service-url:
参照上图我的eureka注册中心是1001那么我的eureka这边注册就一定是
#http://localhost:1001/eurea
这个地址一定是服务端的地址再加上 eureka !!!!!!
defaultZone: http://localhost:1001/ eureka
客户端的pom文件
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
<version>2.1.1.RELEASE</version>
</dependency>
<dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
提示:如果想修改默认的服务中心端口号那么可以采用server.port=portNum
在客户端注册服务的时候注意defaultZone:地址一定是后面加上访问eureka的ui界面的地址再加上/eureka
1,@EnableDiscoveryClient注解是基于spring-cloud-commons依赖,并且在classpath中实现;
2,@EnableEurekaClient注解是基于spring-cloud-netflix依赖,只能为eureka作用;