黑马微服务实用篇知识梳理

1、微服务治理

        1.1服务注册与发现Eureka和Nacos

                a、nacos和eureka,二者都支持服务注册与发现,但nacos还包括了动态配置管理、服务健康监测、动态路由等功能,是更全面的服务管理平台

                b、eureka需要独立部署为服务并运行,需要自行搭建服务集群来实现高可用。nacos提供了单机模式和集群模式的部署方式。

                综上所述,eureka适用于简单的场景,nacos更适合复杂的微服务架构中。

        1.2远程调用Feign

                Feign是一种声明式、模板化的HTTP客户端,它可以使HTTP客户端调用变得更加简单和优雅。可以与Eureka、Ribbon等组件集成,用于实现微服务架构中的服务之间的通信

                总的来说,Feign可以帮助开发者快速、简单地实现服务之间的通信,减少了繁琐的HTTP请求代码编写

                ps:Ribbon在微服务架构中扮演着非常重要的角色,可以帮助应用程序实现对服务实例的负载均衡和故障转移,提高了系统的稳定性和可用性。

        1.3统一网关Gateway

        网关有以下五个作用:

       a,身份认证和权限校验   b,服务路由、负载均衡   c,请求限流

        技术实现:gateway,zuul

        Zuul是基于Servlet的实现,属于阻塞式编程。而SpringCloudGateway则是基于Spring5中提供的WebFlux,属于响应式编程的实现,具备更好的性能。

        ps:阻塞式编程是传统的编程模式,程序进行IO操作时会阻塞当前线程的执行,期间新城无法执行其他任务

                响应式编程是更现代和高效的编程范式,基于异步和事件驱动,允许程序中的不同部分相互通信和协作,无需等待其他操作完成

2、Docker

        2.1docker原理

    Docker的工作原理可以简单描述为:
        1. Docker利用容器技术,把应用程序及其依赖项打包成独立的容器,在隔离的环境中运行。
        2. Docker镜像是容器的模板,包含应用程序所需的所有文件和依赖项。
        3. Docker Daemon是后台服务,管理容器、镜像等,Docker客户端与Daemon通信进行操作。
        4. Docker Registry是存储镜像的仓库,Docker Hub是公共的镜像仓库。
        5. Docker网络实现容器之间的通信和与外部网络的连接。

        2.2docker使用

        安装yum工具-设置镜像源-安装docker

        1、先pull从镜像站拉取镜像,或者自己导入

        2、通过镜像创建容器并设置挂载数据卷的参数、端口等

        详情见:黑马Docker从安装到容器命令-CSDN博客

        2.3dockerfile

        1.Dockerfile的本质是一个文件,通过指令描述镜像的构建过程
        2.Dockerfile的第一行必须是FROM,从一个基础镜像来构建
        3.基础镜像可以是基本操作系统,如Ubuntu。也可以是其他人制作好的镜像,例如:java:8-alpine

        

        2.4docker-compose

        其作用在于帮助我们快速部署分布式应用,无需一个个微服务去构建镜像和部署。

        通过定义一个docker-compose.yml文件,来一键启动、停止、重建应用的所有服务

                        

3、异步通信

        3.1同步和异步

                同步和异步是描述程序执行流程中的两种不同方式:

        1. 同步:同步操作指的是程序按照顺序执行,一步一步地完成任务。在同步操作中,当某一个任务开始执行时,程序会等待该任务完成后才能继续执行下一个任务。同步操作的优点是简单直观,易于理解和调试,但可能会导致程序在处理一些耗时操作时出现阻塞,影响整体性能。

        2. 异步:异步操作指的是程序在执行过程中,可以同时执行多个任务,不需要等待某个任务完成就可以继续执行其他任务。在异步操作中,任务的执行顺序不固定,可以根据任务的完成情况来确定后续操作。异步操作的优点是可以提高程序的性能和响应速度,特别适用于处理一些耗时的I/O操作,如网络请求、数据库查询等。

        总的来说,同步是按照固定顺序逐步执行任务,而异步是并发执行多个任务,任务的完成顺序可以不固定。在实际编程中,可以根据任务的性质和需求选择合适的同步或异步操作方式。

        3.2MQ技术选型

        常见的消息队列技术包括 RabbitMQ、Apache Kafka、ActiveMQ、Redis、RocketMQ 等,它们各有特点和适用场景。

        在做技术选型时,需要明确具体的性能区别以及优劣,以此确定。

        3.3SpringAMQP

        SpringAMQP是Spring框架对消息队列的支持库,帮助开发人员更轻松地在Spring应用程序中实现消息传递和处理。它提供了一些工具和功能,使开发人员可以更方便地构建可靠的消息驱动应用程序。

        详情见:黑马SpringAMQP大纲与实操-CSDN博客

        3.4消费者限流

        消费者限流是指在消息队列中对消费者的消费速率进行限制,以防止消费者过载和系统负荷过重的现象发生。通过消费者限流可以控制消费者每单位时间内可以处理的消息数量,保证系统在高负载情况下的稳定性和可靠性。常见的消费者限流策略包括基于消息数量、基于时间窗口、基于消费者权重等。

        可以通过不同的队列模型和交换机来实现限流以及广播组播等操作

       详情见:黑马SpringAMQP大纲与实操-CSDN博客

