Spring Clould 注册中心 - Eureka,Nacos

news2024/12/25 23:47:34

 视频地址:微服务(SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式)

 Eureka

微服务技术栈导学(P1、P2) 

 微服务涉及的的知识

认识微服务-服务架构演变(P3、P4)

 总结:

认识微服务-微服务技术对比(P5)

 邮储的物联网项目实用的是apollo作为配置中心,nocos作为注册中心,feign进行服务间调用

 

认识微服务-springClould(P6)

SpringClould 与SpringBoot的版本兼容

服务拆分-案例demo(P7)

 clould-demo:demo 提取码:cocf

服务拆分-服务远程调用(P8)

实现RestTemple也可以通过http进行服务间调用(非注册中心实现)

http远程调用是与语言无关的调用,只要知道对方的ip、端口、接口路径、请求参数即可

 Eureka注册中心-提供者与消费者(P9)

服务关系是相对的 

 总结:

 Eureka-eureka原理分析(P10) 

demo中的代码的http调用是以硬编码(写死)形式存在代码中,这样在多个提供者时候,不能每个提供地址都写在代码中

服务提供者会将服务薪资注册到注册中心中,当消费者需要调用服务者时候会拉取提供者的服务信息,当获取到之后就会在负载均衡的参与下远程调用服务者服务。服务者服务是以30秒的心跳进行注册的,所以不存在某服务突然宕机,调用不通情况 

 

 总结: 

 Eureka-搭建eureka服务(P11)

搭建步骤

 

1.引入: eureka不用指定版本信息

是因为在父工程中已经定义好了,点击去之后可以看到定义的版本信息

 

 2.编写启动类:添加自动装配的开关

3.添加配置文件

eureka自己也要注册到注册中心中,后面到集群式服务时候,要把地址的信息以集群形式做配置 

可以通过配置的地址,查看eureka的注册的服务

 Eureka-服务注册(P12)

1.在要注册的服务下的pom文件引入eureka的客户端依赖

 2.在配置文件中增加配置

要记的添加该服务的服务名称

 其他服务做注册也是相同操作。也要记得增加该服务的服务名称 

可以模拟多实例部署 

 总结: 

 Eureka-服务发现(P13)

1.以服务名称代替硬编码的IP地址(见P8)

2.增加负载均衡注解

 总结:

Nacos

  Nacos-认识和安装(P17)

Nacos是阿里巴巴的产品

nacos不仅可以进行服务的注册和发现还可以分布式配置

nacos不想eureka 通过地址直接访问。本地启动项目,或者本地测试时候要先安装nacos,启动后才可以注册服务

nacos安装:nacos安装指南 提取码:qxzt

1.下载nacos

2.解压。nacos的端口号默认的是8848,如果想要修改,可以在nacos 》conf 》application.properties中修改(server.port)

3.启动。(单机模式,还有集群模式)

//windoes命令启动
startup.cmd -m standalone

启动成功后会有地址提示,点击通过nacos: nacos进行登录 

 Nacos-快速入门(P18)

Eureka或Nacos作为注册中心时,注册服务是不需要变化的,变化的是基于两者配置的修改

   总结:

 Nacos-服务多级存储模型(P19)

nacos在服务和实例之间又引入了集群的概念,假如某个集群出现了问题,可以再访问别的集群 

但是同一集群下要优先访问同集群的服务实例(上海的orderService访问上海的userService) 

局域网内的访问距离端访问快,不同地区的集群,访问时间长。nacos引入集群概念也是避免不同的集群相互访问的情况。

 

 

    总结:

 Nacos-NacosRule负载均衡(P20)

根据上一节配置好。 

 需要在orderService也要配置好集群,但是配置好后,并不能直接可以用,还要配置负载均衡规则NacosRule

配置好后服务优先访问配置的集群 ,然后随机访问本集群下的服务实例。集群没有服务时候就会调用别的集群

   总结:

 Nacos-服务实例的权重设置(P21)

