来源:腾讯云 时间:2023-03-17 14:57:55
答:分布式的核心就一个字:拆。只要是将一个项目拆分成了多个模块,并将这些模块分开部署,那就算是分布式。
如何拆呢?有两种方式:水平拆分,或垂直拆分(也称为“横向拆分”和“垂直拆分”),具体如下:
水平拆分:根据“分层”的思想进行拆分。例如,可以将一个项目根据“三层架构”拆分成 表示层(jsp+servlet)、业务逻辑层(service)和数据访问层(dao),然后再分开部署:把表示层部署在服务器A上,把service和dao层部署在服务器B上,然后服务器A和服务器B之间通过dubbo等RPC进行进行整合(在左下角的“阅读原文”里有dubbo的视频课程,可以点击学习),如图所示。
(资料图)
垂直拆分:根据业务进行拆分。例如,可以根据业务逻辑,将“电商项目”拆分成“订单项目”、“用户项目”和“秒杀项目”。显然这三个拆分后的项目,仍然可以作为独立的项目使用。像这种拆分的方法,就成为垂直拆分。
什么是微服务呢?
从名字就能知道,“微服务”就是非常微小的服务。
微服务可以理解为一种非常细粒度的垂直拆分。例如,以上“订单项目”本来就是垂直拆分后的子项目,但实际上“订单项目”还能进一步拆分为“购物项目”、“结算项目”和“售后项目”,如图。
现在看图中的“订单项目”,它完全可以作为一个分布式项目的组成元素,但就不适合作为微服务的组成元素了(因为它还能再拆,而微服务应该是不能再拆的“微小”服务,类似于“原子性”)。
总结:
分布式:拆了就行。
微服务:细粒度的垂直拆分。
答:Java内存有两种常见问题:内存溢出和内存泄漏。
内存溢出好理解,就是JVM内存有限。如果对象太多,JVM内存放不下了,就会内存溢出。
那什么是内存泄漏?首先得明确,GC只会回收那些“不可达”的对象(可以简单理解为,如果一个对象存在着指向它的引用,这个对象就“可达”;如果没有引用指向它,则“不可达”)。
若一个对象是“无用但可达的”,就会造成内存泄漏。
如下代码中,obj的值是null,因此是“无用的”;但同时obj又同时被被list引用,因此是“可达”的,所以此时的obj就会造成内存泄漏。
Object obj = new Object();list.add( obj );obj = null ;
除了上面obj这种内存泄漏的情况以外,在实际开发中最常见的内存泄漏就是打开资源后没有调用close()方法。例如socket、io流等,都需要再最后close()一下防止内存泄漏。
标签:
美国多州连月来发生多宗粮食券(SNAP)被盗窃案,其中单在马里兰州涉案金额已高达100万元。国会议员批评,粮券卡出现安全漏洞,再次证明行政部
近年中国与欧洲各国先后开通“沪伦通”、“中瑞通”等,允许内地企业在欧洲发行全球存托凭证(GDR)。彭博社引述知情人士透露,由于担心冲击A
学生在校,校方和老师应多加照顾。河北一间中学3月12日发生不幸的学生死亡事件。邯郸一间学校一名初三男生被老师罚企,他被罚了近20分钟后,突
涉嫌诈领“联邦薪资保护计划”(PaycheckProtectionProgram,PPP)补助金的加州副州长竞选人科尔.哈里斯(ColeHarris)及其华裔女友辛迪陈(
人工智能朗读:商务部于2023年3月16日(星期四)15时召开例行新闻发布会。商务部办公厅副主任、新闻发言人束珏婷在发布会上就第133届广交会筹
近日,由深圳市教育局、市文化广电旅游体育局主办的“2023年深圳市大中小学生围棋比赛”落袋收官,南山区共派出来自61所中小学的562位学生参赛
CBD作为中国服务业对外开放的前沿和联结国内国际经济活动的枢纽,在增强发展韧性方面进行了一系列卓有成效的创新探索,彰显出强劲的经济韧性、
深受网民喜爱的AV女优三上悠亚刚刚宣布退休,香港男士便有好消息,就是来自香港的素海霖正式以“绘(絵)丽奈”之名出道成为日本AV女优,较
官方媒体朝鲜中央通信社(KCNA)今天指出,朝鲜昨天试射的是其最大型的“火星-17”(Hwasong-17)洲际弹道导弹(ICBM),目的是“强硬回应”正
3月16日,由中国企业评价协会、清华大学房地产研究所、北京中指信息技术研究院主办,北京中指信息技术研究院中国房地产TOP10研究组承办的“202
涉诈领“联邦薪资保护计划”补助金,华裔女想返中探亲被拒_天天新动态
商务部:第133届广交会定于4月15日至5月5日分三期在广州举办
《商务中心区蓝皮书》:中国CBD增强发展韧性创新探索卓有成效 当前报道