基佬网址:https://github.com/woshiyinweijian/SpringCloudTest
Eureka小小介绍
Eureka 提供基于 REST 的服务,在集群中主要用于服务管理(服务注册与发现)。 Eureka 提供了基于 Java 语言的客户端组件,客户端组件实现了负载均衡的功能,为业务组件的集群部署创造了条件。使用该框架,可以将业务组件注册到 eureka 容器中,这些组件可进行集群部署, Eureka 主要维护这些服务的列表并自动检查它们的状态。(参考网上描述)
Eureka服务启动
创建一个简单的SpringBoot项目,加入依赖
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId> </dependency> |
我先IDEA创建的项目,最终pom.xml是这样的:
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion>
<groupId>cn.ywj</groupId> <artifactId>springcloud_eureka</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging>
<name>springcloud_eureka</name> <description>Demo project for Spring Boot</description>
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.5.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent>
<properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> <spring-cloud.version>Finchley.SR1</spring-cloud.version> </properties>
<dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId> </dependency>
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies>
<dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>${spring-cloud.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project> |
接着在启动类加入注解@EnableEurekaServer
@SpringBootApplication @EnableEurekaServer public class SpringcloudEurekaApplication {
public static void main(String[] args) { SpringApplication.run(SpringcloudEurekaApplication.class, args); } } |
接着修改\resources\application.yml(一开始是application.properties,后面我自己改成yml)
application: name: eureka
server: port: 8080
eureka: instance: hostname: localhost client: fetch-registry: false # 禁止到Eureka器中获取注册信息 register-with-eureka: false # 禁止将自己作为客户端注册信息到Eureka服务器 serviceUrl: # 告诉别人服务的注册和发现地址是这个 ${server.port}就是上面的8080 defaultZone: http://127.0.0.1:${server.port}/eureka/ |
|
配置文件中fetch-registry: false和register-with-eureka: false不设置的话,启动会报错,因为@EnableEurekaServer虽然是指定这个项目是一个服务端的角色,但它会默认自己也是一个客户端,会到服务端注册,也就是自己注册自己,而它本来就只是个服务端来着,所以报错了,加上这两个就禁止自己注册自己,就不会报错了。
接着启动项目:访问:http://127.0.0.1:8080,如图:
OK,No instances available:没有服务实例,也就是没有服务注册进来。
OK。笔记到此先。