分布式服务架构诞生背景:

在一个不断发展的大型应用中,新的业务需求和功能不断增加,技术也在不断演进,不同团队构建的功能子系统采用的技术架构五花八门,子系统之间的开发、部署和运维模式也存在较大差异。如果企业内部没有统一的服务框架进行技术层面的拉通,开发和运维效率都将受到很大制约。

传统垂直架构改造的核心就是要对应用进行服务化,服务化改造用到核心技术就是分布式服务框架。

分布式服务:

分布式服务顾名思义服务是分散部署在不同的机器上的,一个服务可能负责几个功能,是一种面向SOA架构的,服务之间也是通过rpc来交互或者是webservice来交互的。逻辑架构设计完后就该做物理架构设计,系统应用部署在超过一台服务器或虚拟机上,且各分开部署的部分彼此通过各种通讯协议交互信息,就可算作分布式部署,生产环境下的微服务肯定是分布式部署的,分布式部署的应用不一定是微服务架构的,比如集群部署,它是把相同应用复制到不同服务器上,但是逻辑功能上还是单体应用。

分布式服务架构与微服务的区别:

  1. 分布式服务架构强调的是服务化以及服务的分散化,微服务则更强调服务的专业化和精细分工;从实践的角度来看,微服务架构通常是分布式服务架构,反之则未必成立。所以,选择微服务通常意味着需要解决分布式架构的各种难题。
  2. 微服务相比分布式服务来说,它的粒度更小,服务之间耦合度更低,由于每个微服务都由独立的小团队负责,因此它敏捷性更高,分布式服务最后都会向微服务架构演化,这是一种趋势, 不过服务微服务化后带来的挑战也是显而易见的,例如服务粒度小,数量大,后期运维将会很难。

服务化架构演进图:

MVC:当业务规模很小时,将所有都部署在同一个进程中,通过双机或者前置负载均衡器实现负载分流;此时,用于分离前后台逻辑的MVC架构是关键。

RPC:当垂直应用越来越多,应用之间交互不可避免,将核心和公共业务抽取出来,作为独立的服务,实现前后台逻辑分离,此时,用于提高业务复用及拆分的RPC框架是关键。

SOA:随着业务发展,服务数量愈来愈多,服务生命周期管控和运行状态的治理成为瓶颈,此时用于提升服务质量的SOA服务治理是关键。

微服务:随着敏捷开发、持续交付、DevOps理论的发展和实践,以及基于Docker等轻量级容器(LXC)部署应用和服务的成熟,微服务架构开始流行,逐渐成为应用架构的未来演进方向。通过服务的原子化拆分,以及微服务的独立打包、部署和升级,小团队敏捷交付,应用的交付周期将缩短,运维成本也将大幅下降。

应用从集中式到分布式:

对于集中式的应用,当业务和功能越来越多为应付大流量、高并发的用户访问问题,只能通过增加硬件来满足应用的低延时和高吞吐量。

利用硬件进行扩容只能暂时顶住冲击,但是遇到棘手问题将无法只是扩容这么简单:

(1)业务不断发展
(2)代码复用是难题
(3)敏捷持续交付面临巨大挑战

解决此类问题的有效方案就是进行横向与纵向的拆分:

纵向拆分:根据业务特性将应用拆分,不同业务模块独立部署。

横向拆分:将核心、公共业务拆分出来,通过分布式服务框架对业务进行服务化,消费者提供标准的契约来消费这些服务。服务提供者独立打包、部署和演进,与消费者解耦。

服务治理:

使用RPC服务框架对业务进行拆分之后,随着服务数增多,就需要进行服务治理,有效管控服务,提升服务运行期质量,防止业务服务代码架构腐化。

分布式服务框架:

Dubbo、HSF、Coral Service等。

原文链接:https://blog.csdn.net/qq_41723615/article/details/90205947

