• springcloud和springboot是什么关系?


    【学习笔记】


    4)springcloud和springboot是什么关系?

    马克-to-win@马克java社区:springboot可以快速开发单个微服务。springcloud是一个基于springboot实现的一系列框架的集合,用来提供全局的服务治理方案。springcloud要基于springboot来实现,离不开springboot。


    5)Eureca Server的工作原理:

    马克-to-win@马克java社区:Eureka包含Server和Client两部分,从而实现微服务的注册与发现。Eureka Server目标是提供服务发现的能力。各个微服务启动时,会向Eureka Server注册自己的信息(例如端口、微服务名等),Eureka Server会存储这些信息。提供服务或消费微服务都是Eureka Client,通常都只是个springboot的jar项目。Eureka Server本身也是。微服务启动后,会周期性(默认30s)向Eureka Server发送心跳证明自己还活着。如果Eureka Server在一定时间内没有接收到某个微服务实例的心跳,Eureka Server将会注销这个实例(默认90s)。多个Eureka Server实例,互相复制,实现服务注册表数据同步,达到高可用,简单说,即一台机器坏了,另一台接替它,继续工作。用户体会不到你这机器坏了。Eureka Client会缓存服务注册表中的信息。这样就没必要总查询Eureka Server,即使Eureka Server都死掉,Eureka Client都能相互找到且完成任务。

    6)为什么Eureca Client要分成服务提供者和服务消费者呢?

    通常来讲,服务提供方是重量的耗时的,所以可能在n台机器上。而服务消费方是轻量的,通过配置ribbon和@LoadBalanced达到负载均衡的效果。消费方通过template.getForEntity("http://provider/acquire"。。。来找到服务提供方。消费方和提供方和Eureka Server三者协同,才能完美工作。如果Consumer没用Eureka Server这种技术,如何能用@LoadBalanced和ribbon这种负载均衡的功能呢?



    1.Eureca Server的Helloworld例子:

    做个普通的maven project,quickstart archetype。改成jdk.8。下面Camden.SR1是版本名,springcloud的版本名称很奇特,它是按照伦敦地铁站的名称命名的。

    马克-to-win@马克java社区:maven当中避免重复发明轮子的方法,一种是继承,一种是引用(参考我参考目录下的文章)。maven中配置引用关系的方法是,<type>pom</type>和<scope>import</scope>,很简单,这样就引入一个pom文件,这样<dependencies>里面的<groupId>org.springframework.cloud</groupId>和<artifactId>spring-cloud-starter-eureka-server</artifactId>,由于没有版本信息,就可以参考引入的pom文件的<dependencyManagement>里面的版本信息。就像maven继承方法似的,在父pom的<dependencyManagement>里,放入版本信息,在若干子pom里都省去版本信息了。马克-to-win@马克java社区:子pom只需到父pom的<dependencyManagement>里,找到相应的artifactId和groupId的版本信息即可。引用和继承原理是类似的。我机器里面的引入文件就在: E:m2 epositoryorgspringframeworkcloudspring-cloud-netflix-dependencies1.3.1.RELEASE里面有个spring-cloud-netflix-dependencies-1.3.1.RELEASE.pom,里面<dependencyManagement>里面有句话:        
                <dependency>
                    <groupId>org.springframework.cloud</groupId>
                    <artifactId>spring-cloud-starter-eureka-server</artifactId>
                    <version>${project.version}</version>
                </dependency>




    pom.xml:

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
        <groupId>com</groupId>
        <artifactId>EurecaServer3</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <packaging>jar</packaging>
        <name>EurecaServer3</name>
        <url>http://maven.apache.org</url>
        
        <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>1.4.1.RELEASE</version>
        </parent>

        <properties>
            <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        </properties>

       
          

    版权保护本文转载自原文:https://blog.csdn.net/mark_to_win/article/details/88735976

  • 相关阅读:
    通过pip工具安装selenium(初次安装、升级、降级)
    一次悲催的nginx转发白屏经历
    oracle-----视图/物化视图
    python初级实战-----主机在线情况监控web
    python模块------os
    python模块------pymysql
    python初级实战(1)-----关于邮件发送问题
    python基础(9)-----文件操作
    sql总结-----数据表操作
    neutron-----常用命令
  • 原文地址:https://www.cnblogs.com/haima1949/p/10774216.html
Copyright © 2020-2023  润新知