答:分布式的核心就一个字:拆。只要是将一个项目拆分成了多个模块,并将这些模块分开部署,那就算是分布式。
(资料图)
如何拆呢?有两种方式:水平拆分,或垂直拆分(也称为“横向拆分”和“垂直拆分”),具体如下:
水平拆分:根据“分层”的思想进行拆分。例如,可以将一个项目根据“三层架构”拆分成 表示层(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()一下防止内存泄漏。
关键词:
天天时讯:沃尔德:累计回购约86万股,占比0.56%
明冠新材(688560.SH)已耗资1.88亿元回购3.13%股份
每日速看!风趣的近义词是什么(风趣的近义词是什么呀)
秦川集团:举办“走进常州”系列产品推介会
非沪籍上海买房2020_非沪籍上海买房政策
定点描写法
今年以来我国高温日数创62年来新高
打造城市“金边银角” 方寸之美“兜住”百姓幸福生活-每日报道
世界周刊丨美国“毒”病难有尽头
每日精选:无糖饮料中的阿斯巴甜被曝致癌,喝前需了解这些危害!
豆粕期货涨停 带动豆粕ETF领涨
“锌”是男性之王,年过40,多吃3种高锌食物,精力旺身体强壮|天天资讯
7月3日人民币兑美元中间价上调101个基点
全球微头条丨青岛签订山东首笔海洋碳汇交易!“碳”路海洋,更多尝试从青岛启航
环球即时:AI大模型,教育智能硬件新突围点?
健康知识 | 重症中暑很危险 可以这样预防 环球最资讯
世界要闻:两条对接武汉高速同日通车,孝感迈入都市圈“半小时通勤圈”
曝光屡禁不止屡罚不改经营主体
美国非法扩张域外管辖权严重扰乱国际秩序|全球热闻
联通iphone4s用电信卡(联通iphone4s)-当前观察
OPPOK11x,带给消费者4年流畅用机体验 环球今日报
上市时间久的空调能买吗_上市时间
【环球热闻】“港车北上”政策正式实施 日均可单向通关逾万辆次
怎么修改本机ip地址和名字_怎么修改本机ip地址
天天新消息丨又喊口号?中情局长称对华“脱钩”愚蠢,却又声称美国应“去风险”
珠算是什么时候申遗成功,有什么意义_珠算申遗相关内容简介介绍 环球消息
环球看点!清远封闭学校在哪 清远有哪些封闭式学校
环球焦点!高温又双叒叕来了,煤超疯将重现江湖
搜索者2 全球快消息
温网明日开打,中国五将首日出战,美小黑夺首冠,阿新星问鼎|新视野
“最忙乘组”任务结束后首次同框!揭秘“太空出差”那些事儿
人大毕业生盗取全校学生信息建颜值打分网站?校方:正核实,校领导牵头处理 当前要闻
快当爹了!加纳乔甜蜜亲吻女友孕肚,孩子恩佐不久后将出生_世界快资讯
水处理定制化服务专家英普环境IPO,向美国杜邦下属公司采购额占比超四成 世界百事通
老少皆宜的10道家常菜,都是平价菜,却百吃不腻,越吃越过瘾 环球时讯
光大证券:复合铜箔首张订单落地,路线尚有分歧但技术迭代空间广阔
相关新闻