第一章初识微服务
文章目录
- 认识微服务
- 单体架构
- 分布式架构
- 需要考虑的问题
- 微服务
- 微服务的具体架构
- 微服务技术对比
- 企业中的技术需求
- 总结
- 服务拆分注意事项
认识微服务
随着互联网行业的发展,对服务的要求也越来越高,服务架构也从单体架构逐渐演变为现在流行的微服务架构。这些架构之间有怎样的差别呢?
- 了解微服务架构的优缺点
单体架构
单体架构:将业务的所有功能集中在一个项目中开发,打成一个包部署。
![image-20230817155321413](https://img-blog.csdnimg.cn/img_convert/683d8d1afe2dfbc7bf16f8af0ffa88cd.png)
单体架构的优缺点如下:
优点:
- 架构简单
- 部署成本低
缺点:
- 耦合度高(维护困难、升级困难)
分布式架构
分布式架构:根据业务功能对系统做拆分,每个业务功能模块作为独立项目开发,称为一个服务。
![image-20230817155806244](https://img-blog.csdnimg.cn/img_convert/854d0226eb2a53622c389639e5dcfa3d.png)
分布式架构的优缺点:
优点:
- 降低服务耦合
- 有利于服务升级和拓展
缺点:
- 服务调用关系错综复杂
需要考虑的问题
![image-20230817160011635](https://img-blog.csdnimg.cn/img_convert/ddf3b86b976229a20ba31d2d54b06005.png)
- 服务拆分的粒度如何界定?
- 服务集群地址如何维护?
- 服务之间如何调用?
- 服务健康状态如何感知?
集群、微服务、分布式
①. 微服务:拒绝大型单体应用,基于业务对微服务进行拆分,各个服务独立部署运行
- (微服务与分布式的细微差别是,微服务的应用不一定是分散在多个服务器上,它也可以是同一个服务器)
②. 集群、分布式、节点
- 集群:几台服务集中在一起,实现同一业务
- 集群可以是我是一个应用。这一个应用扛不住了,把这个应用部署在不同的机器上,对外提供的是一个服务
- 分布式:将一套系统拆分成不同子系统部署在不同服务器上(这叫分布式)
- 节点:集群中的一个服务器
- 注意:集群(多个人在一起作同样的事情) 分布式(多个人在一起作不同的事)
- 分布式中的每一个节点都可以做集群,而集群不一定是分布式的
- 集群是个物理形态,分布式是工作方式
举例:
- 小饭店原来只有一个厨师,切菜洗菜备料炒菜全干
- 后来客人多了,厨房一个厨师忙不过来,又请了个厨师,两个厨师都能炒一样的菜,两个厨师的关系是集群
- 为了让厨师专心炒菜,把菜做到极致,再请了个配菜师负责切菜,备菜,备料 … 厨师和配菜师的关系是分布式
- 一个配菜师也忙不过来了,又请了个配菜师,两个配菜师关系是集群。
- 一个配菜师因故请假了,但是其余的配菜师还是该啥就干啥,只是没请假的配菜师任务均匀的加量了,但他们的任务和职责是不变的,这是集群
微服务
微服务的架构特征:
- 单一职责:微服务拆分粒度更小,每一个服务都对应唯一的业务能力,做到单一职责
- 自治:团队独立、技术独立、数据独立,独立部署和交付
- 面向服务:服务提供统一标准的接口,与语言和技术无关
- 隔离性强:服务调用做好隔离、容错、降级,避免出现级联问题
微服务的上述特性其实是在给分布式架构制定一个标准,进一步降低服务之间的耦合度,提供服务的独立性和灵活性。做到高内聚,低耦合。因此,可以认为微服务是一种经过良好架构设计的分布式架构方案 。、
微服务的具体架构
![image-20230817161338056](https://img-blog.csdnimg.cn/img_convert/7617c82f8d2dc320e12d74a7f9507f1d.png)
但方案该怎么落地?选用什么样的技术栈?全球的互联网公司都在积极尝试自己的微服务落地方案。
其中在Java领域最引人注目的就是SpringCloud提供的方案了。
微服务技术对比
企业中的技术需求
![image-20230817162312072](https://img-blog.csdnimg.cn/img_convert/af9f8742198368feec2a481379f6aa59.png)
学习的使用的版本
![image-20230817162608112](https://img-blog.csdnimg.cn/img_convert/1265db9ce7753b7e4dff61652ec637e2.png)
- SpringBoot版本是2.3.4.RELEASE
- SpringCloud版本是Hoxton.SR8
- spring-cloud-alibaba-dependencies是2.2.2.RELEASE
<properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><java.version>1.8</java.version><spring-cloud.version>Hoxton.SR8</spring-cloud.version><mysql.version>5.1.47</mysql.version><mybatis.version>2.1.1</mybatis.version>
</properties>
总结
-
单体架构:简单方便,高度耦合,扩展性差,适合小型项目。例如:学生管理系统
-
分布式架构:松耦合,扩展性好,但架构复杂,难度大。适合大型互联网项目,例如:京东、淘宝
-
微服务:一种良好的分布式架构方案
-
①优点:拆分粒度更小、服务更独立、耦合度更低
-
②缺点:架构非常复杂,运维、监控、部署难度提高
-
SpringCloud是微服务架构的一站式解决方案,集成了各种优秀微服务功能组件
服务拆分注意事项
- 不同微服务,不要重复开发相同业务
- 微服务数据独立,不要访问其它微服务的数据库
- 微服务可以将自己的业务暴露为接口,供其它微服务调用
![image-20210713210800950](https://img-blog.csdnimg.cn/img_convert/c22788b7e7b5300b15ca497d732482b1.png)
相关文章:
![](https://img-blog.csdnimg.cn/img_convert/c22788b7e7b5300b15ca497d732482b1.png)
第一章初识微服务
文章目录 认识微服务单体架构分布式架构需要考虑的问题 微服务微服务的具体架构微服务技术对比企业中的技术需求 总结 服务拆分注意事项 认识微服务 随着互联网行业的发展,对服务的要求也越来越高,服务架构也从单体架构逐渐演变为现在流行的微服务架构。…...
![](https://www.ngui.cc/images/no-images.jpg)
微信小程序电影票订票小程序软件设计与实现
摘 要 我们的生活水平正在不断的提高,然而提高的一个重要的侧面表现就是更加注重我们的娱乐生活。电影是我们都喜欢的一种娱乐方式,各式各样的电影给我们带来的喜悦也是大不相同的。带来快乐的同时也因为其复杂、繁琐的流程让电影爱好者们变得烦躁起来。…...
![](https://img-blog.csdnimg.cn/3076efa055504a0bae935b8f626792d8.png)
Redis 缓存预热+缓存雪崩+缓存击穿+缓存穿透
面试题: 缓存预热、雪萌、穿透、击穿分别是什么?你遇到过那几个情况?缓存预热你是怎么做的?如何造免或者减少缓存雪崩?穿透和击穿有什么区别?他两是一个意思还是载然不同?穿适和击穿你有什么解…...
![](https://www.ngui.cc/images/no-images.jpg)
java 面试题汇总整理
java有哪四种引用类型 在Java中,有四种引用类型,用于控制对象的生命周期和垃圾回收行为。这些引用类型包括: 强引用(Strong Reference): 强引用是最常见的引用类型,它们是默认的引用类型。当一…...
![](https://img-blog.csdnimg.cn/d9784c5c983145639f70f5a70239889e.png)
淘宝开放平台免审核接入 获取淘宝卖家订单列表订单详情API
taobao.open.trades.sold.get 搜索当前会话用户作为卖家已卖出的交易数据(只能获取到三个月以内的交易信息) 1. 返回的数据结果是以订单的创建时间倒序排列的。 注意:type字段的说明,如果该字段不传,接口默认只查4种类…...
![](https://www.ngui.cc/images/no-images.jpg)
Mybatis中的关系映射
1.一对一的映射关系 一对一关系(One-to-One)表示两个实体对象之间存在唯一的关联关系。例如,一个学生只能拥有一个身份证。在 MyBatis 中,我们可以使用结果嵌套或一对一映射来处理一对一关系。 1.1 创建模型类和Vo类 package com…...
![](https://img-blog.csdnimg.cn/68d0ef7d7afb4f1586deb42465508d31.png)
领域建模之数据模型设计方法论
本文通过实际业务需求场景建模案例,为读者提供一种业务模型向数据模型设计的方法论,用于指导实际开发中如何进行业务模型向数据模型转化抽象,并对设计的数据模型可用性、扩展性提供了建议性思考。通过文章,读者可以收获到业务模型…...
![](https://www.ngui.cc/images/no-images.jpg)
springboot毕业生信息招聘平台设计与实现
摘 要 随着社会的发展,社会的各行各业都在利用信息化时代的优势。计算机的优势和普及使得各种信息系统的开发成为必需。 毕业生信息招聘平台,主要的模块包括查看管理员;首页、个人中心、企业管理、空中宣讲会管理、招聘岗位管理、毕业生管理…...
![](https://img-blog.csdnimg.cn/212aa4e18fbb42e09b1e64848e892753.png)
开发前期准备工作
开发前期准备工作 文章目录 开发前期准备工作0 代码规范0.1 强制0.2 推荐0.3 参考dao:跟数据库打交道service:业务层,人类思维解决controller:抽象化 0.4 注释规范0.5 日志规范0.6 专有名词0.7 控制层统一异常统一结构体控制层提示…...
![](https://www.ngui.cc/images/no-images.jpg)
k8s deployment服务回滚,设置节点为不可调度
服务回滚 通过滚动升级的策略可以平滑的升级Deployment,若升级出现问题,需要最快且最好的方式回退到上一次能够提供正常工作的版本。为此K8S提供了回滚机制。 revision:更新应用时,K8S都会记录当前的版本号,即为revi…...
![](https://img-blog.csdnimg.cn/img_convert/33b82acec32fd5b5cc0c8c8a63340e85.png)
信息系统安全运维和管理指南
声明 本文是学习 信息系统安全运维管理指南. 而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 安全运维支撑系统 信息系统安全服务台 目的 对信息系统安全事件进行统一监控与处理。 要求 建立一个集中的信息系统运行状态收集、处理、显示及报警的系…...
![](https://img-blog.csdnimg.cn/d4ef0394fc034d09be12e204e7b2aa6c.jpeg)
现货黄金代理好吗?
做黄金代理这个职业好吗?从目前的市场现状来看,其实做黄金代理很不错的。在股票市场中,投资者只能通过买涨进盈利,所以当市场行情不好的时候,股票经纪人的业务将很难展开,而现货黄金投资者不一样࿰…...
![](https://img-blog.csdnimg.cn/eb4b95271e92478e9d8b8c16284c4994.png)
BCSP-玄子Share-Java框基础_双系统Redis安装与基础语法
四、Redis 4.1 Redis 简介 Redis 是开源、高性能的key-value数据库,属于 NoSQL 数据库 NoSQL 数据库与关系型数据库 关系型数据库:采用关系模型来组织数据,主要用于存储格式化的数据结构NoSQL 数据库:泛指非关系型数据库&…...
![](https://www.ngui.cc/images/no-images.jpg)
android system_server WatchDog简介
简介 android系统中SystemServer WatchDog的主要作用是监控SystemServer进程的运行状态,防止其卡住或者死锁。 具体来说,watchDog线程会定期去检查SystemServer线程的运行情况。如果发现SystemServer线程超过一定时间未有响应,watchDog会认为SystemServer进程发生了问题,这时…...
![](https://img-blog.csdnimg.cn/ec6e317e30de41568c423836edf84aea.png)
华为---OSPF协议优先级、开销(cost)、定时器简介及示例配置
OSPF协议优先级、开销、定时器简介及示例配置 路由协议优先级:由于路由器上可能同时运行多种动态路由协议,就存在各个路由协议之间路由信息共享和选择的问题。系统为每一种路由协议设置了不同的默认优先级,当在不同协议中发现同一条路由时&am…...
![](https://www.ngui.cc/images/no-images.jpg)
MEMORY-VQ: Compression for Tractable Internet-Scale Memory
本文是深度学习相关文章,针对《MEMORY-VQ: Compression for Tractable Internet-Scale Memory》的翻译。 MEMORY-VQ:可追溯互联网规模存储器的压缩 摘要1 引言2 背景3 MEMORY-VQ4 实验5 相关工作6 结论 摘要 检索增强是一种强大但昂贵的方法࿰…...
![](https://img-blog.csdnimg.cn/08fad1b3b9a44319956996a3b8233a22.png)
Netty—ChannelHandler
文章目录 一、Channel、ChannelPipeline 以及ChannelHandler 三者的关系❓二、ChannelHandler 是什么?🤔️三、ChannelInboundHandler四、ChannelOutboundHandler 一、Channel、ChannelPipeline 以及ChannelHandler 三者的关系❓ 通过以上对Channel和Ch…...
![](https://www.ngui.cc/images/no-images.jpg)
Android 集成onenet物联网平台
一,在Android应用程序中集成OneNet物联网平台,您可以按照以下步骤进行操作: 注册OneNet账户:首先,您需要在OneNet官方网站上注册一个账户。访问OneNet网站(https://open.iot.10086.cn/ ↗)&…...
![](https://img-blog.csdnimg.cn/a4a4ac9fbf4641c18bf2ba6f0802b8ce.png)
java八股文面试[JVM]——如何打破双亲委派模型
双亲委派模型的第一次“被破坏”是重写自定义加载器的loadClass(),jdk不推荐。一般都只是重写findClass(),这样可以保持双亲委派机制.而loadClass方法加载规则由自己定义,就可以随心所欲的加载类,典型的打破双亲委派模型的框架和中间件有tomc…...
![](https://img-blog.csdnimg.cn/img_convert/5cc6b557ae76731cc7338d9e64225979.jpeg)
一加11/Ace2/10Pro手机如何实现全局120HZ高刷-游戏超级流畅效果
已经成功root啦。安卓13目前也一样支持LSPosed框架,如果你对LSP框架有需求,也可以使 自测120HZ刷新率诞生以后,很多小伙伴用上了就很难回来啦,一加11/Ace2/10Pro/9pro手 机厂商也对新机做了很多的适配,让我们日常使用起…...
![](https://img-blog.csdnimg.cn/20210404234818963.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3hpYW1hb2NoZW5n,size_16,color_FFFFFF,t_70#pic_center)
微服务主流框架概览
微服务主流框架概览 目录概述需求: 设计思路实现思路分析1.HSF2.Dubbo 3.Spring Cloud5.gRPC Service mesh 参考资料和推荐阅读 Survive by day and develop by night. talk for import biz , show your perfect code,full busy,skip hardness,make a be…...
![](https://img-blog.csdnimg.cn/d795c19411934e629a59ad15e0472b5b.png)
Python Flask Web开发二:数据库创建和使用
前言 数据库在 Web 开发中起着至关重要的作用。它不仅提供了数据的持久化存储和管理功能,还支持数据的关联和连接,保证数据的一致性和安全性。通过合理地设计和使用数据库,开发人员可以构建强大、可靠的 Web 应用程序,满足用户的…...
![](https://img-blog.csdnimg.cn/238ea02eba1746e28df1645c203e1fd2.png)
快速学会git版本管理——上传gitee仓库
首先在gitee右上角有一个新建仓库 创建之后打开自己想要上传的文件 右键打开 Git Bash Here 接下来会弹出git的窗口 首先先初始化仓库 用git命令 git init 然后用git add . 上传所有文件上传到暂存区(上一篇文章说过add是单个文件,add . 是所有文件) 没有显示错误 …...
![](https://img-blog.csdnimg.cn/55a0fd4ab2c5467a973786aade84b643.jpeg#pic_center)
应用在智能洗衣机触摸屏上的电容式触摸芯片
智能型全自动洗衣机可以自动判断水温、水位、衣质衣量、衣物的脏污情况,决定投放适量的洗涤剂和的洗涤程序。当洗衣桶内衣物的多少和质地不同,而注入水使其达到相同的水位时,其总重量是不同的。利用这一点,通过对洗衣电动机低速转…...
![](https://img-blog.csdnimg.cn/7087c8f3381446ffbffdfc81e8da06bb.png)
npm版本升级报错
解决方法: 执行npm install --legacy-peer-deps依赖对等 npm install xxx --legacy-peer-deps命令用于绕过peerDependency里依赖的自动安装;它告诉npm忽略项目中引入的各个依赖模块之间依赖相同但版本不同的问题,以npm v4-v6的方式去继续执行…...
![](https://img-blog.csdnimg.cn/f46fcfe126a142b6a43b0b811dabb620.png)
Vue+Element-ui+SpringBoot搭建后端汽车租赁管理系统
最近在做项目,花了一周的时间搭建了一个十分完备的汽车租赁后端管理系统。页面采用纯Vue2Element-ui搭建,后端采用SpringbootMybatis搭建,数据库采用Mysql。包括了登录验证,根据不同权限进入不同界面、数据增删改查、表格分页、表…...
![](https://www.ngui.cc/images/no-images.jpg)
PKU校园网连接失败
校园网连接失败 连上校园网,显示已经连接但是没有网络,手动输入校园网门户( its.pku.edu.cn )也没有用。 使用 windows自带的疑难解答,分析发现dns解析异常。 解决方案 手动配置IPV4的dns。 同学的电脑可以正常连接dns,将同学…...
![](https://img-blog.csdnimg.cn/597f25b84fb743cebd49e7a9e3786216.jpeg)
STM32存储左右互搏 I2C总线读写FRAM MB85RC16
STM32存储左右互搏 I2C总线读写FRAM MB85RC16 在较低容量存储领域,除了EEPROM的使用,还有铁电存储器FRAM的使用,相对于EEPROM, 同样是非易失性存储单元,FRAM支持更高的访问速度, 其主要优点为没有EEPROM持续写操作跨页…...
![](https://www.ngui.cc/images/no-images.jpg)
【typeof instanceof Object.prototype.toString constructor区别】
几个数据类型判断区别 typeofinstanceofObject.prototype.toStringconstructor typeof 它返回的是一个字符串,表示未经过计算的操作数的类型 typeof(undefined) //"undefined"typeof(null) //"object"typeof(100) //"number"typeof…...
![](https://www.ngui.cc/images/no-images.jpg)
ARM Codec要求
文章目录 前言一、驱动1. linux kernel driver (非V4L2驱动)1.1 porting guide1.2 programing guide1.3 CPU占用率统计1.4 memory使用统计(不包含input/output/working buffer) 2. freeRTOS driver2.1 porting guide,驱动所支持freeRTOS版本列表2.2 programing guid…...
![](/images/no-images.jpg)
网站制作旅行社/成都搜索优化整站优化
源码下载地址:http://sourceforge.net/projects/sshpass/ tar -zxvf sshpass-1.05.tar.gzcd sshpass-1.05./configuremake && make install安装完成后输入sshpass出现如下提示即安装成功:sshfs就不多介绍了,它功能是映射远程服务器上…...
![](https://img2018.cnblogs.com/blog/1388713/201905/1388713-20190507204043221-380541709.png)
wordpress用旧的编辑器/品牌广告投放
架构图: 用例图: ER图: 转载于:https://www.cnblogs.com/wpj593780933/p/10828502.html...
![](/images/no-images.jpg)
我想做微商怎么加入/seo和sem分别是什么
唐代灵州的葬俗 杨森翔 2003年春天,在吴忠金星村绿地苑基建工程中出土的大唐吕氏夫人墓志铭上,有如下一段文字:夫人“以太和四年(830年)七月六日終於靈州私第,享年五十有七……其年十月十四日殯於回樂縣東原…...
![](/images/no-images.jpg)
做网站域名后缀选择/外贸软件排行榜
一、前言 智能汽车的发展,无论是传统汽车强调的四化(电动、智能、网联、共享),新造车势力引领的软件驱动汽车(SDV),都奔着更高的技术等级发展,今日的汽车,已经远远超出动…...
![](https://img-blog.csdnimg.cn/5c2737b96cde48c8993e05f2be55f9e7.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAU2hhbGxvd19DYXJs,size_20,color_FFFFFF,t_70,g_se,x_16)
wordpress app 登录注册/友情链接源码
目录 题目描述 思路 正文 分治 代码 题目描述 思路 说实话,我第一眼看到这个题目,一点思路都没有,除了知道二叉树后序遍历遵循"左右根"的遍历方式以外其他的什么都不知道,两眼一抹黑.... 后来看了题解又摸索着自己写,写来写去,都有问题,emmm,看别人写的十分简…...
![](/images/no-images.jpg)
做企业网站开发哪家好/新媒体seo指的是什么
转自:https://blog.csdn.net/qq_32786873/article/details/70173265 https://blog.csdn.net/weixin_41972401/article/details/79885749 说明 这个页面列出了一些常用的命令行启动参数以及对它们的简要说明。说明中括号里的内容为译者注。 为此页1 对于选项页 ( chr…...