有时需要配置不同的权重,对不同的服务实例进行访问 。可以通过配置实现

 

 应用场景:如果要对某一个服务进行版本升级,可以对此服务权重配置成0,当升级好后,再将权重调的较小,可以验证后再将权重调高,优雅的实现升级。

  总结:

 Nacos-环境隔离(P22)

  namespace 》Group 》Service/Data 》集群 》实例 

 配置

 

 

 

namespace存在的意义可以是根据不同的环境进行隔离(开发环境,测试环境等)。不同namespace之间的服务是不可见的。 

 Nacos-Nacos和Eureka的对比(P23)

 nacos会把拉取的服务以缓存的形式放到服务列表中,nacos也会通过主动推送的形式提醒消费者更改服务列表的缓存。nacos还可以配置成非临时实例,这种配置,会让nacos主动询问服务提供者的状态,并且在某个服务提供者实例挂掉后也不会把它从服务列表中踢出,而是通过主动推送消息的方式告诉服务消费者更新缓存列表,不去调用挂掉的服务实例。

临时实例和非临时实例的显示

配置

  总结:  推荐使用临时实例,非临时实例的主动检测会加大服务器的压力

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

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

相关文章

原生实现koa框架连接mongoose数据库

1.首先新建一个初始化文件 npm init -y2.下载koa框架所依赖的插件 npm i koa koa-bodyparser koa-router mongoose3.新建一个server.js文件作为我们的服务器 const Koa require(koa) const Router require(koa-router) //可以接受post请求 const bodyParser require(koa-b…

【Spring Cloud 八】Spring Cloud Gateway网关

gateway网关 系列博客背景一、什么是Spring Cloud Gateway二、为什么要使用Spring Cloud Gateway三、 Spring Cloud Gateway 三大核心概念4.1 Route(路由)4.2 Predicate(断言)4.3 Filter(过滤) 五、Spring …

