My Avatar

licaibo

在JDK改来改去!

SpringCloud构建微服务(一) Eureka

2017年09月24日 星期日, 发表于 海南 东方

如果你对本文有任何的建议或者疑问, 可以在 这里给我提 Issues, 谢谢! :)

自己用SpringBoot和SpringCloud也有一年多的时间了,第一次接触到SpringBoot就被它的快速简单搭建给吸引,加上公司之前有做SpringCloud的微服务开发,这里想分享一下SpringCloud搭建简单的微服务,包括搭建注册中心、配置中心,服务的负载均衡调用等等,工程全部都是使用SpringBoot进行搭建,算是一个学习总结吧,代码都托管在自己GitHub的SpringCloud-Project仓库

注册中心Eureka搭建

当我们的系统都被拆分成一个个细小的服务时,对于服务的统一治理则是我们构建微服务架构的首选,所有的服务都围绕着eureka进行注册、下线,大致上可以如下图所示: cmd-markdown-logo

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
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.3.5.RELEASE</version>
</parent>
    <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Brixton.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-eureka-server</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-config</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
1
2
3
4
5
6
7
@SpringBootApplication
@EnableEurekaServer
public class EurekaServerApplication {
    public static void main(String[] args) {
        SpringApplication.run(EurekaServerApplication.class,args);
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
server:
  port: 8765

spring:
  application:
    name: eureka-serve

eureka:
  client:
    serviceUrl:
      defaultZone: http://localhost:${server.port}/eureka/
    registerWithEureka: false  //不能将自己注册自己
    fetchRegistry: false    //由于自己是注册中心,所以不需要获取注册信息
  server:
    waitTimeInMsWhenSyncEmpty: 0  //设置同步为空时的等待时间

cmd-markdown-logo