微服务基础

目录

一、单体架构

二、分布式架构

三、微服务

四、微服务结构

五、SpringCloud

六、服务拆分

七、远程调用


一、单体架构

        单体架构就是将业务的所有功能都集中在一个项目中进行开发,并打成一个包进行部署。

        他的优点很明显,就是架构简单,部署成本低。

        缺点也很明显,就是功能之间的耦合度高,当我们面对的是互联网的大项目时,如果采用单体架构,那么就会非常麻烦,因为功能之间可能存在依赖,或者存在某种关系,当我们要改变单体架构中的一个功能模块的时候,很有可能我们就要接连着修改其他功能模块。因此,这样是非常不方便的。该架构不适合大型项目的开发。

二、分布式架构

        分布式架构,即根据业务功能对系统进行拆分,每个业务模块作为独立的项目进行开发,称为一个服务。

        这种架构的优点就是,降低了服务的耦合度,有利于服务的升级拓展。

        

        但是这种架构也是有缺点的,最重要的就是“服务治理”,分布式架构需要考虑很多问题,比如:

  •    服务拆分粒度如何?
  •    服务器集群地址如何维护?
  •    服务之间如何实现远程调用?
  •    服务健康状态如何感知?

        。。。

        而用于解决这些问题的一种方案就是“微服务”方案。

三、微服务

        微服务是一种经过良好架构设计的分布式架构方案,微服务架构特征:

  • 单一职责:微服务拆分粒度更小,每一个服务都对应唯一的业务能力,做到单一职责,避免重复业务开发。
  • 面向服务:微服务对外暴露业务接口。
  • 自治:团队独立、技术独立、数据独立、部署独立。
  • 隔离性强:服务调用做好隔离、容错、降级,避免出现级联问题。

        缺点:架构非常复杂,运维、监控、部署难度提高。

四、微服务结构

        微服务这种方案需要技术框架来落地,全球的互联网公司都在积极尝试自己的微服务落地技术。在国内最知名的就是SpringCloud和阿里巴巴的Dubbo。

        其中,SpringCloud是通过整合其他开源框架而来的。

        微服务技术对比:

        SpringCloudAlibaba是SpringCloud的一部分,因为Dubbo也是Alibaba的因此,SpringCloudAlibaba是Dubbo和SpringCloud的整合体,体系比较完善,在国内也是越来越火的。

        在企业中,常用的就是四种技术栈:

五、SpringCloud

        SpringCloud是目前国内使用最广泛的微服务框架。官网地址:Spring Cloud

        SpringCloud集成了各种微服务功能组件,并基于SpringBoot实现了这些组件的自动装配,从而提供了良好的开箱即用体验:

六、服务拆分

        服务拆分注意事项
                1.不同微服务,不要重复开发相同业务

                2.微服务数据独立,不要访问其它微服务的数据库

                3.微服务可以将自己的业务暴露为接口,供其它微服务调用

七、远程调用

        远程调用也就是,我们要在代码中,通过另一个模块暴露出的接口来获取相应数据,而不是直接查其数据库。

        在Java代码中发起http请求,需要注册一个模板。

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

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

相关文章

JVM-类加载机制

名词解释 *.class文件的结构 查看指令: javap -verbose hello.class 包含信息: 结构信息(版本号,大小信息); 元数据(类,继承,接口,字段声明,方法声…

应用监控 eBPF 版:实现 Golang 微服务的无侵入应用监控

作者:古琦 在现代软件架构中,微服务已成为构建可扩展和灵活应用程序的流行方式。每个微服务负责应用程序的一部分功能,它们共同工作以提供完整的服务。由于微服务架构的分散特性,监控变得至关重要,有效的微服务监控是…

视频推拉流EasyDSS平台直播通道重连无法转推的原因排查与解决

视频推拉流EasyDSS视频直播点播平台,集视频直播、点播、转码、管理、录像、检索、时移回看等功能于一体,可提供音视频采集、视频推拉流、播放H.265编码视频、存储、分发等视频能力服务。 用户使用EasyDSS平台对直播通道进行转推,发现只要关闭…

Object.keys()的用法

1、语法 Object.keys(obj) 参数:要返回其枚举自身属性的对象 返回值:一个表示给定对象的所有可枚举属性的字符串数组 2、处理对象,返回可枚举的属性数组 let person {name:“张三”,age:25,address:“深圳”,getName:function(){}} Obj…

Wireshark——获取指定协议的数据包

1、问题 使用Wireshark捕获了大量的数据包,但是只想要指定协议的数据包。 2、方法 例如,只想要Modbus/TCP协议的数据包。 在应用显示过滤器中输入协议的名称(小写),回车。 选择文件,导出特定分组。 将所…

基于redis实现用户登陆

因为session有数据共享问题,不同tomcat服务器中的session不能共享,之后负载均衡就无法实现。所以我们用redis代替session。redis可以被多个tomcat服务器共享,redis基于内存。 之前的session可以看做登陆凭证,本次登陆凭证由sessi…

算法 - 【受限条件下可到达节点的数目】

受限条件下可到达节点的数目 题目示例1示例2 分析代码 题目 现有一棵由 n 个节点组成的无向树,节点编号从 0 到 n - 1 ,共有 n - 1 条边。给你一个二维整数数组 edges ,长度为 n - 1 ,其中 edges[i] [ai, bi] 表示树中节点 ai 和…

python基础第二天

世界杯小组赛成绩 注意: 1.循环 1.1while 1.2for 1.3 range 1.4 while else while 循环正常执行完才能执行else语句

数据库(mysql)-新手笔记-基本知识点(1)

基本概念 数据库 Database :存储数据的容器 表 Table : 在数据库中存储的基本结构,它由行和列组成 行 Row : 表中的一条记录 列 Column : 表中的字段,定义了数据的类型和约束 数据类型 数据值 如 INT(整型),FLAOT(浮点型) ,DECIMAL (精确小数点) 字符串 如 VARCHAR(可变长度字…

探索AI视频创新:Sora的奇迹

探索AI视频创新:Sora的奇迹 随着科技的不断演进,AI视频模型已经成为人工智能领域的一颗新星。在这场技术的风暴中,OpenAI的Sora模型以其杰出的性能和前瞻性的技术脱颖而出,正引领着AI视频领域的全新创新浪潮。 Sora的技术之光 …

【JS】关于this的使用

this 前言一、this是什么?二、做什么?1.全局环境2.函数环境3.new实例对象4.apply、bind、call绑定4.1 apply()4.2 call()4.3 bind() 三、为什么用this?四、如何改变this?五、应用场景?总结 前言 痛点 经常写Vue项目&a…

(3)(3.3) MAVLink高延迟协议

文章目录 前言 1 配置 2 说明 3 消息说明 前言 ArduPilot 支持 MAVLink 高延迟协议(MAVLink High Latency)。该协议专为卫星或 LoRA 等低带宽或高成本链路而设计。 在此协议中,每 5s 只发送一次 HIGH_LATENCY2 MAVLink 信息。对 MAVLink 命令或请求&#xff08…