rabbitMQ服务自动停止(已解决

1、 在rabbitmq的sbin目录下操作 rabbitmq-plugins enable rabbitmq_management 2、 自己去rabbitmq_server-3.7.5文件夹下创建一个data,再执行这个命令(用自己的目录哈 set RABBITMQ_BASED:\RabbitTools\RabbitMQ\rabbitmq_server-3.7.5\data 然后去配…

PHP手术麻醉系统源码,自动生成麻醉和护理医疗文书

一套手术麻醉系统源码,可二次开发 手术室麻醉临床信息系统(AIMS)是应用于医院手术室、麻醉科室的计算机软件系统。该系统针对整个围术期,对病人进行全程跟踪与信息管理,自动集成病人HIS、LIS、RIS、PACS信息&#xff0…

实现chatGPT 聊天样式

效果图 代码&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Chat Example</title&g…

axios使用axiosSource.cancel取消请求后怎么恢复请求,axios取消请求和恢复请求实现

在前端做大文件分片上传&#xff0c;或者其它中断请求时&#xff0c;需要暂停或重新请求&#xff0c;比如这里大文件上传时&#xff0c;可能会需要暂停、继续上传&#xff0c;如下GIF演示&#xff1a; 这里不详细说文件上传的处理和切片细节&#xff0c;后续有时间在出一篇&a…

Viobot ROS主从机配置

本篇介绍如何配置Viobot的ROS主从机&#xff0c;设备已经默认配好了主机的大部分设置&#xff0c;由于涉及到开机自启动&#xff0c;所以主机必须是Viobot。 以虚拟机ubuntu20.04为例。 1.从机配置 虚拟机终端输入命令,输入密码&#xff0c;按下图修改文件&#xff0c;保存…

途乐证券-上证指数有哪些股票组成?

上证指数是我国股市最重要的指数之一&#xff0c;它由上海证券交易所根据必定的计算方法加权均匀得出来的数据&#xff0c;是我国股市中重要的股票指数之一。那么&#xff0c;上证指数有哪些股票组成呢&#xff1f;让我们从多个视点剖析。 首先&#xff0c;从职业散布视点看&am…

数据流中的中位数

解题思路一&#xff1a; import java.util.*;public class Solution {//用栈来存储所有数据Stack<Integer> s new Stack<Integer>();//入栈public void Insert(Integer num) {s.push(num);}//出栈public Double GetMedian() {Double result 0.0;if(s.size() <…

01_langchain

Langchain简介 LLM的诞生推动了自然语言处理领域的变革&#xff0c;让以前无法实现的一些应用成为了可能。然而仅仅利用LLM还无法完成真正强大的应用程序&#xff0c;还需要一些相关的资源和技术知识。 Langchain用于开发这些应用程序&#xff0c;可用于&#xff1a; 基于文…

认识docker+LNMP架构

目录 一、docker 1.安装&#xff0c;启动 2.docker相关命令 3.如何使用&#xff1f; 二、LNMP 1.认识LNMP 2.sql注入漏洞挖掘 3.如何绕过检测进行注入 一、docker 1.安装&#xff0c;启动 2.docker相关命令 docker search nginx 搜索镜像 docker pull docker.io/ngin…

Constanze‘s Machine

一、题目 二、分析 列表找规律&#xff0c;不同长度的u能够带来多少种不同的情况 发现规律&#xff0c;case满足斐波那契数列。 所以可以先预计算斐波那契数列fib。 #include<iostream> #include<cstring> #include<algorithm> #define int long long usi…

设置bootstrap的modal垂直居中

效果&#xff1a; 代码&#xff1a; updateEmpModal 指的是我的模态框id$("#updateEmpModal").modal("show"); // show 方法调用之后立即触发该事件 $(#updateEmpModal).on(shown.bs.modal, function(){let $this $(this);let $modal_dialog $this.fi…

elementui 修改日期选择器el-date-picker样式

1. 案例&#xff1a; 2. css /* 最外层颜色 */ .el-popper.is-pure {background: url("/assets/imgList/memuBG.png") no-repeat;border: none;background-size:100% 100%}/* 日期 1.背景透明 */ .el-date-picker{background: transparent; }/* 日期 2.标题、左右图…

C++碎知识点

二叉树 由 n个节点构成的形态不同的⼆叉树 同余符号 定义设m是大于1的正整数&#xff0c;a,b是整数&#xff0c;如果m|(a-b)&#xff0c;则称a与b关于模m同余,记作abmod(m)&#xff0c;读作a同余于b模m。 符号& 按位与 后赋值 C语言中计算优先级

业务数据“一站式”数据管理平台,从设备实时数据和业务应用数据两个方面要彻底解决“信息孤岛”的问题

1. 产品背景 工业数据大致分为两种数据&#xff1a;设备实时数据和业务应用数据。 设备实时数据的管理是iNeuOS工业互联网操作系统的基础平台重要组成部分&#xff0c;要求数据的实时性、稳定性&#xff0c;通过设备驱动&#xff08;数据交互驱动&#xff09;、服务驱动&…

[oneAPI] 图像分类CIFAR-10

[oneAPI] 图像分类CIFAR-10 图像分类参数与包加载数据模型训练过程结果 oneAPI 比赛&#xff1a;https://marketing.csdn.net/p/f3e44fbfe46c465f4d9d6c23e38e0517 Intel DevCloud for oneAPI&#xff1a;https://devcloud.intel.com/oneapi/get_started/aiAnalyticsToolkitSam…

JVM——JVM 垃圾回收

文章目录 写在前面本节常见面试题本文导火索 1 揭开 JVM 内存分配与回收的神秘面纱1.1 对象优先在 eden 区分配1.2 大对象直接进入老年代1.3 长期存活的对象将进入老年代1.4 动态对象年龄判定1.5 主要进行 gc 的区域 2 对象已经死亡&#xff1f;2.1 引用计数法2.2 可达性分析算…

【C++】set/multiset容器

1.set基本概念 #include <iostream> using namespace std;//set容器构造和赋值 #include<set>//遍历 void printSet(const set<int>& st) {for (set<int>::const_iterator it st.begin(); it ! st.end(); it){cout << *it << " …

网络编程学习

网络编程 软件结构 C/S结构&#xff1a;QQ、迅雷、百度网盘 程序员&#xff1a;开发客户端和服务端程序用户&#xff1a;需要下载升级更新客户端对网络带宽要求相对较低数据安全性相对较高 B/S结构&#xff1a;IE、谷歌、火狐 程序员&#xff1a;只需要开发服务端程序用户&am…