目前用在软件交付的主流方法,是将整个应用程序构建,整体集成与测试。当出现无论多么小的修改,都需要回归一个完整的应用程序测试周期。而使用微服务,软件模块作为独立的运行时服务,本身具有良好定义的API。微服务方法可以更快地向应用程序传递较小的增量更改。

要成为微服务,服务必须是:

微服务设计规约:可扩展

微服务必须能够独立,与同一应用程序中的其它服务进行扩展,向上或向下扩展。

此约束表示可以根据负载或其他因素微调应用程序性能、可用性和资源使用情况。

此种约束可以通过不同的方式实现,以流行的系统构建方式,运行微服务的多个无状态实例,包含服务命名,注册和发现机制以及路由请求与负载均衡。

微服务设计规约:可伸缩

微服务在发生故障时不影响应用程序中的其他服务

可伸缩性,也称弹性。表示单个服务实例故障时,应该对应用程序的影响最少。

在微服务中,所有实例的失败应只影响应用程序的单一功能,用户能够继续使用应用程序的其它部分运行不会受到影响。

微服务是一个松散耦合的面向服务的体系结构,具有上下文与边界。具有弹性结构,与其他服务松散耦合,上下文限制服务出现失败之区域。

微服务设计规约-可组合

微服务必须提供统一的接口,且支持服务组合。

微服务的API有特殊的标识,用来表示和操作资源的常用方法,用以描述API模式和API操作支持。REST架构风格的“统一接口”约束也描述了这一方法。

服务组合是SOA的一种设计原则,具有明显的优点,但很少有资料说明如何实现的指导原则。微服务接口设计应该具备组合模式支持,如聚合,链接和更高级别的功能,如缓存,代理与网关。

微服务必须只含高内聚的实体

在软件中,衡量事物是否属于一体是一个重要指标。若模块中的对象和函数都集中在相同的任务上,则称该模块具有高内聚力。内聚力越高,软件越易维护。

微服务只执行单个业务功能,即它的全部组件都应具有高内聚性。这和面向对象设计的单一责任原则是一致的。

开课吧Java:微服务设计遵循的规约有哪些?相关推荐

  1. 主流Java微服务框架有哪些?-开课吧

    本文我们简单聊聊当下主流的3个Java微服务框架,看看各自的特点. 1.Spring and SpringBoot SpringBoot在Java微服务领域绝对是一哥,毫无争议,据说已经占据57%的市 ...

  2. Java 微服务框架选型(Dubbo 和 Spring Cloud?),大厂 HR 如何面试

    写在最前面,我总结出了很多互联网公司的面试题及答案,并整理成了文档,以及各种学习的进阶学习资料,免费分享给大家.扫码加微信好友进[程序员面试学习交流群],免费领取.也欢迎各位一起在群里探讨技术. 微服 ...

  3. 华为18级大牛倾情奉送:分布式服务框架和微服务设计原理实战文档,啃完发现涨薪如此简单

    前言 分布式服务框架不仅仅包含核心的运行时类库,还包括服务划分原则.服务化最佳实践.服务治理.服务监控.服务开发框架等,它是一套完整的解决方案,用来协助应用做服务化改造,以及指导用户如何构建适合自己业 ...

  4. Java 微服务实践

    楔子 目前业界最流行的微服务架构正在或者已被各种规模的互联网公司广泛接受和认可,业已成为互联网开发人员必备技术.无论是互联网.云计算还是大数据,Java平台已成为全栈的生态体系,其重要性几乎不可替代. ...

  5. Java微服务框架一览

    原文:Java Microservices: Code Examples, Tutorials, and More 作者:Angela Stringfellow 翻译:雁惊寒 译者注:本文首先简单介绍 ...

  6. 简明扼要的概述微服务设计原则,深入开发微服务,就从今天开始

    写在前面 领域驱动设计DDD (Domain Driven Design)提出了从业务设计到代码实现一致性的要求,不再对分析模型和实现模型进行区分.也就是说,从代码的结构中我们可以直接理解业务的设计, ...

  7. 【干货】微服务设计的基础知识

    人体是不同系统的组合,其中大多数系统是独立的,并且作为一个整体协同工作.每个系统都有自己的特定功能.所有具有多种其他支持框架的器官构成了一个功能完备的机构.现在,如果应用于软件系统,这就是微服务架构的 ...

  8. Java 微服务框架选型

    Java 微服务框架选型(Dubbo 和 Spring Cloud?) 微服务(Microservices)是一种架构风格,一个大型复杂软件应用由一个或多个微服务组成.系统中的各个微服务可被独立部署, ...

  9. Java 微服务框架选型(Dubbo 和 Spring Cloud?)

    |来源:博客园 |链接:https://www.cnblogs.com/xishuai/archive/2018/04/13/dubbo-and-spring-cloud.html 微服务(Micro ...

最新文章

  1. u盘锁电脑_Win10电脑无法识别U盘?这5步操作就能轻松搞定,收藏备用
  2. CentOS中怎样解压rar文件
  3. 【Nginx】初探 Nginx 架构
  4. shell脚本详解(八)——一键部署自动化装机(PXE无人值守)
  5. OSGi:进入微服务架构的门户
  6. SEO你所不知道的!!SEO资源人脉才是王道
  7. java制作安卓客户端,java做服务器,android干客户端,实现数据传输
  8. 蓝桥杯2016年第七届C/C++省赛B组第一题-煤球数目
  9. 【2019南京网络赛:F】Greedy Sequence(set/线段树 + 思维)
  10. 红包活动竟藏着这么多玩法(附使用技巧)
  11. 中国研发经费投入逼近2万亿,保持两位数增速,企业成为主要力量
  12. 研发主管接私活被辞退,法院判决公司赔偿20.7万元
  13. Console口和Telnet远程登陆
  14. 火车采集器V9入门之网址采集 实例讲解
  15. C++并发编程之线程异步std::packaged_task知识点总结
  16. Unity Gamma Linear Color Space
  17. 极客日报:微信正式宣布开放外部链接;iPhone13预购开启导致苹果官网崩了;特斯拉将向车主提供新版 FSD
  18. DIY BMP类 (接续)
  19. 使用SyncNavigator轻松实现数据库异地同步、断点续传、异构同步
  20. 硬件设计——不一二电路设计(电源电路、接口电路、时钟电路)

热门文章

  1. [转载] Numpy 数学函数及逻辑函数
  2. 聊一聊FPGA的片内资源相关知识
  3. 在centos下安装django
  4. 自由缩放属性-resize(禁止textarea的自由缩放尺寸功能)
  5. XE7 Unit scope names
  6. CPython对象模型:基础
  7. 在Java下连接SQLite数据库
  8. numpy 在机器学习中 常用函数总结
  9. 神经网络-Neural Network 简介
  10. ps切图后 JAVA开发_2018年设计师都在用的PS切图插件--摹客