SpringCloud学习记录——Eureka注册中心及serviceAdd微服务

点我点我:项目github地址

1、Eureka注册中心搭建。

新建Maven Project,命名为micro,整体架构父项目,用作整体SpringBoot版本控制。Group Id、Artifact Id、Package随意命名即可(此示例Group Id:com.xiudoua.study、Artifact Id:micro、Package:com.xiudoua.study.micro),修改pom.xml文件中打包方式为pom,pom.xml文件添加如下SpringBoot依赖指向。

<!-- JustFresh 2018-04-04 Spring Boot 版本整体依赖 Begin -->
<parent>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-parent</artifactId>
     <version>1.5.9.RELEASE</version>
     <relativePath/>
</parent>
<!-- JustFresh 2018-04-04 Spring Boot 版本整体依赖 End-->

新建maven module,命名为micro-eureka,父项目指向micro,打包方式选择jar,新建方式选择“maven-archetype-webapp”,如图1所示:


图1

pom.xml文件添加properties声明配置编码格式及java版本,引入spring-boot-starter-web、spring-boot-starter-test、spring-cloud-starter-eureka-server、javax.servlet-api。声明spring-cloud-dependencies版本,bulid标签添加spring-boot-maven-plugin插件,整体pom.xml代码如下:

<?xml version="1.0"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
	xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
	<modelVersion>4.0.0</modelVersion>
	<parent>
	    <groupId>com.xiudoua.study</groupId>
	    <artifactId>micro</artifactId>
	    <version>0.0.1-SNAPSHOT</version>
	</parent>
	<groupId>com.xiudoua.study</groupId>
	<artifactId>micro-eureka</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<packaging>war</packaging>
	<name>micro-eureka Maven Webapp</name>
	<url>http://maven.apache.org</url>
	
	<!-- JustFresh 2018-04-04 Begin 声明项目配置文件编码格式 -->
	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<java.version>1.8</java.version>
	</properties>
	<!-- JustFresh 2018-04-04 End 声明项目配置文件编码格式 -->
	
	<dependencies>
	
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<scope>test</scope>
		</dependency>
		
		<!-- JustFresh 2018-04-04 Begin SpringBoot项目基础引用 -->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>
		<!-- JustFresh 2018-04-04 End SpringBoot项目基础引用 -->
		
		<!-- JustFresh 2018-04-04 Begin Eureka注册中心所需引用 -->
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-eureka-server</artifactId>
		</dependency>
		<!-- JustFresh 2018-04-04 End Eureka注册中心所需引用 -->
		
		<!-- JustFresh 2018-04-04 Begin 引入打包发布(jar包或war包)所需sevlet支持 -->
		<dependency>
		    <groupId>javax.servlet</groupId>
		    <artifactId>javax.servlet-api</artifactId>
		    <scope>provided</scope>
		</dependency>
		<!-- JustFresh 2018-04-04 End 引入打包发布(jar包或war包)所需sevlet支持 -->
		
	</dependencies>
	
	<!-- JustFresh 2018-04-04 Begin 声明SpringCloud 引用版本 -->
	<dependencyManagement>
		<dependencies>
			<dependency>
				<groupId>org.springframework.cloud</groupId>
				<artifactId>spring-cloud-dependencies</artifactId>
				<version>Camden.SR5</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
		</dependencies>
	</dependencyManagement>
	<!-- JustFresh 2018-04-04 End 声明SpringCloud 引用版本 -->
	
	<build>
		<finalName>micro-eureka</finalName>
		<plugins>
			<!-- JustFresh 2018-04-04 Begin Spring Boot Maven plugin能够将Spring Boot应用打包为可执行的jar或war文件,然后以通常的方式运行Spring Boot应用 -->
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
				<configuration>
					<!-- JustFresh 2018-04-04 Begin 解决中文乱码问题 -->
			        <jvmArguments>-Dfile.encoding=UTF-8</jvmArguments>  
			        <!-- JustFresh 2018-04-04 End 解决中文乱码问题 -->
			    </configuration>
			</plugin>
			<!-- JustFresh 2018-04-04 End Spring Boot Maven plugin能够将Spring Boot应用打包为可执行的jar或war文件,然后以通常的方式运行Spring Boot应用 -->
	   </plugins>
	</build>
	
</project>

在src/main/java目录下新建com.xiudoua.study.micro包,在此包下新建一个EurekaApplication.java类,其中@SpringBootApplication代表此项目为SpringBoot工程,@EnableEurekaServer代表此服务以Eureka注册中心方式启动,代码如下:

package com.xiudoua.study.micro;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
@EnableEurekaServer
@SpringBootApplication
public class EurekaApplication {
	public static void main(String[] args) {
        SpringApplication.run(EurekaApplication.class, args);
    }
}

在src/main/resources目录下新建application.properties文件(此处可新建application.properties或者application.yml文件做配置均可),文件结构如下:

#标注服务名称
spring.application.name=eureka
#标注服务端口号,若不配置默认为8080;如若打包到tomcat或者jboss容器部署,则端口配置不生效,以容器端口为准
server.port=8080

#标注Eureka注册中心不进行自我注册
eureka.client.register-with-eureka=false
eureka.client.fetch-registry=false

#配置注册中心地址
eureka.client.serviceUrl.defaultZone=http://localhost:${server.port}/eureka/

#配置注册中心页面控制台地址,若不配置,默认为/
eureka.dashboard.path=/eurekaUI

选中EurekaApplication.java文件,右键以Spring Boot APP启动,浏览器输入http://localhost:8080/eurekaUI,访问如下界面(图2)则即为Eureka注册中心搭建成功。


图2

