第一代Spring Cloud核心组件

news2024/10/5 16:16:51

第一代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-eurka

eureka.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.coloradmin.cn/o/743189.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

刘铁猛C#教程笔记——详解类型,变量,和对象第1节

强/弱类型语言 强类型语言&#xff1a;所谓强类型语言就是变量的值十分依赖变量的类型&#xff0c;也就是说假如一个变量其类型是整型&#xff0c;那么你在为该整型变量进行赋值的时候就不可以为其赋值一个字符串类型的常量&#xff0c;C#语言就是典型的强类型语言弱类型语言&…

C# 颠倒二进制位

190 颠倒二进制位 颠倒给定的 32 位无符号整数的二进制位。 提示&#xff1a; 请注意&#xff0c;在某些语言&#xff08;如 Java&#xff09;中&#xff0c;没有无符号整数类型。在这种情况下&#xff0c;输入和输出都将被指定为有符号整数类型&#xff0c;并且不应影响您的…

微软MFC技术中的消息循环

我是荔园微风&#xff0c;作为一名在IT界整整25年的老兵&#xff0c;今天来聊聊微软MFC技术中的消息循环。 在很多windows程序中&#xff0c;都有如下代码&#xff1a; //Win32应用程序入口函数WinMain() int WINAPI WinMain(HINSTANCE hInstance, //指向当前实例的句柄…

全链路Python环境迁移

全链路Python环境迁移 在当前的Python环境中&#xff0c;安装一些库以后&#xff0c;如果换了一套Python环境&#xff0c;难道再来一次不停的pip install&#xff1f;当然不是。 第一步&#xff0c;使用pip freeze&#xff08;冻结&#xff09;备份当前Python库的环境 pip f…

《微服务架构设计模式》第六章 使用事件溯源开发业务逻辑

内容总结自《微服务架构设计模式》 使用事件溯源开发业务逻辑 一、传统持久化技术的问题二、什么是事件溯源三、好处和弊端四、实现事件存储库五、与Saga结合六、总结 一、传统持久化技术的问题 1、对象与关系的"阻抗失调" 所谓的对象与关系的“阻抗失调”是一个古…

ThreadLocal与InheritableThreadLocal及线程池的影响

在web开发中使用了ThreadLocal本地线程存储拦截器解析的用户信息&#xff0c;方便在下文代码中调用&#xff0c;但是在springboot中使用Async开启异步操作时&#xff0c;就会造成&#xff0c;子线程无法拿到父本地线程数据。拿到一些脏数据。 1.InheritableThreadLocal 在这个…

常用技巧总结

本文总结了本人在日常工作学习中遇到的问题及其解决方法&#xff0c;没有固定的涉及领域 目的就是为了在下一次遇到类似问题的时候方便查找&#xff0c;从而快速解决问题 本文不定时更新~ 目录 Windows使用 如何实现桌面图标随意排列 文件资源管理器相关 显示隐藏文件 修改…

深度学习06-深度卷积生成对抗网络(DCGAN)

文章目录 概述原理简介专业术语零填充转置卷积 生成动漫图像算力选择数据集目录规划源代码数据源加载定义配置类定义模型 训练可视化绘制损失绘制生成器图像变化 其他项目CycleGANstargan 概述 GAN&#xff08;Generative Adversarial Network&#xff09;是一种生成模型&…

flutter开发实战-日志logger写入文件及print

flutter开发实战-日志logger写入文件及print 在开发中&#xff0c;需要日志logger写入文件&#xff0c;方便日后查看出现的问题。这里记录之前的实现方案。 使用的日志插件是logger 一、引入日志插件 在工程中pubspec.yaml引入logger logger: ^1.4.0二、代码实现 使用比较…

听GPT 讲K8s源代码--pkg(一)

在 Kubernetes 代码仓库中&#xff0c;pkg/api和pkg/apis目录都包含用于定义 Kubernetes API 对象的代码&#xff0c;但它们的作用略有不同。 pkg/api目录包含 Kubernetes 的旧版本 API 对象定义&#xff0c;这些定义在 Kubernetes 1.7 版本之前使用。这些对象定义已经过时&…

