(四十一)java版spring cloud+spring boot+redis多租户社交电子商务平台-服务注册与发现(Eureka、Consul)

电子商务平台源码请加企鹅求求:三五三六二四七二五九。Spring Cloud是一个基于Spring Boot实现的云应用开发工具,它为基于JVM的云应用开发中涉及的配置管理、服务发现、断路器、智能路由、微代理、控制总线、全局锁、决策竞选、分布式会话和集群状态管理等操做提供了一种简单的开发方式。web

Spring Cloud包含了多个子项目(针对分布式系统中涉及的多个不一样开源产品),好比:Spring Cloud Config、Spring Cloud Netflix、Spring Cloud0 CloudFoundry、Spring Cloud AWS、Spring Cloud Security、Spring Cloud Commons、Spring Cloud Zookeeper、Spring Cloud CLI等项目。spring

微服务架构bash

“微服务架构”在这几年很是的火热,以致于关于微服务架构相关的开源产品被反复的说起(好比:netflix、dubbo),Spring Cloud也因Spring社区的强大知名度和影响力也被广大架构师与开发者备受关注。架构

那么什么是“微服务架构”呢?简单的说,微服务架构就是将一个完整的应用从数据存储开始垂直拆分红多个不一样的服务,每一个服务都能独立部署、独立维护、独立扩展,服务与服务间经过诸如RESTful API的方式互相调用。app

对于“微服务架构”,你们在互联网能够搜索到不少相关的介绍和研究文章来进行学习和了解。也能够阅读始祖Martin Fowler的《Microservices》(中文版翻译点击查看),本文不作更多的介绍和描述。负载均衡

服务治理框架

在简单介绍了Spring Cloud和微服务架构以后,下面回归本文的主旨内容,如何使用Spring Cloud来实现服务治理。分布式

因为Spring Cloud为服务治理作了一层抽象接口,因此在Spring Cloud应用中能够支持多种不一样的服务治理框架,好比:Netflix Eureka、Consul、Zookeeper。在Spring Cloud服务治理抽象层的做用下,咱们能够无缝地切换服务治理实现,而且不影响任何其余的服务注册、服务发现、服务调用等逻辑。spring-boot

因此,下面咱们经过介绍两种服务治理的实现来体会Spring Cloud这一层抽象所带来的好处。微服务

Spring Cloud Eureka

首先,咱们来尝试使用Spring Cloud Eureka来实现服务治理。

Spring Cloud Eureka是Spring Cloud Netflix项目下的服务治理模块。而Spring Cloud Netflix项目是Spring Cloud的子项目之一,主要内容是对Netflix公司一系列开源产品的包装,它为Spring Boot应用提供了自配置的Netflix OSS整合。经过一些简单的注解,开发者就能够快速的在应用中配置一下经常使用模块并构建庞大的分布式系统。它主要提供的模块包括:服务发现(Eureka),断路器(Hystrix),智能路由(Zuul),客户端负载均衡(Ribbon)等。

下面,就来具体看看如何使用Spring Cloud Eureka实现服务治理。

建立“服务注册中心”

建立一个基础的Spring Boot工程,命名为eureka-server,并在pom.xml中引入须要的依赖内容:

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.5.4.RELEASE</version>
    <relativePath/>
</parent>

<dependencies>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-eureka-server</artifactId>
    </dependency>
</dependencies>

<dependencyManagement>
    <dependencies>
        <dependency>
           <groupId>org.springframework.cloud</groupId>
           <artifactId>spring-cloud-dependencies</artifactId>
           <version>Dalston.SR1</version>
           <type>pom</type>
           <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>
复制代码

经过@EnableEurekaServer注解启动一个服务注册中心提供给其余应用进行对话。这一步很是的简单,只须要在一个普通的Spring Boot应用中添加这个注解就能开启此功能,好比下面的例子:

@EnableEurekaServer
@SpringBootApplication
public class Application {

    public static void main(String[] args) {
        new SpringApplicationBuilder(Application.class)
                    .web(true).run(args);
    }
}
复制代码

在默认设置下,该服务注册中心也会将本身做为客户端来尝试注册它本身,因此咱们须要禁用它的客户端注册行为,只须要在application.properties配置文件中增长以下信息:

spring.application.name=eureka-server
server.port=1001

eureka.instance.hostname=localhost
eureka.client.register-with-eureka=false
eureka.client.fetch-registry=false
复制代码

为了与后续要进行注册的服务区分,这里将服务注册中心的端口经过server.port属性设置为1001。启动工程后,访问:http:/ /localhost:1001/,能够看到下面的页面,其中尚未发现任何服务。

相关文章
相关标签/搜索