2、serviceAdd微服务编写并注册到Eureka。

新建maven module,命名为micro-serviceAdd,父项目指向micro,打包方式选择jar,新建方式选择“maven-archetype-webapp”。

pom.xml文件编码、java版本、SpringCloud声明引用版本、spring-boot-maven-plugin插件引用均与Eureka注册中心一致,但应去除注册中心的spring-cloud-starter-eureka-server引用并引入spring-cloud-starter-eureka,pom.xml整体文件如下:

<?xml version="1.0"?>
<project
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
	xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
	<modelVersion>4.0.0</modelVersion>
	<parent>
		<groupId>com.xiudoua.study</groupId>
		<artifactId>micro</artifactId>
		<version>0.0.1-SNAPSHOT</version>
	</parent>
	<groupId>com.xiudoua.study</groupId>
	<artifactId>micro-serviceAdd</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<packaging>war</packaging>
	<name>micro-serviceAdd Maven Webapp</name>
	<url>http://maven.apache.org</url>
	
	<!-- JustFresh 2018-04-04 Begin 声明项目配置文件编码格式 -->
	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<java.version>1.8</java.version>
	</properties>
	<!-- JustFresh 2018-04-04 End 声明项目配置文件编码格式 -->
	
	<dependencies>
	
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<scope>test</scope>
		</dependency>
		
		<!-- JustFresh 2018-04-04 Begin SpringBoot项目基础引用 -->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>
		<!-- JustFresh 2018-04-04 End SpringBoot项目基础引用 -->
		
		<!-- JustFresh 2018-04-04 Begin Eureka客户端服务所需引用 -->
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-eureka</artifactId>
		</dependency>
		<!-- JustFresh 2018-04-04 End Eureka客户端服务所需引用 -->
		
		<!-- JustFresh 2018-04-04 Begin 引入打包发布(jar包或war包)所需sevlet支持 -->
		<dependency>
		    <groupId>javax.servlet</groupId>
		    <artifactId>javax.servlet-api</artifactId>
		    <scope>provided</scope>
		</dependency>
		<!-- JustFresh 2018-04-04 End 引入打包发布(jar包或war包)所需sevlet支持 -->
		
	</dependencies>
	
	<!-- JustFresh 2018-04-04 Begin 声明SpringCloud 引用版本 -->
	<dependencyManagement>
		<dependencies>
			<dependency>
				<groupId>org.springframework.cloud</groupId>
				<artifactId>spring-cloud-dependencies</artifactId>
				<version>Camden.SR5</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
		</dependencies>
	</dependencyManagement>
	<!-- JustFresh 2018-04-04 End 声明SpringCloud 引用版本 -->
	
	<build>
		<finalName>micro-serviceAdd</finalName>
		<plugins>
			<!-- JustFresh 2018-04-04 Begin Spring Boot Maven plugin能够将Spring Boot应用打包为可执行的jar或war文件,然后以通常的方式运行Spring Boot应用 -->
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
				<configuration>
					<!-- JustFresh 2018-04-04 Begin 解决中文乱码问题 -->
			        <jvmArguments>-Dfile.encoding=UTF-8</jvmArguments>  
			        <!-- JustFresh 2018-04-04 End 解决中文乱码问题 -->
			    </configuration>
			</plugin>
			<!-- JustFresh 2018-04-04 End Spring Boot Maven plugin能够将Spring Boot应用打包为可执行的jar或war文件,然后以通常的方式运行Spring Boot应用 -->
	   </plugins>
	</build>
	
</project>

在src/main/java目录下新建com.xiudoua.study.micro包,在此包下新建一个ServiceAddApplication.java类,其中@SpringBootApplication代表此项目为SpringBoot工程,@EnableDiscoveryClient标注此微服务可被注册中心发现,@ComponentScan注解标注SpringBoot项目的包注解扫描,代码如下:

package com.xiudoua.study.micro;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.context.annotation.ComponentScan;

@EnableDiscoveryClient
@SpringBootApplication
@ComponentScan({"com.xiudoua.study.micro.controller"})
public class ServiceAddApplication {
	public static void main(String[] args) {
        SpringApplication.run(ServiceAddApplication.class, args);
    }
}

在src/main/java目录下新建com.xiudoua.study.micro.controller包,在此包新建AddController类,此类提供一个计算a+b之和的服务,代码如下:

package com.xiudoua.study.micro.controller;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class AddController {

    @RequestMapping(value = "/addTwoNum",method = RequestMethod.GET)
    public String addTowNum(@RequestParam Integer a,@RequestParam Integer b){
        return "公用调用a+b方法返回结果为:" + (a + b);
    }
	
}

在src/main/resources目录下新建application.properties文件(此处可新建application.properties或者application.yml文件做配置均可),文件结构如下:

#标注服务名称
spring.application.name=add
#标注服务端口号
server.port=8083

#配置指向Eureka注册中心的地址
eureka.client.serviceUrl.defaultZone=http://localhost:8080/eureka/

#显示注册客户端主机和端口号
spring.cloud.client.ipAddres=http://localhost/
eureka.instance.instance-id=${spring.cloud.client.ipAddress}:${spring.application.name}:${spring.application.instance_id:${server.port}}  
eureka.instance.preferIpAddress=true
选中ServiceAddApplication右键以Spring Boot App方式启动微服务,访问http://localhost:8080/eurekaUI,发现注册中心已经注册进入了服务,如图3;访问http://localhost:8083/addTwoNum?a=13&b=24,得到计算结果的返回页面,代表微服务注册成功并能正常使用,如图4.

图3


图4


猜你喜欢

转载自blog.csdn.net/u012459871/article/details/79813558
今日推荐