spring cloud netflix 系列技术栈
spring cloud netflix 系列技术栈(所有)
spring cloud netflix Eureka服务端
spring cloud netflix Eureka客户端
前言
在前面的博客中我介绍了这样的的一组关系【eureka服务端(eureka注册中心)】和【eureka客户端】的关系。
这篇博客主要是介绍如何搭建服务的提供者,在项目搭建之前,我首先来介绍一下【服务提供者,服务消费者】与【eureka服务端,eureka客户端】之间的关系,服务提供者与服务消费者均是eureka客户端,需要注册在eureka服务端。
通过上面的介绍,我们知道要搭建服务提供者这样的一个服务,首先这个服务必须是eureka客户端,如何搭建eureka客户,点击该链接即可get
搭建服务提供者的步骤
- 保证服务是一个eureka客户端
- 提供服务的部分就是controller,server,mapper下的代码
搭建服务提供者的详细步骤
创建spring-cloud-netflix-server-admin
- 选择directory
- 命名为spring-cloud-netflix-server-admin
- 创建pom文件
- 命名为pom.xml
- 添加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>com.baiyang</groupId>
<artifactId>spring-cloud-netflix-dependencies</artifactId>
<version>1.0.0-SNAPSHOT</version>
<!-- 指向统一的依赖管理的位置 -->
<relativePath>../spring-cloud-netflix-dependencies/pom.xml</relativePath>
</parent>
<groupId>com.baiyang</groupId>
<artifactId>spring-cloud-netflix-server-admin</artifactId>
<packaging>jar</packaging>
<!-- 记录一些项目信息-->
<name>spring-cloud-netflix-server-admin</name>
<url>https://blog.csdn.net/weixin_41756573</url>
<inceptionYear>2019-Now</inceptionYear>
<dependencies>
<!-- Spring Boot Test Begin -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!-- Spring Boot Test End -->
<!-- Spring Cloud Eureka Begin -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
<!-- Spring Cloud Eureka End -->
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<!-- 配置程序的入口类 -->
<mainClass>com.baiyang.spring.cloud.netflix.server.admin.AdminServerApplication</mainClass>
</configuration>
</plugin>
</plugins>
</build>
</project>
- 将pom文件交由IntelliJ IDEA托管
根据maven目录完善目录结构
-
创建src/main/java目录
-
将java设置Sources Root目录
-
创建resources目录
-
将resources设置为resources root目录
-
创建application.yml
-
application.yml的内容
spring:
application:
# 服务名称,eureka通过服务名称完成服务的注册与发现
name: spring-cloud-netflix-server-admin
server:
port: 8763
eureka:
client:
serviceUrl:
# 指向Eureka服务端的地址
defaultZone: http://localhost:8761/eureka/
创建项目启动类AdminServerApplication
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
@SpringBootApplication
@EnableEurekaServer
public class AdminServerApplication {
public static void main(String[] args) {
SpringApplication.run(AdminServerApplication.class,args);
}
}
书写提供服务的代码
- 项目目录结构
- controller代码
因为这是学习使用netflix技术栈搭建微服务,所以只提供了controller层,并没有提供完整的三层架构。
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class AdminController {
@Value("${server.port}")
private String port;
@GetMapping("hello")
public String hello(@RequestParam(value = "message") String message){
return String.format("你好,您输入的信息是 : %s 提供服务的端口是 : %s", message, port);
}
}
检验项目是否搭建成功
出现下图结果代表服务提供者搭建成功
我们来访问一下服务的提供者
这样服务提供者的服务就搭建成功了。
总结
其实在netflix技术栈中搭建服务提供者首先需要保证服务提供者是一个eureka客户端,提供服务的部分就是我们在controller,server,mapper下书写的代码。