4、分布式搜索

        4.1ES的基本用法          

        ES组成:

                文档:一条数据就是一个文档,es中是Json格式
                字段:Json文档中的字段
                索引:同类型文档的集合
                映射:索引中文档的约束,比如字段名称、类型

        elasticsearch与数据库的关系:
                数据库负责事务类型操作
                elasticsearch负责海量数据的搜索、分析、计算

       在 Elasticsearch 中,数据存储在索引中。可以通过 Elasticsearch 提供的 RESTful API 将数据索引到 Elasticsearch 中。使用 PUT 请求将数据存储到指定索引、类型和 ID 中。亦或者使用GET、UPDATE等。

        可以结合kibana工具,进行ES数据的可视化展示

        4.2中文、拼音搜索

        在 Elasticsearch 中,分词器(Analyzer)是用来将文本数据拆分成词语(Token)的组件,它在索引和搜索阶段都发挥着重要作用。

        其中中文和拼音都可以通过设置特定的分词器来取得,例如:ik分词器和pinyin分词器

        详情见:黑马es0-1实现自动补全功能-CSDN博客

        4.3聚合和统计

                聚合是对文档数据的统计、分析、计算,例如:

        在es中即为对搜索结果数据进行处理,详情见:黑马聚合的分类及实现-CSDN博客

        4.4高可用集群

        

        具体搭建步骤见:黑马es集群-CSDN博客​​​​​​​

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

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

相关文章

师彼长技以助己(3)逻辑思维

