最简单的懒人springcloud之Eureka(服务注册与发现)
本文开发软件是STS,是eclipse为springboot项目而生的一个软件,用这个软件开发spring的项目版本都会自己对应的,话不多说直接上代码
springboot版本2.1.8.RELEASE
点击完成后,等待项目生成,完成之后我们点开项目可以看到,所有需要用到的文件都已经生成好了,而且启动类与pom文件都有了
打开pom文件,可以看到所有的属性都已配置。
<?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> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.1.8.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.linje</groupId> <artifactId>Eureka</artifactId> <version>0.0.1-SNAPSHOT</version> <name>SpringCloud-Eureka</name> <description>Spring Boot</description> <properties> <java.version>1.8</java.version> <spring-cloud.version>Greenwich.SR3</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>
好,下一步只需要对appapplication.yml(如果没有,那就建立一个)进行最简单的配置
server: port: 8081 spring: application: name: Enreka eureka: instance: hostname: localhost client: register-with-eureka: false fetch-registry: false service-url: defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
表示server.port=8081, spring.application.name=enreka, eureka.instance.hostname=localhost, 其中eureka.client.registerWithEureka和eureka.client.fetchRegistry为false,表示当前工程是Eureka服务。
服务端最后一步,在启动类上添加一个注解就可以完成了
package com.linje; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer; @SpringBootApplication @EnableEurekaServer // 表示这是服务注册 public class SpringCloudEurekaApplication { public static void main(String[] args) { SpringApplication.run(SpringCloudEurekaApplication.class, args); } }
这就完成了吗,每错,服务端最简单的架子就已经完成了,启动方法就可测试
程序正常启动,打开浏览器,输入http://127.0.0.1:8081,即可看到这个界面
说明你的服务已经正常启动,而且还是可以用的,是不是很激动
架子已经搭建好了,下一步需要这个架子出点力了,建立一个服务消费者
yml文件配置如下
server: port: 8082 eureka: client: service-url: defaultZone: http://localhost:8081/eureka/ spring: application: name: service-ribbon
添加一个controller,并添加测试方法
package com.linje.controller; import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; @RestController public class EnrekaController { @Value("${server.port}") String port; // 获取yml中的端口号 @RequestMapping("hello") public String TestController(@RequestParam String param) { return "呐呐呐,端口号:"+port+"还有你的参数:"+param; } }
然后运行成功后,查看你的服务主界面,你会发现多了那么一条信息
这证明你的enreka集成成功啦,然后测试你的服务是否正常工作
在浏览器中输入http://127.0.01:8082/hello?param=123
测试完成,是不是都感觉很简单呢~
默默地温故知新