zoukankan      html  css  js  c++  java
  • SpringCloud微服务的Eureka

    一、什么是微服务架构

     

      架构设计概念,各服务间隔离(分布式也是隔离),自治(分布式依赖整体组合)其它特性(单一职责,边界,异步通信,独立部署)是分布式概念的跟严格执行SOA到微服务架构的演进过程

     

      作用:各服务可独立应用,组合服务也可系统应用(巨石应用[monolith]的简化实现策略-平台思想)

     

     

    二、SOA架构与微服务架构区别

     

      SOA架构主要针对企业级、采用ESB服务(ESB企业服务总线),非常重,需要序列化和反序列化,采用XML格式传输。

      微服务架构主要互联网公司,轻量级、小巧,独立运行,基于Http+Rest+JSON格式传输。

      ESB也可以说是传统中间件技术与XML、Web服务等技术相互结合的产物。

     

     三、SpringCloud

     

      SpringCloud 为开发人员提供了快速构建分布式系统的一些工具,包括配置管理、服务发现、断路器、路由、负载均衡、微代理、事件总线、全局锁、决策竞选、分布式会话等等。它运行环境简单,可以在开发人员的电脑上跑。另外说明spring cloud是基于Springboot的,所以需要开发中对Springboot有一定的了解。

    四、服务的注册与发现(Eureka )

      我们需要用的的组件上Spring Cloud Netflix的Eureka ,eureka是一个服务注册和发现模块。

      

    五、什么是Eureka

      官方的介绍在这里Eureka wikiEureka是Netflix开源的一个RESTful服务,主要用于服务的注册发现。Eureka由两个组件组成:Eureka服务器和Eureka客户端。Eureka服务器用作服务注册服务器。Eureka客户端是一个java客户端,用来简化与服务器的交互、作为轮询负载均衡器,并提供服务的故障切换支持。Netflix在其生产环境中使用的是另外的客户端,它提供基于流量、资源利用率以及出错状态的加权负载均衡。
      Eureka的吸引力来源于以下几点:

       开源:大家可以对实现一探究竟,甚至修改源码。

       可靠:经过Netflix多年的生产环境考验,使用应该比较靠谱省心

       功能齐全:不但提供了完整的注册发现服务,还有Ribbon等可以配合使用的服务。

       基于Java:对于Java程序员来说,使用起来,心里比较有底。

       spring cloud可以使用Spring Cloud, 与Eureka进行了很好的集成,使用起来非常方便。

    六、实现服务注册

      6.1 创建EureKaserver 项目

      (1)导入依赖

          

    <!--eureka依赖-->
        <dependency>
          <groupId>org.springframework.cloud</groupId>
          <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
        </dependency>
    
    <dependencyManagement>
        <dependencies>
          <!--springCloud依赖-->
          <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>Greenwich.RELEASE</version>
            <type>pom</type>
            <scope>import</scope>
          </dependency>
        </dependencies>
      </dependencyManagement>

      (2)application.yml配置文件

    ##应用名称
    spring:
      application:
        name: microservicecloud-dept
    ##声明当前eurekaservice的端口号
    server:
      port: 8888
    
    ##配置eureka
    eureka:
      client:
        ##代表是否将自己注册到注册中心去
    
        ##表明自己是注册中心
        fetch-registry: false
        ##配置地址
        service-url:
          defaultZone: http://localhost:8888/eureka

      (3)StartSpringCloudEureka启动类

    package com.zn;
    
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
    
    @SpringBootApplication
    @EnableEurekaServer  //eureka服务注册中心
    public class StartSpringCloudEureka {
        public static void main(String[] args) {
            SpringApplication.run(StartSpringCloudEureka.class,args);
        }
    }

      (4)效果 访问 localhost:8888

        

      

  • 相关阅读:
    Tornado @tornado.gen.coroutine 与 yield
    ThreadPoolExecutor执行任务,异常日志缺失问题
    Mybatis关联查询<association> 和 <collection>
    Spring整合mybatis
    Jedis操作Redis--Key操作
    Jedis操作Redis--SortedSet类型
    Jedis操作Redis--Set类型
    同义词 “stop from”,“keep from”和“prevent from”的区别
    test
    Python win32gui调用窗口到最前面
  • 原文地址:https://www.cnblogs.com/Zzzzn/p/12054645.html
Copyright © 2011-2022 走看看