hsf 架构_java分布服务:我打赌,没人可以这么精短的讲出分布服务架构吧相关推荐

  1. 分布java开发_java分布服务:我打赌,没人可以这么精短的讲出分布服务架构吧...

    分布式服务架构诞生背景: 在一个不断发展的大型应用中,新的业务需求和功能不断增加,技术也在不断演进,不同团队构建的功能子系统采用的技术架构五花八门,子系统之间的开发.部署和运维模式也存在较大差异.如果 ...

  2. 计算机总是跳出交互式检测,交互式服务检测,教您如何解决电脑总是弹出交互式服务检测...

    电脑总是会弹出交互式服务检测窗口,无法关掉,只能"点击稍后提醒我",但一会儿又会提醒,这让人感觉很烦.其实,只要在系统服务里将Interactive Services Detect ...

  3. IT行业35岁以后就真的没人要了?

    昨天跟几个同事聊天的时候,突然谈到程序员的转业问题,他们说IT行业35岁以后就没人要了.说实话,这个意见我不敢苟同!我奇怪为什么在IT行业35岁就不能被接受了? 是世人的偏见吗? 还是? 从一个人的成 ...

  4. Spring Cloud Alibaba 分布式微服务高并发数据平台化(中台)思想+多租户saas企业开发架构技术选型和设计方案

    基于Spring Cloud Alibaba 分布式微服务高并发数据平台化(中台)思想+多租户saas设计的企业开发架构,支持源码二次开发.支持其他业务系统集成.集中式应用权限管理.支持拓展其他任意子 ...

  5. 支付宝架构有多牛?还没看完我就跪了...

    点击上方"Java基基",选择"设为星标" 做积极的人,而不是积极废人! 每天 14:00 更新文章,每天掉亿点点头发... 源码精品专栏 原创 | Java ...

  6. 【Elasticsearch】在 Elastic Cloud 上的 Elasticsearch 服务中,如何针对日志和指标用例确定热温架构的规模

    1.概述 转载:在 Elastic Cloud 上的 Elasticsearch 服务中,如何针对日志和指标用例确定热温架构的规模 主要是需要翻墙,比较麻烦. 希望深入了解 Amazon Elasti ...

  7. mvc三层架构_Java架构-代码分层的设计之道

    分层思想,是应用系统最常见的一种架构模式,我们会将系统横向切割,根据业务职责划分.MVC 三层架构就是非常典型架构模式,划分的目的是规划软件系统的逻辑结构便于开发维护.MVC:英文即 Model-Vi ...

  8. php微服务架构设计模式,《微服务架构设计模式》读书笔记---第十一章:开发面向生产环境的微服务应用...

    为了部署到生产环境中,需要考虑三个关键的质量属性:安全性,可配置性和可观测性. 开发安全的服务 需要实现安全性的四个方面: 身份验证. 访问授权.验证是否允许访问主体对指定数据完成请求的操作. 审计. ...

  9. php java 架构_JAVA和PHP到底谁才是老大?

    原标题:JAVA和PHP到底谁才是老大? 大家还记得PHP和JAVA的那些梗吗?有一天JAVA说我是世界上最好的语言!!!啦啦啦啦!我是老大,所有的编程语言都给我靠边站,激动!学习了JAVA的孩子们心 ...

最新文章

  1. 目标检测--Focal Loss for Dense Object Detection
  2. 徒劳的对抗——如何做好极客的老婆(灵感来源于《你就是极客》)
  3. 使用 wxImage 为 OpenGL 加载纹理
  4. Nginx全局块的其他配置指令
  5. Get data from file(xxx.png) failed!
  6. c语言金箍棒答案,《西游记》阅读测试题(带答案)
  7. android 设置view最大高度,android-在RecyclerView上设置最大高度
  8. nacicat for mysql查询_navicat for mysql怎么用
  9. 牛逼,Java中表达式引擎工具就用它!建议收藏,一定用的到!!
  10. 设置mysql表名不区分大小写
  11. 趣学 C 语言(六)—— 结构和联合
  12. python编程语言图解_Python程序运行原理图文解析
  13. Android Studio GPX文件解析显示地图轨迹和海拔示意(模拟沿轨迹前进)
  14. 如果编程语言是一门武功绝学
  15. 搜狗云输入法,实现原理.
  16. Python使用Win32和天行机器人API实现微信自动聊天机器人(自动敷衍机器人)
  17. SSL双向认证和单向认证原理
  18. 漫画趣解Linux内核
  19. IDEA 2018.3.3 有效期至 2100
  20. 【阅读论文】博-自动化眼底图像分析技术可筛查糖尿病患者的视网膜疾病--第二章

热门文章

  1. linux中使用ssh或scp时如何跳过RSA key fingerprint输入yes/no
  2. this指针的用法详解
  3. 【图像】直方图均衡化
  4. break stop java_在Java中使用break退出循环是不好的做法吗?
  5. dev c++怎么调试_「正点原子NANO STM32开发板资料连载」第十八章 USMART 调试组件...
  6. 二维数组的对角搜索C++
  7. 计算机科学最重要的32个算法
  8. Asp.net常用技巧
  9. 如何编写一个Jquery插件
  10. jQuery中eq和get的区别