本文内容纲要:spring-cloud - 基础环境搭建
spring-cloud中文文档:https://springcloud.cc/
spring-cloud中文导航:http://springcloud.fun/
文章纯属用于个人学习的一个归纳,哪里不对希望大哥们能指出,如果你帮助到你一点点那也是我的荣幸(对于小白还是有点用的- -)。
————————————————————————————————————————————————————————————————————————————————————
** 那么Spring Boot和和Spring Cloud 功能区别是什么呢?**
- Spring Boot 它内嵌Web服务器(tomcat/jetty)的可执行程序的框架。你开发的web应用不需要作为war包部署到web服务器中[例如:把war包扔到tomcat app下],Spring Boot 直接作为一个可启动程序,直接把Web启动起来加载起来。
- Spring Cloud是一套微服务开发和治理框架,来自Netflex的OSS,包含了微服务运行的功能,可以通过Spring-boot 项目集成很多功能比如 RabbitMQ,ES,Ribbon,负载均衡,限流等。
spring-cloud基本架构图:
图片来源网络
下面开始搭建基础项目,环境:
jdk1.8
eclipse
一、搭建注册中心(即服务发现中心) :
创建一个maven-project
创建好的目录层次结构:
pom文件:
1 <project xmlns="http://maven.apache.org/POM/4.0.0"
2 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4 <modelVersion>4.0.0</modelVersion>
5 <groupId>custom-server</groupId>
6 <artifactId>custom-server</artifactId>
7 <version>0.0.1-SNAPSHOT</version>
8 <!-- 引入spring boot的依赖 -->
9 <parent>
10 <groupId>org.springframework.boot</groupId>
11 <artifactId>spring-boot-starter-parent</artifactId>
12 <version>2.0.7.RELEASE</version>
13 </parent>
14 <dependencies>
15 <!-- Eureka-server依赖 -->
16 <dependency>
17 <groupId>org.springframework.cloud</groupId>
18 <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
19 </dependency>
20 <!-- 密码配置依赖 -->
21 <dependency>
22 <groupId>org.springframework.boot</groupId>
23 <artifactId>spring-boot-starter-security</artifactId>
24 </dependency>
25 </dependencies>
26 <!-- 引入spring cloud的依赖,不能少,主要用来管理Spring Cloud生态各组件的版本 -->
27 <dependencyManagement>
28 <dependencies>
29 <dependency>
30 <groupId>org.springframework.cloud</groupId>
31 <artifactId>spring-cloud-dependencies</artifactId>
32 <version>Finchley.SR2</version>
33 <type>pom</type>
34 <scope>import</scope>
35 </dependency>
36 </dependencies>
37 </dependencyManagement>
38
39 <!-- 添加spring-boot的maven插件,不能少,打jar包时得用 -->
40 <build>
41 <plugins>
42 <plugin>
43 <groupId>org.springframework.boot</groupId>
44 <artifactId>spring-boot-maven-plugin</artifactId>
45 </plugin>
46 </plugins>
47 </build>
48
49 </project>
View Code
这里使用的是Finchley.SR2版本,这是在网上找了许多后选择了一个相对较新的版本。
security库不用理会,后面写注册中心时会有说明,其他spring-boot、eureka、spring-cloud都是必须的库
在resources编写application.yml配置文件:
server:
port: 8080
spring:
eureka:
instance:
hostname: localhost
client:
# 是否要注册到其他Eureka Server实例
register-with-eureka: false
# 是否要从其他Eureka Server实例获取数据
fetch-registry: false
service-url:
# 下面俩种方式随便一种都可以,但是后缀【eureka】必不可少
#defaultZone: http://{hostname}:{server.port}/eureka/
defaultZone: http://localhost:8080/eureka/
spring.security.user.name跟password先不用理会,后面讲述注册中心会有提到。
建包编写入口类(入口类必须放在顶级的包下面,否则会无法扫描自动注入):
package com.server;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
@SpringBootApplication // spring-boot启动注解
@EnableEurekaServer // eureka组件服务注解
public class ServerApplication {
public static void main(String[] args) {
SpringApplication.run(ServerApplication.class, args);
}
}
编写好后的注册中心整体结构:
运行ServerApplication后,访问localhost:8080如果看到下面画面就说明注册中心搭建好了:
红色字体先不用理会,现在没有使用账号跟密码,任何服务都能注册到注册中心,下面创建一个服务注册到注册中心。
二、搭建一个服务注册到注册中心:
同样创建一个名为custom-client的maven-project
pom文件:
1 <project xmlns="http://maven.apache.org/POM/4.0.0"
2 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4 <modelVersion>4.0.0</modelVersion>
5 <groupId>custom-client</groupId>
6 <artifactId>custom-client</artifactId>
7 <version>0.0.1-SNAPSHOT</version>
8 <!-- 引入spring boot的依赖 -->
9 <parent>
10 <groupId>org.springframework.boot</groupId>
11 <artifactId>spring-boot-starter-parent</artifactId>
12 <version>2.0.7.RELEASE</version>
13 </parent>
14 <properties>
15 <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
16 <java.version>1.8</java.version>
17 </properties>
18 <dependencies>
19 <dependency>
20 <groupId>org.springframework.boot</groupId>
21 <artifactId>spring-boot-starter-web</artifactId>
22 </dependency>
23 <!-- eureka服务组件 -->
24 <dependency>
25 <groupId>org.springframework.cloud</groupId>
26 <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
27 </dependency>
28 </dependencies>
29 <!-- 引入spring cloud的依赖,不能少,主要用来管理Spring Cloud生态各组件的版本 -->
30 <dependencyManagement>
31 <dependencies>
32 <dependency>
33 <groupId>org.springframework.cloud</groupId>
34 <artifactId>spring-cloud-dependencies</artifactId>
35 <version>Finchley.SR2</version>
36 <type>pom</type>
37 <scope>import</scope>
38 </dependency>
39 </dependencies>
40 </dependencyManagement>
41
42 <!-- 添加spring-boot的maven插件,不能少,打jar包时得用 -->
43 <build>
44 <plugins>
45 <plugin>
46 <groupId>org.springframework.boot</groupId>
47 <artifactId>spring-boot-maven-plugin</artifactId>
48 </plugin>
49 </plugins>
50 </build>
51 </project>
View Code
application.yml:
1 server:
2 port: 8001
3 spring:
4 application:
5 # 指定注册到eureka server上的服务名称
6 name: custom-client
7 eureka:
8 client:
9 service-url:
10 # 指定eureka server通信地址,注意/eureka/小尾巴不能少
11 defaultZone: http://localhost:8080/eureka/
12 instance:
13 # 是否注册IP到eureka server,如不指定或设为false,那就会注册主机名到eureka server
14 prefer-ip-address: true
View Code
*Application.java:
1 package com.client;
2
3 import org.springframework.boot.SpringApplication;
4 import org.springframework.boot.autoconfigure.SpringBootApplication;
5 import org.springframework.context.annotation.Bean;
6 import org.springframework.web.client.RestTemplate;
7
8 @SpringBootApplication
9 @EnableEurekaClient // eurekaClient注解
10 public class UserClientApplication {
11
12
13 public static void main(String[] args) {
14 SpringApplication.run(UserClientApplication.class, args);
15 }
16 }
View Code
编写完成好启动UserClientApplication类,然后访问注册中心,查看服务是否注册到了中心,访问localhost:8080:
图上标注的就是刚才启动并注册的服务,一个最基本的架构已经完成了,后面陆续添加其他微服务的基础篇章,大家一起学习、一起进步。
本文内容总结:spring-cloud - 基础环境搭建
原文链接:https://www.cnblogs.com/xxpandong/p/10485172.html