注冊中心呢 就是springcloud的一個核心組件 所有微服務(wù)的基石 微服務(wù)的核心思想就是分布式 所有的服務(wù)分開管理 但這些服務(wù)分開后該如何協(xié)同呢 就需要注冊中心的介入
怎么使用注冊中心
首先在gradle引入它的依賴
1
|
compile 'org.springframework.cloud:spring-cloud-starter-eureka-server' |
這里再講一下 springcloud會分布很多模塊 很難管理 所以在整個項(xiàng)目的build.gradle中可以對所有模塊的build.gradle進(jìn)行管理
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
|
//插件 apply plugin: 'java' apply plugin: 'spring-boot' //jdk版本 sourcecompatibility = 1.8 dependencies { testcompile group: 'junit' , name: 'junit' , version: '4.12' //項(xiàng)目版本 } //在編譯構(gòu)建時的配置 自動維護(hù)版本號 buildscript { ext{ springbootversion= '1.5.10.release' //ext中可以定義變量 里面寫的是springboot插件的版本 } repositories { maven{ url 'http://maven.aliyun.com/nexus/content/groups/public/' } jcenter() mavencentral() maven{ url "http://repo.spring.io/snapshot" } maven{ url "http://repo.spring.io/milestone" } maven{ url "http://repo.spring.io/release" } maven{ url 'http://repo.spring.io/plugins-snapshot' } } dependencies{ classpath( "org.springframework.boot:spring-boot-gradle-plugin:${springbootversion}" ) } } //統(tǒng)一所有項(xiàng)目的配置 就是對所有的模塊進(jìn)行統(tǒng)一配置 所有以后的模塊都不用再配置 allprojects { group 'com.indi.wk' //分組 version '1.0-snapshot' //版本號 ext{ springcloudversion= 'edgware.sr2' } repositories { maven{ url 'http://maven.aliyun.com/nexus/content/groups/public/' } jcenter() mavencentral() maven{ url "http://repo.spring.io/snapshot" } maven{ url "http://repo.spring.io/milestone" } maven{ url "http://repo.spring.io/release" } maven{ url 'http://repo.spring.io/plugins-snapshot' } } } //統(tǒng)一所有子項(xiàng)目的配置 subprojects { apply plugin: 'java' apply plugin: 'idea' apply plugin: 'spring-boot' dependencies { compile( 'org.springframework.boot:spring-boot-starter-web' ){ //移除tomcat 因?yàn)閟pringboot嫌tomcat運(yùn)行慢 就使用undertow來代替 exclude module: "spring-boot-starter-tomcat" } //替代tomcat compile 'org.springframework.boot:spring-boot-starter-undertow' //健康檢查 compile 'org.springframework.boot:spring-boot-starter-actuator' dependencies { testcompile group: 'junit' , name: 'junit' , version: '4.12' } } //版本控制插件 dependencymanagement{ imports{ mavenbom "org.springframework.cloud:spring-cloud-dependencies:${springcloudversion}" } } } |
看下配置文件
1
2
3
4
5
6
7
8
9
|
server: port: 8888 #端口號 spring: application: name: register-center #項(xiàng)目名 eureka: client: register-with-eureka: false #啟動時不向注冊中心注冊自己 意思也就是證明自己是一個注冊中心 fetch-registry: false #啟動時是否檢索服務(wù) 不檢索 含義同上 |
還有一個
1
|
eureka.server.enable-self-preservation: |
是否開啟自我保護(hù)模式,默認(rèn)為true 會在下一篇博客詳細(xì)說明[/code]
需要在啟動類上加上兩個注解
1
2
3
4
5
6
7
|
@springbootapplication //啟動項(xiàng)目 @enableeurekaserver // 定義自己是一個注冊中心 public class registercenterprovider { public static void main(string[] args) { springapplication.run(registercenterprovider. class ,args); } } |
這時候就可以嘗試將一個服務(wù)加入注冊中心
先建一個新模塊
一、加入依賴
1
|
compile 'org.springframework.cloud:spring-cloud-starter-eureka-server' |
二、配置文件 幾乎一樣 唯一不同是加入如下兩點(diǎn)
1
2
3
4
5
6
|
eureka: client: service-url: defaultzone: http: //localhost:8888/eureka/ #注冊進(jìn)那個注冊中心 注冊中心的地址 instance: prefer-ip-address: true #是否用ip地址注冊進(jìn)注冊中心 |
三、在啟動類上加入注解
1
|
@enablediscoveryclient |
之后啟動注冊中心的啟動類 再啟動服務(wù)端的啟動類 看看什么效果
一定要先啟動注冊中心 再啟動服務(wù)端 否則服務(wù)端找不到可以注冊的注冊中心就會報錯
這樣就是已經(jīng)注冊成功
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持服務(wù)器之家。
原文鏈接:http://www.cnblogs.com/wangkee/p/9304161.html