第一代Spring Cloud核心组件

第一代Spring Cloud核心组件(Spring Cloud Netflix)

        Eureka服务注册中心(服务注册中心:Eureka,Nacos,Zookeeper,Consul)

        Ribbon负载均衡

        Hystrix熔断器

        Feign远程调用组件(Feign = RestTemplate + Ribbon + Hystrix)

        GateWay网关组件

        Config分布式配置中心

服务注册中心的执行流程 

            1.服务提供者启动
            2.服务提供者将相关服务信息主动注册到注册中心(自动)
            3.服务消费者获取服务注册信息(pull 服务消费者主动拉取服务提供者清单,push  订阅服务,当服务提供者有变化时,注册中心也会主动推送更新后的服务清单给消费者)
            4.服务消费者直接调用服务提供者

主流服务中心对比 

            Nacos:是Spring Cloud Alibaba核心组件之一,解决微服务开发必会涉及到的服务注册与发现,服务配置,服务管理等问题
            Eureka:由Netfix开源,并被Privatal集成到SpringCloud体系中,基于REstFul API风格开发的服务注册于发现组件
            Zookeeper:统一服务的名称,同步服务的状态,集群管理,分布式应用配置的管理,通常结合Dubbo一起使用,把最新服务推送给客户端,本质就是存储+监听通知,Zookeeper要想工作,至少要有三个节点数
         Consul:由HashiCorp基于Go语言开发的,采用Raft算法保证服务的一致性且支持健康检查
 

对比
                组件名             语言                 CAP                                     对外暴露接口

                Eureka             Java            AP(自我保护机制,保证可臫)          HTTP
                Consul              Go                         CP                                              HTTP/DNS
                Zookeeper      Java                      CP                                               客户端
                Nacos              Java             支持AP/CP切换                                  HTTP
             CAP原则: Consistency 一致性, Availability可用性, Partition tolerance分区容错性 ,三者不可兼得,要么AP,要么CP

Eureka

        Eureka Client是一个Java客户端,用于简化与Eureka Server的交互

        Eureka Server提供服务发现的能力

        各个微服务启动时,会通过Eureka Client向Eureka Server 进行注册自己的信息(例如网络信息),Eureka Server会存储该服务的信息

 

搭建单例Eureka Server服务注册中心

        1.创建服务中心的项目

        2.导入pom文件

         1)在主类的pom文件中导入微服务所依赖的jar包,在dependencies外面

    <dependencyManagement><dependencies><!-- Spring Cloud Neflix 公司出品的微服务组件的依赖--><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)如果你的java版本在8以上,还需要导 入以下依赖,在dependencies内部

   <!-- 引入Jaxb开始 --><dependency><groupId>com.sun.xml.bind</groupId><artifactId>jaxb-core</artifactId><version>2.2.11</version></dependency><dependency><groupId>javax.xml.bind</groupId><artifactId>jaxb-api</artifactId></dependency><dependency><groupId>com.sun.xml.bind</groupId><artifactId>jaxb-impl</artifactId><version>2.2.11</version></dependency><dependency><groupId>org.glassfish.jaxb</groupId><artifactId>jaxb-runtime</artifactId><version>2.2.10-b140310.1920</version></dependency><dependency><groupId>javax.activation</groupId><artifactId>activation</artifactId><version>1.1.1</version></dependency><!-- 引入Jaxb结束 -->

          3.在刚刚创建的eureka项目中,导入eureka的依赖     

<dependencies><!--        Eureka Server服务端依赖--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-eureka-server</artifactId><version>1.3.1.RELEASE</version></dependency>
</dependencies>

          4.编写核心配置文件application.properties

server.port=9200
spring.application.name= leq-cloud-eurkaeureka.client.service-url.defaultZone= http://localhost:9200/eureka
eureka.client.register-with-eureka= true
eureka.client.fetch-register= true
eureka.instance.prefer-ip-address= true
eureka.instance.instance-id= ${spring.cloud.client.ipaddress}:${spring.application.name}:${server.port}:@project.version@

          5.创建启动类

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;@EnableEurekaServer//标记该项目是一个Eureka Server (Eureka服务注册中心)
@SpringBootApplication
public class EurekaApplication9200 {public static void main(String[] args) {SpringApplication.run(EurekaApplication9200.class,args);}
}

        6.打开浏览器,访问http://localhost:9200/,看到下面的页面就表示搭建成功 

         注意:在控制台报错不代表我们写的有问题,这是idea的机制,我们不需要管,只要上面的页面出来就表示成功了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/19242.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【C语言】-- 死循环了怎么办?

