博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring Cloud 入门教程(一): 服务注册
阅读量:5085 次
发布时间:2019-06-13

本文共 8530 字,大约阅读时间需要 28 分钟。

1.  什么是Spring Cloud?

Spring提供了一系列工具,可以帮助开发人员迅速搭建分布式系统中的公共组件(比如:配置管理,服务发现,断路器,智能路由,微代理,控制总线,一次性令牌,全局锁,主节点选举, 分布式session, 集群状态)。协调分布式环境中各个系统,为各类服务提供模板性配置。使用Spring Cloud, 开发人员可以搭建实现了这些样板的应用,并且在任何分布式环境下都能工作得非常好,小到笔记本电脑, 大到数据中心和云平台。

Spring Cloud官网的定义比较抽象,我们可以从简单的东西开始。Spring Cloud是基于Spring Boot的, 最适合用于管理Spring Boot创建的各个微服务应用。要管理分布式环境下的各个Spring Boot微服务,必然存在服务的注册问题。所以我们先从服务的注册谈起。既然是注册,必然有个管理注册中心的服务器,各个在Spring Cloud管理下的Spring Boot应用就是需要注册的client

Spring Cloud使用erureka server,  然后所有需要访问配置文件的应用都作为一个erureka client注册上去。eureka是一个高可用的组件,它没有后端缓存,每一个实例注册之后需要向注册中心发送心跳,在默认情况下erureka server也是一个eureka client ,必须要指定一个 server。

2.  创建Eureka Server

1).创建一个Maven工程helloworld.eureka.server, pom.xml内容如下:

1 
2
4
4.0.0
5
com.chry
6
springcloud.helloworld.eureka.server
7
0.0.1-SNAPSHOT
8
jar
9
springcloud.helloworld.Eureka.server
10
Demo Spring Eureka Server
11 12
13
org.springframework.boot
14
spring-boot-starter-parent
15
1.5.3.RELEASE
16
17
18 19
20
UTF-8
21
UTF-8
22
1.8
23
24 25
26
27
28
org.springframework.cloud
29
spring-cloud-starter-eureka
30
31
32
org.springframework.cloud
33
spring-cloud-starter-eureka-server
34
35
36
org.springframework.cloud
37
spring-cloud-starter-config
38
39
40
41
org.springframework.boot
42
spring-boot-starter-test
43
test
44
45
46 47
48
49
50
org.springframework.cloud
51
spring-cloud-dependencies
52
Dalston.RC1
53
pom
54
import
55
56
57
58 59
60
61
62
org.springframework.boot
63
spring-boot-maven-plugin
64
65
66
67 68
69
70
spring-milestones
71
Spring Milestones
72
https://repo.spring.io/milestone
73
74
false
75
76
77
78 79

 2). 用Spring Boot创建一个服务类EurekaServerApplication,需要一个注解@EnableEurekaServer加在springboot工程的启动类上

1 package springcloud.helloworld.eureka.server; 2  3 import org.springframework.boot.SpringApplication; 4 import org.springframework.boot.autoconfigure.SpringBootApplication; 5 import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer; 6  7 @EnableEurekaServer 8 @SpringBootApplication 9 public class EurekaServerApplication {10 11     public static void main(String[] args) {12         SpringApplication.run(EurekaServerApplication.class, args);13     }14 }

3).eureka server的配置文件application.yml,其中registerWithEureka:false和fetchRegistry:false表明自己是一个eureka server

1 server: 2    port: 8761 3  4 eureka: 5    instance: 6        hostname: localhost 7    client: 8        registerWithEureka: false 9        fetchRegistry: false10        serviceUrl:11            defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/

4) eureka server的工程结构如下

5)启动eureka server,然后访问http://localhost:8761, 界面如下, "No instances available" 表示无client注册

 

3.  创建Eureka Client

1). 创建一个Maven工程helloworld.eureka.client, pom.xml内容如下:

1 
2
3
4.0.0
4
com.chry
5
springcloud.helloworld.eureka.client
6
0.0.1-SNAPSHOT
7
springcloud.helloworld.eureka.client
8
jar
9
Demo Spring Boot Client
10 11
12
org.springframework.boot
13
spring-boot-starter-parent
14
1.5.3.RELEASE
15
16
17 18
19
UTF-8
20
UTF-8
21
1.8
22
23 24
25
26
org.springframework.cloud
27
spring-cloud-starter-eureka
28
29
30
org.springframework.boot
31
spring-boot-starter-web
32
33 34
35
org.springframework.boot
36
spring-boot-starter-test
37
test
38
39
40 41
42
43
44
org.springframework.cloud
45
spring-cloud-dependencies
46
Dalston.RC1
47
pom
48
import
49
50
51
52 53
54
55
56
org.springframework.boot
57
spring-boot-maven-plugin
58
59
60
61 62
63
64
spring-milestones
65
Spring Milestones
66
https://repo.spring.io/milestone
67
68
false
69
70
71
72 73 74

2).  创建主类EurekaClientApplication

使用@EnableEurekaClient注解表明是client

1 package springcloud.helloworld.eureka.client; 2  3 import org.springframework.beans.factory.annotation.Value; 4 import org.springframework.boot.SpringApplication; 5 import org.springframework.boot.autoconfigure.SpringBootApplication; 6 import org.springframework.cloud.netflix.eureka.EnableEurekaClient; 7 import org.springframework.web.bind.annotation.RequestMapping; 8 import org.springframework.web.bind.annotation.RequestParam; 9 import org.springframework.web.bind.annotation.RestController;10 11 @SpringBootApplication12 @EnableEurekaClient13 @RestController14 15 public class EurekaClientApplication {16 17     public static void main(String[] args) {18         SpringApplication.run(EurekaClientApplication.class, args);19     }20 21     @Value("${server.port}")22     String port;23     @RequestMapping("/")24     public String home() {25         return "hello world from port " + port;26     }27 28 }

3) eureka client的配置文件appication.yml

1 eureka:2     client:3         serviceUrl:4             defaultZone: http://localhost:8761/eureka/5 server:6     port: 87627 spring:8     application:9         name: service-helloworld

4). Client启动后, 可以访问http://localhost:8762

 

5). 再次访问服务器端口, 可以看到Service Helloworld已经自动注册到之前的server中

 

转载于:https://www.cnblogs.com/7788IT/p/11324201.html

你可能感兴趣的文章
动态规划算法之最大子段和
查看>>
linux c:关联变量的双for循环
查看>>
深入浅出理解zend framework(三)
查看>>
python语句----->if语句,while语句,for循环
查看>>
javascript之数组操作
查看>>
LinkedList源码分析
查看>>
TF-IDF原理
查看>>
用JS制作博客页面背景随滚动渐变的效果
查看>>
JavaScript的迭代函数与迭代函数的实现
查看>>
一步步教你学会browserify
查看>>
Jmeter入门实例
查看>>
亲近用户—回归本质
查看>>
中文脏话识别的解决方案
查看>>
CSS之不常用但重要的样式总结
查看>>
Python编译错误总结
查看>>
URL编码与解码
查看>>
日常开发时遇到的一些坑(三)
查看>>
Eclipse 安装SVN插件
查看>>
深度学习
查看>>
TCP粘包问题及解决方案
查看>>