首先 导入 pom 文件 , 版本管理 统一使用 springboot 的 父级 进行管理
<!--eureka 健康监控-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<!-- eureka 的服务端 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
<version>${eureka.version}</version>
</dependency>
在自己的 yml 文件中 配置
eureka:
instance:
#eureka服务端的实例名称
hostname: localhost
client:
#false表示不向注册中心注册自己。
register-with-eureka: false
#false表示自己端就是注册中心,我的职责就是维护服务实例,并不需要去检索服务
fetch-registry: false
service-url:
#设置与Eureka Server交互的地址查询服务和注册服务都需要依赖这个地址。
defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
添加启动类
@EnableEurekaServer
@SpringBootApplication
public class EurekaApplication {
public static void main(String[] args) {
SpringApplication.run(EurekaApplication.class, args);
}
}
启动之后 访问 localhost:port 就可以了
这个就是自己注册的服务了
eureka 项目位置 github.com/1042545965/…
eureka的理解
一 : eureka 在目前我的项目中起的作用
① :在网关的调用
zuul:
prefix: /api
routes:
cloud-auth:
path: /cloudAuth/**
# 就是 服务的名称 application:name = cloud-auth
serviceId: cloud-auth
cloud-user:
path: /cloudUser/**
# 就是 服务的名称 application:name = cloud-user
serviceId: cloud-user
这是我在 网关中配置的服务转发 serviceId: cloud-user 指定了服务的名称 就能直接去访问了 而不需要将url 写死
② : 在服务间调用的时候
@FeignClient(name = Canstant.CLOUD_AUTH , fallback = AuthApiFallback.class)
public interface AuthApi {
/**
* 获取用户登陆权限
*/
@RequestMapping(value = "/authApi/getSysUserMenuList", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
public List<UserMenuDto> getSysUserMenuList(@RequestParam("userName") String userName);
}
这里的 Canstant.CLOUD_AUTH 就是eureka的服务名称 , 在使用feign的时候也能 根据服务名称来访问服务 ,更加解耦
二 : 就是从CAP 理论来理解 eureka的优势 , 比如相比教 zk而言