#include <stdio.h> int main() {int i 0;int arr[] {1,2,3,4,5,6,7,8,9,10};for(i0; i<12; i){arr[i] 0;printf("hello\n");}return 0; } 阅读上面这个代码&#xff0c;我们会认为这不就是简单的数组访问越界么。那么这段代码就应该会报错&#xff0c;…

三维重建以及神经渲染中的学习(三)

三维重建以及神经渲染中的学习 公众号AI知识物语 本文内容为参加过去一次暑期课程学习时的笔记&#xff0c;浅浅记录下。 三维图形可控生成&#xff1a; 1&#xff1a;学习一个图形生成模型 2&#xff1a;具有可控三维变量&#xff1a;1物体形状&#xff1b;2物体位置&…

Ubuntu 放弃了战斗向微软投降

导读这几天看到 Ubuntu 放弃 Unity 和 Mir 开发&#xff0c;转向 Gnome 作为默认桌面环境的新闻&#xff0c;作为一个Linux十几年的老兵和Linux桌面的开发者&#xff0c;内心颇感良多。Ubuntu 做为全世界Linux界的桌面先驱者和创新者&#xff0c;突然宣布放弃自己多年开发的Uni…

七牛云的使用(图片超详讲解)

一、为什么要使用七牛云的OSS(对象存储服务)&#xff1f; 二、七牛云使用&#xff1a; 登录七牛云官网&#xff0c;注册并认证 (初次认证有30天免费使用权限)新建存储空间 点击创建的空间名字&#xff0c;进入 空间概括如下&#xff1a; 阅读帮助文档&#xff0c;在自己的…

Java微服务金融项目智牛股-基础知识三(Restful、HATEOAS、GRPC、SEATA )

Restful定义 Restful是一种软件架构与设计风格&#xff0c; 并非一套标准&#xff0c; 只提供了一些原则与约定条件。REST提供了一组架构约束&#xff0c;当作为一个整体来应⽤用时&#xff0c;强调组件交互的可伸缩性。接⼝口的通⽤用性、组件的独⽴立部署、以及⽤用来减少交…

spring cloud 之 Hystrix

Hystrix概述 Hystrix是一个供分布式系统使用&#xff0c;提供延迟和容错功能&#xff0c;保证复杂的分布系统在面临不可避免的失败是时&#xff0c;仍具有弹性。 当服务器A调用服务器B时&#xff0c;如果服务器B宕机&#xff0c;则服务器A不去调用。当服务器B在时间范围内未响…

基于深度学习的高精度安全帽背心检测识别系统(PyTorch+Pyside6+YOLOv5模型)

摘要&#xff1a;基于深度学习的高精度安全帽背心检测识别系统可用于日常生活中或野外来检测与定位安全帽背心目标&#xff0c;利用深度学习算法可实现图片、视频、摄像头等方式的安全帽背心目标检测识别&#xff0c;另外支持结果可视化与图片或视频检测结果的导出。本系统采用…

你知道为什么不用XFP光模块了吗?

在光纤通信应用领域中&#xff0c;10G光模块凭借着较低的成本和功耗被广泛应用于学校、企业等应用场景中。XFP和SFP是10G光模块常见的两种封装类型&#xff0c;那为什么现在市场上XFP光模块应用比较少了呢&#xff1f;下面我们来简单分析一下原因。 一、XFP与SFP光模块的概述 …

按日,周,年统计,无的数据补充0

需求&#xff1a;按日-周-年统计。统计涉及到3张表数据。 写sql。先把3张表数据摘取出来&#xff0c;只需对3张表的时间做分组统计即可。 按日统计 select DAY(dateff) as time,IFNULL(count(id),0)as num from(select create_time as dateff,id as id from cz_taxi_orders…

【雕爷学编程】Arduino动手做(113)---5110液晶屏模块2

37款传感器与执行器的提法&#xff0c;在网络上广泛流传&#xff0c;其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块&#xff0c;依照实践出真知&#xff08;一定要动手做&#xff09;的理念&#xff0c;以学习和交流为目的&am…

三分钟了解 SpringBoot 的启动流程

一、前言 背景&#xff1a;最近有位开发同学说面试被问到Spring Boot 的启动流程&#xff0c;以及被问到Spring Boot 的嵌入式Web容器是什么时候加载的。如何加载的。是怎么无缝切换的。 这些问题&#xff0c;其实回答起来也是比较复杂的。我们今天就从 SpringApplication.ru…

【Java】面向对象基础 之 接口

1、接口 在抽象类中&#xff0c;抽象方法本质上是定义接口规范&#xff1a;即规定高层类的接口&#xff0c;从而保证所有子类都有相同的接口实现&#xff0c;这样&#xff0c;多态就能发挥出威力。 如果一个抽象类没有字段&#xff0c;所有方法全部都是抽象方法&#xff1a; …