Day01 使用Spring Cloud搭建服务注册中心

使用Spring Cloud搭建服务注册中心

废话不多说 , 直接上代码 , 本文以及以后的各个工程都是基于Springboot搭建 , 希望大家有一点SpringBoot和Maven的基础, 好了 一起搭建吧

1.搭建父工程springcloud-parent

pom文件依赖如下(注意父工程要pom格式的)

<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.tianxiaobin</groupId>
	<artifactId>springcloud-parent</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<name>springcloud-parent</name>
	<description>springcloud微服务的父工程</description>
	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>1.5.6.RELEASE</version>
		<relativePath />
	</parent>

	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
		<java.version>1.8</java.version>
	</properties>

	<dependencyManagement>
		<dependencies>
			<dependency>
				<groupId>org.springframework.cloud</groupId>
				<artifactId>spring-cloud-dependencies</artifactId>
				<version>Dalston.SR3</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
		</dependencies>
	</dependencyManagement>

	<!-- Springboot编译插件 -->
	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
		</plugins>
	</build>

</project>

2.搭建服务端工程(eureka)

pom文件依赖如下

<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>com.tianxiaobin</groupId>
		<artifactId>springcloud-parent</artifactId>
		<version>0.0.1-SNAPSHOT</version>
	</parent>
	<artifactId>springcloud-eureka-server</artifactId>
	<name>microservice-eureka-server</name>

	<dependencies>
		<dependency>
			<!-- eureka的启动包 -->
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-eureka-server</artifactId>
		</dependency>
	</dependencies>

</project>

eureka启动类

  /**
 * @ClassName: EurekaApplication
 * @Description: eureka的启动类
 * @author: 田晓斌
 * @date: 2019年4月17日 下午6:14:45
 */
@EnableEurekaServer
@SpringBootApplication
public class EurekaApplication {
	public static void main(String[] args) {
		SpringApplication.run(EurekaApplication.class, args);
	}
}

配置服务注册中心

server:
 port: 8888 #端口号
eureka:
  instance:
   hostname: localhost  #localhost表示设置该服务注册中心的hostname
  client:
   register-with-eureka: false  #禁止向eureka注册自己
   fetch-registry: false  #表示不去检索其他的服务
   service-url:
    defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/

测试

做完这一切之后,我们就可以启动这一个Spring Boot 服务,服务启动成功之后,在浏览器中输入:http://localhost:8888就能够看到如下页面:

eureka

3.搭建客户端工程

添加pom依赖
<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>com.tianxiaobin</groupId>
		<artifactId>springcloud-parent</artifactId>
		<version>0.0.1-SNAPSHOT</version>
	</parent>
	<artifactId>springcloud-eureka-user</artifactId>
	<name>user客户端</name>

	<dependencies>
		<dependency>
			<!-- eureka的启动包 -->
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-eureka-server</artifactId>
		</dependency>
	</dependencies>
</project>

客户端的启动类

/**
 * @ClassName: ClientApplication
 * @Description: 客户端的启动类
 * @author: 田晓斌
 * @date: 2019年4月17日 下午6:23:10
 */
@EnableEurekaClient
@SpringBootApplication
public class UserApplication {
	public static void main(String[] args) {
		SpringApplication.run(UserApplication.class, args);
	}
}

客户端的配置文件

server:
  port: 8001  #指定实例的端口号

spring:
 application:
  name: springcloud-eureka-user #指定应用的名称

eureka:
  client:
   service-url:
    defaultZone: http://localhost:8888/eureka #指定eureka服务端地址
  instance:
    prefer-ip-address: true #是否显示主机的IP

测试

做完这一切之后,我们就可以启动这两个Spring Boot 服务,服务启动成功之后,在浏览器中输入:http://localhost:8888就能够看到如下页面:

在这里插入图片描述

我们不难发现上图中已经有user实例注册到eureka中,说明是成功的

4.搭建第二个客户端工程实并实现相互调用

<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>com.tianxiaobin</groupId>
		<artifactId>springcloud-parent</artifactId>
		<version>0.0.1-SNAPSHOT</version>
	</parent>
	<artifactId>springcloud-eureka-order</artifactId>
	<name>order订单微服务</name>

	<dependencies>
		<dependency>
			<!-- eureka的启动包 -->
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-eureka-server</artifactId>
		</dependency>
	</dependencies>

</project>

第二个客户端的启动类

/**
 * @ClassName: OrderApplication
 * @Description: 客户端的启动类
 * @author: 田晓斌
 * @date: 2019年4月17日 下午6:23:10
 */
@EnableEurekaClient
@SpringBootApplication
public class OrderApplication {
	public static void main(String[] args) {
		SpringApplication.run(OrderApplication.class, args);
	}
}

客户端的配置文件

server:
  port: 8002  #指定实例的端口号

eureka:
  client:
   service-url:
    defaultZone: http://localhost:8888/eureka #指定eureka服务端地址
  instance:
    prefer-ip-address: true #是否显示主机的IP
    
spring:
 application:
  name: springcloud-eureka-order #指定应用的名称

Order项目的实体类

@Data // get,set,tostring,hashcode
@AllArgsConstructor // 有参
@NoArgsConstructor // 无参
public class Order {
	private String id;
	private Double price;
	private String receivername;
	private String receiveraddress;
	private String receiverphone;
}
/**
 * @ClassName: OrderController
 * @Description: 订单服务的Controller
 * @author: 田晓斌
 * @date: 2019年4月18日 上午9:06:28
 */
@RestController
public class OrderController {

	/**
	 * 通过id查询订单
	 */

	@GetMapping("/order/{id}")
	public String findOrderById(@PathVariable String id) {
		Order order = new Order(id, 8.8, "小明", "北京", "13333333333");
		return order.toString();
	}

}

在user服务的启动类中注入RestTemplate实例

@Bean
	public RestTemplate restTemplate() {
		return new RestTemplate();
	}

在User服务的Controller中去连接Order服务


/**
 * @ClassName: OrderController
 * @Description: 订单服务的Controller
 * @author: 田晓斌
 * @date: 2019年4月18日 上午9:06:28
 */
@RestController
public class OrderController {

	/**
	 * 通过id查询订单
	 */
	@GetMapping("/order/{id}")
	public String findOrderById(@PathVariable String id) {
		Order order = new Order(id, 8.8, "小明", "北京", "13333333333");
		return order.toString();
	}
}

测试

做完这一切之后,我们就可以启动这三个Spring Boot 服务,服务启动成功之后,在浏览器中输入:http://localhost:8888就能够看到如下页面:

在这里插入图片描述

接下来访问localhost:8001/findOrdersByUser/1

在这里插入图片描述

到这里第一张搭建Eureka服务器成功,完美

猜你喜欢

转载自blog.csdn.net/Alone5256/article/details/89357430
今日推荐