全球资讯:分布式和微服务的区别
时间:2023-03-20 06:04:56 来源:腾讯云
1.分布式和微服务有什么区别呢?
答:分布式的核心就一个字:拆。只要是将一个项目拆分成了多个模块,并将这些模块分开部署,那就算是分布式。
(相关资料图)
如何拆呢?有两种方式:水平拆分,或垂直拆分(也称为“横向拆分”和“垂直拆分”),具体如下:
水平拆分:根据“分层”的思想进行拆分。例如,可以将一个项目根据“三层架构”拆分成 表示层(jsp+servlet)、业务逻辑层(service)和数据访问层(dao),然后再分开部署:把表示层部署在服务器A上,把service和dao层部署在服务器B上,然后服务器A和服务器B之间通过dubbo等RPC进行进行整合(在左下角的“阅读原文”里有dubbo的视频课程,可以点击学习),如图所示。
垂直拆分:根据业务进行拆分。例如,可以根据业务逻辑,将“电商项目”拆分成“订单项目”、“用户项目”和“秒杀项目”。显然这三个拆分后的项目,仍然可以作为独立的项目使用。像这种拆分的方法,就成为垂直拆分。
什么是微服务呢?
从名字就能知道,“微服务”就是非常微小的服务。
微服务可以理解为一种非常细粒度的垂直拆分。例如,以上“订单项目”本来就是垂直拆分后的子项目,但实际上“订单项目”还能进一步拆分为“购物项目”、“结算项目”和“售后项目”,如图。
现在看图中的“订单项目”,它完全可以作为一个分布式项目的组成元素,但就不适合作为微服务的组成元素了(因为它还能再拆,而微服务应该是不能再拆的“微小”服务,类似于“原子性”)。
总结:
分布式:拆了就行。
微服务:细粒度的垂直拆分。
2.Java中不是有GC吗,怎么还有内存泄漏一说?
答:Java内存有两种常见问题:内存溢出和内存泄漏。
内存溢出好理解,就是JVM内存有限。如果对象太多,JVM内存放不下了,就会内存溢出。
那什么是内存泄漏?首先得明确,GC只会回收那些“不可达”的对象(可以简单理解为,如果一个对象存在着指向它的引用,这个对象就“可达”;如果没有引用指向它,则“不可达”)。
若一个对象是“无用但可达的”,就会造成内存泄漏。
如下代码中,obj的值是null,因此是“无用的”;但同时obj又同时被被list引用,因此是“可达”的,所以此时的obj就会造成内存泄漏。
Object obj = new Object();list.add( obj );obj = null ;
除了上面obj这种内存泄漏的情况以外,在实际开发中最常见的内存泄漏就是打开资源后没有调用close()方法。例如socket、io流等,都需要再最后close()一下防止内存泄漏。
标签:
最新文章推荐
- 陕西7名核酸检测阳性外省游客活动轨迹公布
- 万人说新疆 | 棉花朵朵赛白云,阿克苏美出新高度!
- 万人说新疆 | 孙芳红:我在新疆每天过得很充实也很快乐
- 万人说新疆 | 棉农阿卜来提开心地笑了
- 万人说新疆 | 阿迪力的棉花合作社年入300万
- 四川乐山犍为县发生4.3级地震 无人员伤亡
- 西安全面开展排查管控 目前20481人核酸检测结果均阴性
- 陕西7名核检阳性者为一旅行团同行人员 活动轨迹公布
- 西安交大举行2021级本科生迎新会 校长:学习是主动作为之事
- 【母亲河畔的中国】黄河岸边的这个村庄如何打好旅游服务牌?
资讯中心

2022-08-29

2022-06-20

2021-10-18

2021-10-18
热点资讯
-
1
全球资讯:分布式和微服务的区别
-
2
全球热文:酒精和原度酒的区别?
-
3
全球快讯:祝贺!孙颖莎女单夺冠
-
4
世界即时看!欧冠详解:死亡半区让冠军扎堆,拜仁若夺冠将是经典!
-
5
全球观热点:英威达特种纤维 上海有限公司_关于英威达特种纤维 上海有限公司的简介
-
6
视讯!老板用人,不看能力!(深度好文)
-
7
世界热推荐:春光正好,乡村旅游提质升级再出发
-
8
环球观速讯丨褥疮图片大全_褥疮图片
-
9
环球速看:新疆代表在联合国人权理事会第52届会议介绍暴恐危害
-
10
全球短讯!漏水双方起争执 乡贤助力解纠纷
-
11
天天看点:硅谷银行金融集团申请破产保护 将被纳斯达克摘牌
-
12
焦点资讯:美国又现“弗洛伊德之死” 一在押黑人男子遭警察跪压后身亡
-
13
快资讯:空气成分组成比例_空气成分
-
14
环球热门:摔角动态贝基·林奇现场秀再度偷袭夏洛特 现场呼声四起
-
15
全球实时:OPPOA32支持语音唤醒吗
-
16
微头条丨济南高新区首家上海华联超市签约
-
17
【世界报资讯】福州廉租房申请指南
-
18
【全球时快讯】《梦系红楼》主题音乐会19日开唱 带您一起品红楼
-
19
每日热文:起亚召回295,000辆因发动机着火的车辆
-
20
天天时讯:阿根廷央行上调基准利率至78%