微服务---介绍

目录

1.微服务架构5个核心问题

2.微服务架构实现方案

3.微服务架构更多的是架构思想

4.学习微服务的意义

5.微服务架构一般采用

6.服务器有三种类型


1.微服务架构5个核心问题

(解决这些问题都是依托于中间件,学微服务也是学这些中间件)

        ①、服务很多,客户端该如何访问(后台接口有很多,有可能一个页面需要调用几十个服务)

                a.网关:后端有一个总管将任务分给谁的部件(所有对外暴露接口的管理者)

        ②、这么多服务,服务之间如何通信(如何做到全自动化)

                a、服务注册,将ip和端口号放入到zk中

                b、zookeeper:所有微服务的管理者(在后端想要调用零另一个服务时,先去zk查另一个服务的ip和端口号)

        ③、这么多服务,如何去管理,如何监控每个服务的运行状态

                a、zookeeper

        ④、如果有其中一个服务挂了,如何解决

                a、zk会定时向每个注册进来的微服务发送心跳检测,看能不能通。没有回就认为宕机了

                b、微服务中宕机是个很严重的事故,因为只要宕机,调用链中含宕机的那个服务就都不能访问了。(可能会有30%)问题是:用户会认为网络卡了,然后刷新。就会导致网络流量激增,但是一直返回服务异常。而一个服务的网络带宽是有限制的。就会导致本来正常调用链的请求,也进不来了。一般如果不做处理,会导致整个系统瘫痪。

                c、解决

                        结合zk做好报警系统。如果说zk监听到的宕机了,或者服务内存占用量过大,即使向开发人员反馈(apm报警系统:先发短信--》过一分钟没有处理--》发邮件--》电话)

                        服务熔断:网关检测到接口失败率过高,直接返回服务异常。熔断返回很快,因为没有业务逻辑,是直接返回的

        ⑤、微服务架构存在哪些缺陷,什么是cap问题

2.微服务架构实现方案

        ①、spring cloud  Netflix

        ②、apache dubbo + zookeeper.(spring)

        ③、Spring cloud Alibaba

3.微服务架构更多的是架构思想

        微服务架构会带来很多问题,比如两个服务数据不一致(用户更改用户名调用的接口是用户服务的接口,更改了用户服务的数据表,但是没有更改订单服务的表)

4.学习微服务的意义

        虽然就开发来说,就是单纯的Springbot做增删改查,但是一但涉及到解决各个系统之间交互的问题时,如果不学微服务的思想,架构设计的调优方案就会看不懂,不知道怎么实施。

5.微服务架构一般采用

        ①、common:放一些公用的枚举

       ②、client:rpc调用(RPC(Remote Procedure Call)远程过程调用协议,一种通过网络从远程计算机上请求服务,而不需要了解底层网络技术的协议。RPC采用客户端/服务端的模式,通过request-response消息模式实现)

        ③、service:rpc实现

        ④、web:http接口实现,controller

        ⑤、base:共有的业务逻辑

6.服务器有三种类型

        ①、云服务器:有一个公网ip(在云服务器上面部署了一个程序,是可以访问到的,因为有公网IP)

        ②、物理机(一个配置特别高的电脑):可以有公网ip,也可以没有公网ip,如果没有公网ip,只能在机房内部通过交换机访问

        公司一般都有一个同样的公网暴露服务器(有公网ip,通过他来调用其他没有公网ip的服务,保证安全)。xsheel通过账号密码访问跳板机(跳板机:可以对一些指令进行监控,跳板机也是一个有公网暴露面的服务器)   

        ③虚拟机:由这个物理机用虚拟化技术虚拟出来的(vmware),两个虚拟机连接在同一个物理机里面直接传输,在同一个机房用交换机传输,距离远了就只能用互联网传输了。互联网传输是不可靠的,因为是通过光纤去传输的,有可能光纤受损传不过去,这就是我们微服务要解决的问题

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

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

相关文章

【C++】总结10--C++11第二篇

文章目录 RAIIC11新特性 RAII RAII(Resource Acquisition Is Initialization)是一种利用对象生命周期来控制程序资源(如内存、文件句柄、网络连接、互斥量等)的简单技术,在对象的构造函数中获取资源,在对象…

深度学习torch基础知识

torch. detach()拼接函数torch.stack()torch.nn.DataParallel()np.clip()torch.linspace()PyTorch中tensor.repeat()pytorch索引查找 index_select detach() detach是截断反向传播的梯度流 将某个node变成不需要梯度的Varibale。因此当反向传播经过这个node时,梯度…

IDEA用Gradle构建项目时,lombok插件无效的解决办法

Lombok 可用来帮助开发人员消除 Java 的重复代码,尤其是对于简单的 Java 对象(POJO),比如说getter/setter/toString等方法的编写。它通过注解实现这一目的。 正确使用姿势 一、安装Lombok插件 菜单栏File -> Settings ->…

死锁的发生原因和怎么避免

项目场景: 提示:这里简述项目相关背景: 例如:项目场景:示例:通过蓝牙芯片(HC-05)与手机 APP 通信,每隔 5s 传输一批传感器数据(不是很大) 问题描述 死锁,简单来说就是两个或者两个以上的线程在…

翻转卡片游戏(力扣)

题目 在桌子上有 n 张卡片,每张卡片的正面和背面都写着一个正数(正面与背面上的数有可能不一样)。 我们可以先翻转任意张卡片,然后选择其中一张卡片。 如果选中的那张卡片背面的数字 x 与任意一张卡片的正面的数字都不同&#…

【C语言进阶】数据的存储----整型篇

