Springcloud微服务架构基础知识解析
作者:知识追寻者 发布时间:2023-01-26 14:37:10
一 前言
学习微服务要从基础的架构学起,首先你要有个微服务的概念才能学习对吧!!如果你都不知道啥是微服务,就一头扎进去学习,你自己也觉得自己也学不会对吧。本篇文章主要让大家快速了解基础的架构分格,以便于微服务入门。
二 单体架构
单体架构是传统架构,其发展了几十年,我们今天任然还在用单体架构开发,存在即合理;单体架构也就是通常的表现层跟UI界面交互,业务层写业务逻辑,数据DAO层访问数据库。其部署方式也很简单,直接将项目打包成war包放进web服务器(如tomcat,jetty)中运行; 其优点如下:
易于开发,架构单一,很容易上手,一站式到底;
易于部署,直接放进web服务器即可运行;
其缺点如下:
维护困难,每次进行代码维护,往往修改都是从上而下改动,需将整个程序部署才能看见修改结果;
二次开发难度大,都要读懂大量代码,业务逻辑复杂;
测试难度大,随着业务越多,测试的难度会越大;
三 分布式架构
分布式架构简单的可以理解为由多个单体结构组成,但是它们都是通过发布的服务相互调用;
分布式服务架构中比较出门的就是面向服务的SOA(Service-Oriented Architecture)架构,服务之间通过通信协议进行相互通信;比较出名的服务治理框架也就是阿里开源的Dubbo框架,目前在Apache旗下,服务之间通过远程过程调用(RPC),主要角色如下;
注册中心:服务的注册与发现;
提供者:提供服务
消费者:消费服务
监控中心:监控服务之间的日志和健康;
四 微服务架构
到目前为止其实关于微服务架构还是没有一个精确的定义;2014 年 Martin Fowler 在 《Microservices》 一文中提出了微服务的概念,大体的我们可以总结为如下几点:
一个单体应用开发成多个微小服务;
微小服务间通常通过HTTP协议或者restful风格调用;
每个微小服务围绕业务逻辑构建,独立自动部署;
In short, the microservice architectural style [1] is an approach to developing a single application as a suite of small services, each running in its own process and communicating with lightweight mechanisms, often an HTTP resource API. These services are built around business capabilities and independently deployable by fully automated deployment machinery. There is a bare minimum of centralized management of these services, which may be written in different programming languages and use different data storage technologies.
微服务的优点如下:
独立部署,易于开发维护
服务拆分,业务逻辑清晰,
服务间通过HTTP通信,耦合度低
微服务缺点如下:
部署难度大,目前有docker等容器化技术相对好点;
分布式事物问题突出;
五参考文档
dubbo官方文档
miroservice
来源:https://www.cnblogs.com/zszxz/p/12056470.html


猜你喜欢
- 最近在做Android 的MP3播放的项目,要实现歌词的自动滚动,以及同步显示。lyric的歌词解析主要用yoyoplayer里面的,显示部
- c#判断代码是否执行超时一、使用委托delegate void dg();dg dgCase;void method(){ &n
- 本文实例为大家分享了XListView实现上拉加载下拉刷新的具体代码,供大家参考,具体内容如下## 导入XListVIew第三方库文件。通过
- 写出一个struct,然后sizeof,你会不会经常对结果感到奇怪?sizeof的结果往往都比你声明的变量总长度要大,这是怎么回事呢?讲讲字
- java 实现文件夹的拷贝实例代码 这里就直接上代码,
- 一、ORMO:object 对象R:Realtion 关系(关系型数据库)M:Mapping 映射ORM:对象关系型映射目前流行的编程语言,
- 1、使用第三方类库 HtmlAgilityPack官方网址:https://html-agility-pack.net/?z=codeple
- 项目背景:在项目中包含两个定时任务,配置信息如下:1、@Scheduled(initialDelay = 1,fixedDelay=1000
- 本文实例讲述了C#不重复输出一个数组中所有元素的方法。分享给大家供大家参考。具体如下:1.算法描述0)输入合法性校验1)建立临时数组:与原数
- 谷歌的AI击败了一位围棋大师,是一种衡量人工智能突然的快速发展的方式,也揭示了这些技术如何发展而来和将来可以如何发展。人工智能是一种未来性的
- 注解类@Documented@Target({ElementType.METHOD})@Retention(RetentionPolicy.
- 配置多个别名 typeAliasesPackage<property name="typeAliasesPackage&qu
- 支付宝的接入相对比较简单,看看支付宝官网的文档基本都能搞定,但是切记一点让你们的后台也要搞清楚支付宝的流程,重中之重。1、注意事项 开发前一
- windows系统中的画板工具,有好几种画刷,C#中并没有直接对应可使用的类,只能自己研究。1.画刷原理根据本人对PS的相关功能细心分析,发
- 概念逃逸分析一种数据分析算法,基于此算法可以有效减少 Java 对象在堆内存中的分配。 Hotspot 虚拟机的编译器能够分析出一个新对象的
- 本文实例讲述了Android编程使用GestureDetector实现简单手势监听与处理的方法。分享给大家供大家参考,具体如下:添加手势识别
- 本文为大家分享了Tablayout简单的使用方法,供大家参考,具体内容如下一、TabLayout普通用法在项目中使用viewpager的时候
- AndroidStudio 的SVN 安装和使用方法与我以前用的其他IDE 都有很大差别,感觉特麻烦,网上相关资料很少,貌似现在 Git 比
- 一:什么是Bitmap像素级的操作相信大家都知道一张jpg或png放大后会是一个个小格子,称为一个像素(px),而且一个小格子是一种颜色,也
- 本文实例为大家分享了Unity使用摄像机实现望远镜效果的具体代码,供大家参考,具体内容如下听起来挺酷炫,其实超简单,就是控制摄像机的fiel