写在开头
本篇继续介绍基于Eureka的SpringCloud微服务搭建,回顾一下搭建过程,
第一步:建立一个服务注册中心;
第二步:建立微服务并注入到注册中心;
第三步:建立client端来访问微服务。
正文开始
接着上一章的内容,下面进行第二步【建立微服务】并【注入到注册中心】
上一章对IDEA建立SpringCloud做了详细介绍,重复部分本章一笔带过。
首先,建立一个拥有WEB、Eureka Discovery两个基础功能的项目
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> <groupId>com.cloud</groupId> <artifactId>cloud-service1</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>cloud-service1</name> <description>Demo project for Spring Cloud Service</description> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.3.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.RC2</spring-cloud.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</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> <repositories> <repository> <id>spring-milestones</id> <name>Spring Milestones</name> <url>https://repo.spring.io/milestone</url> <snapshots> <enabled>false</enabled> </snapshots> </repository> </repositories> </project>
然后在Application中增加@EnableEurekaClient注解
@SpringBootApplication @EnableEurekaClient publicclassCloudService1Application { publicstaticvoidmain(String[] args) { SpringApplication.run(CloudService1Application.class, args); } }
继续修改配置文件为.yml类型,并修改内容为
#设置服务注册中心地址 eureka: client: service-url: default-zone: http://localhost:8761/eureka #设置微服务端口号及微服务名 server: port: 8001 spring: application: name: cloud-service
建立Controller
@RestController public class ServiceInfoController { // 服务端口号 @Value("${server.port}") private String port; @RequestMapping(value = "/getServiceNameAndPort", method = RequestMethod.GET) public String getServiceNameAndPort(@RequestParam(value = "name") String name) { System.out.println("正在调用当前服务" + port); return "Hello " + name + " servicePort " + port; } }
COPY一份微服务项目,修改配置文件中server.port为8002
------------------------------------------------两个微服务搭建完毕 分割线------------------------------------------------
启动两个微服务项目
访问http://localhost:8761查看服务中心
现在已经注册两个微服务了!!
----------------------------------------------------接口调用 分割线--------------------------------------------------------
请求地址 http://localhost:8001/getServiceNameAndPort?name=tianmh 结果Hello tianmh servicePort 8001
请求地址 http://localhost:8002/getServiceNameAndPort?name=tianmh 结果Hello tianmh servicePort 8002
写在最后
至此,已经将同一个服务(cloud-server)的两个点(port:8001、port:8002)注册到服务注册中心,并提供了一个可供C端调用的接口
以上,亲测。
欢迎在评论区指正,
如果感觉本教程对您有所帮助,希望可以为笔者打Call