​ 🍁 博客主页:江池俊的博客 💫收录专栏:C语言——探索高效编程的基石 💻 其他专栏:数据结构探索 ​💡代码仓库:江池俊的代码仓库 🎪 社区:GeekHub 🍁 如果觉…

洛谷P1525 关押罪犯(种类并查集)

S 城现有两座监狱,一共关押着 $N$ 名罪犯,编号分别为 $1-N$ 。他们之间的关系自然也极不和谐。很多罪犯之间甚至积怨已久,如果客观条件具备则随时可能爆发冲突。我们用“怨气值”(一个正整数值)来表示某两名罪犯之间的…

Liunx环境下git的详细使用(gitee版)

Liunx环境下git的详细使用(gitee版) 1.git是什么2.git操作2.1在gitee创建一个仓库2.2.gitignore2.3.git 3.git三板斧3.1add3.2 commit3.3push 4.git其他命令4.1查看当前仓库状态4.2查看提交日志4.3修改git里面文件名称4.4删除文件4.5修改远端仓库内容 1.…

postgresql表膨胀处理之pgcompacttable部署及使用

环境: 1)redhat-release:CentOS Linux release 7.6.1810 (Core) 2)database version:postgresql 14.6 一、添加pgstattuple pgcompacttable工具使用过程中需要依赖pgstattuple,因此需先添加pgstattuple…

【SEO基础】百度权重是什么意思及网站关键词应该怎么选?

百度权重是什么意思及网站关键词应该怎么选? 正文共:3253字 20图 预计阅读时间:9分钟 ​ 1.什么是网站权重? 这段时间和一些朋友聊到网站权重以及关键词,发现蛮多人对于这两个概念的认知还是存在一些错误的&#xf…

数组的使用(逆序、冒泡)

内存连续数据类型相同从0开始索引 找出数组中的最大值 #include <iostream> #include <stdlib.h> //随机数所在文件 using namespace std;int main() {int arr[5]{104,134,145,129,89};//初始化没有填的为0 int max0;for(int i0;i<5;i){if(arr[i]>max){ma…

矩阵计算之求解

文章目录 已知 A*BC一、矩阵计算 -求A一、矩阵计算 -求B 已知 A*BC 一、矩阵计算 -求A AC*invB一、矩阵计算 -求B BinvA*C

203. 移除链表元素

203. 移除链表元素 题目方法1递归方法2迭代 题目 给你一个链表的头节点 head 和一个整数 val &#xff0c;请你删除链表中所有满足 Node.val val 的节点&#xff0c;并返回 新的头节点 。 方法1递归 class Solution { public:ListNode* removeElements(ListNode* head, in…

winform使用SetParent 嵌入excel,打开的excel跟随dpi 25%*125%缩放了两次,目前微软官方没有好的解决方案,为什么

双重缩放问题在将 Excel 嵌入到 WinForm 中时确实可能会出现&#xff0c;这是因为两个不同的应用程序&#xff08;WinForm 和 Excel&#xff09;之间的 DPI 缩放逻辑不一致&#xff0c;导致双重缩放的结果。 在 Windows 操作系统中&#xff0c;DPI 缩放是一种全局的设置&#…

RabbitMQ快速入门

文章目录 1、RabbitMQ的概述1.1、什么是消息队列&#xff1f;1.2、为什么要使用消息队列&#xff1f;1.3、RabbitMQ的特点&#xff1a; 2、RabbitMQ的安装2.1 下载与安装2.2 常用命令 3、RabbitMQ消息发送和接受3.1 消息发送和接受机制3.2 AMQP的消息路由3.3 Exchange(交换机)的…

Datax 数据同步-使用总结(一)

1&#xff0c;实时同步&#xff1f; datax 通常做离线数据同步使用。 目前能想到的方案 利用 linux 的定时任务时间戳的方式做增量同步。 2&#xff0c;同步速度快不快&#xff1f; 单表同步速度还是挺快的 但是如果遇到复杂的 sql 查询&#xff0c;其同步效率&#xff0c…

中国信通院发布《高质量数字化转型产品及服务全景图(2023)》

2023年7月27日&#xff0c;由中国信息通信研究院主办的2023数字生态发展大会暨中国信通院铸基计划年中会议在北京成功召开。 本次大会发布了中国信通院《高质量数字化转型产品及服务全景图&#xff08;2023&#xff09;》&#xff0c;中新赛克海睿思受邀出席本次大会并成功入选…

Golang中空结构体的使用

空结构体的使用 何为空结构体 在结构体中&#xff0c;可以包裹一系列与对象相关的属性&#xff0c;但若该对象没有属性呢&#xff1f;那它就是一个空结构体。   空结构体&#xff0c;和正常的结构体一样&#xff0c;可以接收方法函数。 eg&#xff1a; type Lamp struct{}f…

秋招算法备战第38天 | 动态规划理论基础、509. 斐波那契数、70. 爬楼梯、746. 使用最小花费爬楼梯

动态规划理论基础 什么是动态规划 动态规划&#xff0c;英文&#xff1a;Dynamic Programming&#xff0c;简称DP&#xff0c;如果某一问题有很多重叠子问题&#xff0c;使用动态规划是最有效的。 所以动态规划中每一个状态一定是由上一个状态推导出来的&#xff0c;这一点就…

能源电力工程师专属Python学习资料

随着我国新型电力系统的建设&#xff0c;一方面电源侧各类新能源装机快速增长&#xff0c;对于新能源出力的功率预测需求日益增长&#xff1b;另一方面&#xff0c;我国电力市场经过 8 年建设&#xff0c;关于电力商品价格影响因素的研究亟待深入。超过 90% 的业务小伙伴都具备…