师彼长技以助己(3)逻辑思维 前言 上一篇文章进行了工程思维和产品思维的测试,并介绍了几个比较重要的产品思维模型。接下来本篇介绍工程思维。(注意产品思维并不代表产品经理思维,工程思维也并不代表工程师思维&…

【用户画像】用户偏好购物模型BP

一、前言 用户购物偏好模型BP(Buyer Preferences Model)旨在通过对用户购物行为的深入分析和建模,以量化用户对不同商品或服务的偏好程度。该模型对于电商平台、零售商以及其他涉及消费者决策的商业实体来说,具有重要的应用价值。…

linux,lseek,append用法

打开写的.c文件 内容为 代码 <sys/stat.h> #include <fcntl.h> #include<stdio.h> #include<unistd.h> #include<string.h>//off_t lseek(int fd, off_t offset, int whence); //int open(const char *pathname, int flags); //int open(const …

二类电商想做爆品还是得会选品

对于二类电商&#xff0c;尤其是电商新手而言&#xff0c;往往很多人都不知道自己该如何选品&#xff0c;在哪里选品&#xff0c;以及如何谈品等等的难题。想要挑选具有潜力的商品&#xff0c;首先我们需要梳理好商品选择的逻辑&#xff1a; 二类电商的特点&#xff1f;你要投…

装机必备——360驱动大师安装教程

装机必备——360驱动大师安装教程 软件下载 软件名称&#xff1a;360驱动大师2.0beta 软件语言&#xff1a;简体中文 软件大小&#xff1a;13.87M系统要求&#xff1a;Windows7或更高&#xff0c; 32/64位操作系统 硬件要求&#xff1a;CPU2GHz &#xff0c;RAM2G或更高 下载…

36【Aseprite 作图】蒸笼盖——拆解

1 蒸笼盖框架 里圈和外圈的形状都是一样的 扶手处&#xff0c;2 1 2 2 2&#xff08;最好都是2&#xff0c;拐角处用1&#xff09; 2 上色 中间的波浪&#xff0c;是2 2 2 上&#xff08;再 2 2 2 下&#xff09; 下方阴影&#xff0c;左边的阴影&#xff0c;右边的阴影颜色…

冯喜运:6.3黄金原油晚间最新行情及独家操作策略指导

【黄金消息面分析】&#xff1a;在全球经济的波动和不确定性中&#xff0c;黄金作为传统的避险资产&#xff0c;其价格走势和市场分析一直是投资者关注的焦点。本周一&#xff08;北京时间6月3日&#xff09;&#xff0c;现货黄金价格基本持平&#xff0c;交易商正在等待本周公…

一个AI板卡电脑--香橙派 AIpro

本文算是一个开箱测评&#xff0c;主要评估它和一个电脑的距离。 香橙派官网&#xff1a;香橙派(Orange Pi)-Orange Pi官网-香橙派开发板,开源硬件,开源软件,开源芯片,电脑键盘香橙派&#xff08;Orange Pi&#xff09;是深圳市迅龙软件有限公司旗下开源产品品牌;香橙派&#x…

抖音小店怎么找厂家代发?从沟通到发货,全流程不容错过!

哈喽~ 我是电商月月 新手做抖音小店&#xff0c;无货源模式的商家不知道怎么找货源&#xff1f; 今天月月就给大家讲解一下抖音小店从找厂家&#xff0c;到和厂家沟通&#xff0c;最后协商发货的方法步骤都有哪些&#xff1f; 满满干货&#xff0c;不容错过&#xff0c;建议…

游戏找不到d3dcompiler43.dll怎么办,分享5种有效的解决方法

在计算机使用过程中&#xff0c;我们经常会遇到一些错误提示&#xff0c;其中之一就是找不到某个文件。其中&#xff0c;找不到d3dcompiler43.dll是一个常见的问题。这个问题通常出现在运行某些游戏或应用程序时&#xff0c;由于缺少了d3dcompiler43.dll文件&#xff0c;导致程…

openeuler欧拉系统连不上网,ping百度报错,ping: www.baidu.com: Name or service not known

一、现象 使用华为 openeuler 系统连不上网&#xff0c;ping 百度报如下错误 ↓ ping: www.baidu.com: Name or service not known二、原因 没有配置dns服务器 三、解决办法 进入网络配置文件存放文件夹 cd /etc/sysconfig/network-scripts/查看对应的网口文件 ls ps: 不同系…

C语言:(动态内存管理)

目录 动态内存有什么用呢 malloc函数 开辟失败示范 free函数 calloc函数 realloc函数 当然realooc也可以开辟空间 常⻅的动态内存的错误 对NULL指针的解引⽤操作 对动态内存开辟的空间越界访问 对⾮动态开辟内存使⽤free释放 使⽤free释放⼀块动态开辟内存的⼀部分 …

TCP三次握手四次挥手,滑动窗口

TCP三次握手 TCP&#xff08;传输控制协议&#xff09;是一种重要的网络协议&#xff0c;它属于互联网协议套件中的传输层&#xff0c;主要用于在不可靠的互联网上提供可靠的、有序的和无差错的数据传输。下面详细介绍TCP的工作原理&#xff0c;包括其连接建立的三次握手过程。…

类和对象(下)【初始化列表】【static成员】【友元】等..... .及【练习题】

类和对象&#xff08;下&#xff09; 1.再谈构造函数 1.1构造函数体赋值 在创建对象时&#xff0c;编译器通过调用构造函数&#xff0c;给对象中各个成员变量一个合适的初始值。 // 初始化列表 # include<iostream> using namespace std;class Date { public:// 构造…

机器学习第十一次课

前言 从现在开始进入神经网络的领域了 正文 先是一段历史介绍,这个就跳过吧,我觉得这里最重要的就是反向传播这里 反向传播 反向传播&#xff08;Backpropagation&#xff09;是一种训练人工神经网络的算法&#xff0c;它通过计算损失函数关于网络参数的梯度来调整网络参数…

java基础篇(1)

JDK是什么?有哪些内容组成?JDK是Java开发工具包 JVM虚拟机: Java程序运行的地方 核心类库: Java已经写好的东西&#xff0c;我们可以直接用开发工具: javac、java、jdb、jhat.. JRE是什么?有哪些内容组成? JRE是Java运行环境 JVM、核心类库、运行工具 JDK&#xff0c;JRE&…

Vulnhub项目:HACKSUDO: THOR

1、靶机地址 hacksudo: Thor ~ VulnHubhacksudo: Thor, made by Vishal Waghmare. Download & walkthrough links are available.https://vulnhub.com/entry/hacksudo-thor,733/ 2、渗透过程 来了来了&#xff0c;开搞&#xff0c;先看目标 56.161&#xff0c;本机 56.1…

WebGL开发电力数字孪生

WebGL 开发电力数字孪生是一项复杂但极具潜力的任务。电力数字孪生通过创建电力系统的虚拟模型&#xff0c;可以实时监控、分析和优化电力系统的运行状态。以下是开发电力数字孪生的详细步骤。北京木奇移动技术有限公司&#xff0c;专业的软件外包开发公司&#xff0c;欢迎交流…

【MyBatis】MyBatis操作数据库(二):动态SQL、#{}与${}的区别

目录 一、 动态SQL1.1 \<if>标签1.2 \<trim>标签1.3 \<where>标签1.4 \<set>标签1.5 \<foreach>标签1.6 \<include>标签 二、 #{}与${}的区别2.1 #{}是预编译sql&#xff0c;${}是即时sql2.2 SQL注入2.3 #{}性能高于${}2.4 ${}用于排序功能…

防雷接地测试方法及注意事项

一、防雷接地的测试方法 检测避雷针、高层建筑物等设施的接地电阻&#xff0c;接雷后能否顺畅导入大地。 1、你先找到防雷接地网的接地引线或等电位联接箱。 2、用接地电阻测测试仪测接地电阻。 &#xff08;有两根测试桩0.4M的要插入泥土&#xff0c;一根距测试点20米&…