第四课:Figma 图标设计

图形绘制小技巧 绘制正圆 O shift 正方体 R shift&#xff0c;右侧属性面板可调整描边显示方向&#xff0c;描边类型&#xff1b; 直线 L shift 带角度的箭头 shift L &#xff0c;按住 shift 键调整以 45 度角调整箭头方向&#xff0c;右侧属性面板可调节箭头方向和线条…

文献里的分子对接方法2

珍珠贝肉水解物中的新型抗氧化肽以及它们的抗氧化活性机制。 关于摘要&#xff1a; 自由基和衰老以及很多疾病都有关联。 抗氧化肽具有良好的抗氧化活性和吸收性&#xff0c;是抗氧化剂研究的热点之一。 这篇文献的研究中&#xff0c;纯化珍珠贝肉水解液、经过蛋白质组学鉴定…

大模型与端到端会成为城市自动驾驶新范式吗?

摘要&#xff1a; 最近可以明显看到或者感受到第一梯队的城市自动驾驶量产已经进入快车道&#xff0c;他们背后所依靠的正是当下最热的大模型和端到端的技术。 近期&#xff0c;城市自动驾驶量产在产品和技术上都出现了新的变化。 在产品层面&#xff0c;出现了记性行车或者称…

【python】逻辑中断(and or)

今天学习javascript的时候竟然有一个额外收获&#xff1a;逻辑中断。而且我实验了一下&#xff0c;逻辑中断同样适用于python。 0 and 2返回&#xff1a; 0 1 and 2返回&#xff1a; 2 0 and 2返回的是0&#xff0c;而1 and 2返回的是2。就是因为在0那里出现了逻辑中断。 解…

Git的使用以及在IDEA2022中使用Git

目录 前言 一、Git下载与安装 二、Git常用命令 1.全局设置 2.获取Git仓库-在本地初始化Git仓库 3.获取Git 仓库-从远程仓库克隆 4.Git工作区、暂存区、版本库 概念以及工作区中文件状态 &#xff08;1&#xff09;工作区、暂存区、版本库 &#xff08;2&#xff09; G…

centos7.9 rc.local启动失败

最近在虚拟机上整个centos7.9&#xff0c;想要把程序设置成开机自启动&#xff0c;发现rc.local状态是failed&#xff0c;重启服务器也没用。 自己之前写过两篇相关的博客 centos7重启后/etc/rc.local中的脚本没有执行_lanren312的博客-CSDN博客 centos7开机运行java的sh脚本…

Sui 8192:如何使用Sui对象撼动游戏领域

Ethos通过其Sui 8192游戏不仅展示了对象在Sui上的力量&#xff0c;还展示了基于对象的游戏如何有力地撼动游戏行业。每个玩家在移动游戏中的方块时都会铸造一个新的对象&#xff0c;类似于铸造NFT&#xff0c;这为每个独立玩过的游戏提供了永久上链的机会。 Sui 8192游戏的规则…

10.4.4 终端机的环境设置: stty, set

在 tty1 ~ tty6 这六个命令行的终端机&#xff08;terminal&#xff09; 环境中登陆&#xff0c;登陆的时候我们可以取得一些字符设置的功能。举例来说&#xff0c;我们可以利用倒退键 &#xff08;backspace&#xff0c;就是那个←符号的按键&#xff09; 来删除命令列上的字符…

强化学习模型

目录 引言 1 强化学习的理论基础 2 强化学习的实践 3实战案例:自动驾驶

【InnoDB 存储引擎】InnoDB 数据页格式(详细版,数据页格式对于理解索引详细的原理很重要)

文章目录 1 InnoDB 数据页结构1.1 File Header2.2 Page Header2.3 Infimum 和 Supremum Record2.4 User Record 和 Free Space2.5 Page Directory&#xff08;InnoDB 数据页结构最重要的部分&#xff09;2.6 File Trailer 2 参考资料 1 InnoDB 数据页结构 我们已经知道页是 In…