栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

微服务框架的介绍,netty架构图

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

微服务框架的介绍,netty架构图

从上图可以看出,所有应用程序都被放到一起,将所有功能都部署在一起,大大减少了部署节点和成本,同时还减少了输入/输出(I/O)的操作,降低了网络通信的成本。此时,用于简化增删改查工作量的数据访问框架(ORM)是影响项目开发的关键,而这种框架被我们成为ORM框架。

存在的问题:

  • 代码耦合,开发维护困难

  • 无法针对不同模块进行针对性优化

  • 无法水平扩展

  • 单点容错率低,并发能力差

[](()2. 垂直拆分(MVC)


当访问量逐渐增大,单一应用ORM框架已经不能满足需求,此时开发人员想到了新的方式解决,将原本的单个应用拆分成互不干扰的几个应用,以提升效率、分散流量压力:

从上图中可以看出,每个应用都是垂直的,因此,也被成为垂直应用框架。在这种情况下,通过增加机器,我们可以把曾经的单一应用系统分解成子模块,分到各个服务器上。每个子模块按照MVC框架进行分层,也就是我们常说的表现层(UI,Web层),业务层(BLL,service层),持久层(DAL,dao层)。

优点:

  • 系统拆分实现了流量分担,解决了并发问题

  • 可以针对不同模块进行优化

  • 方便水平扩展,负载均衡,容错率提高

缺点:

  • 系统间相互独立,在应对复杂的业务场景时,开发和维护的成本增加了

  • 每个应用中会出行公共功能,代码重复量提高了,不利于团队合作

  • 系统的可靠性差,节点的故障会使整个系统出现雪崩效应

  • 系统开发完成后,对其维护困难,在定制化时,修改代码会影响整个系统

[](()3. 分布式服务(RPC)


在特定时期,MVC框架扮演了重要的角色,但是当垂直应用越来越多,重复的代码也原来越多,开发人员开始将核心业务抽取出来,作为一个稳定的服务中心,使前端应用能更快速的响应多变的市场需求。同时开发人员还将许多的公共应用程序接口(API)抽取出来,作为独立的公共服务给调用者调用消费,最终实现服务的共享和重用。

![在这里插入图片描述](https://img-blog.csdnimg.cn/20201208210502406.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L 《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》开源 0x6eTQxMDk5Mg==,size_16,color_FFFFFF,t_70)

RPC框架可以分为三个部分:服务的提供者、消费者、注册中心,RPC通信方式的框架,屏蔽了底层的传输协议(TCP/UDP)、序列化技术(XML/JSON/ProtoBuf)和通信细节。

优点:

  • 将基础服务进行了抽取,系统间相互调用,提高了代码复用和开发效率

缺点:

  • 大量的服务配置,需要管理每个服务的地址,难以维护

  • 服务间的依赖关系十分复杂,难以分清哪个应用要在哪个应用前启动

  • 服务的调用量越来越大,服务的容量难以估计,小服务资源的浪费等问题逐渐显现

[](()4. 流动计算架构(SOA)


SOA (Service-Oriented Architecture) 是一种粗粒度、松耦合,以服务为中心的的架构,它将应用程序的不同功能(服务)通过服务之间定义良好的接口和契约联系起来,接口之间通过定义明确的协议和接口进行通信。相对于RPC,在SOA架构中增加一个调度中心。调度中心可以基于访问压力实时管理集群容量,提高集群利用率。SOA 核心思想是服务是一种可重复的业务,将其经过标准封装达到复用的目的。

大规模系统的框架设计原则就是尽可能的拆分,以达到更好的独立扩展与伸缩、更灵活的部署、更好的隔离和容错、更高的开发效率,而其核心就是分布式。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-O4PkQc8z-1650624570932)(https://img- Java开源项目【ali1024.coding.net/public/P7/Java/git】 blog.csdnimg.cn/20201208210529175.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0x6eTQxMDk5Mg==,size_16,color_FFFFFF,t_70)]

服务治理:

写在最后

作为一名即将求职的程序员,面对一个可能跟近些年非常不同的 2019 年,你的就业机会和风口会出现在哪里?在这种新环境下,工作应该选择大厂还是小公司?已有几年工作经验的老兵,又应该如何保持和提升自身竞争力,转被动为主动?

就目前大环境来看,跳槽成功的难度比往年高很多。一个明显的感受:今年的面试,无论一面还是二面,都很考验Java程序员的技术功底。

最近我整理了一份复习用的面试题及面试高频的考点题及技术点梳理成一份“Java经典面试问题(含答案解析).pdf和一份网上搜集的“Java程序员面试笔试真题库.pdf”(实际上比预期多花了不少精力),包含分布式架构、高可扩展、高性能、高并发、Jvm性能调优、Spring,MyBatis,Nginx源码分析,Redis,ActiveMQ、Mycat、Netty、Kafka、Mysql、Zookeeper、Tomcat、Docker、Dubbo、Nginx等多个知识点高级进阶干货!

由于篇幅有限,为了方便大家观看,这里以图片的形式给大家展示部分的目录和答案截图!

Java经典面试问题(含答案解析)

阿里巴巴技术笔试心得

0933)]

Java经典面试问题(含答案解析)

[外链图片转存中…(img-VqUR7hLt-1650624570933)]

阿里巴巴技术笔试心得

[外链图片转存中…(img-ZmpUt4Ay-1650624570934)]

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/827070.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号