戳蓝字“CSDN云计算”关注我们哦!

过去几年来,“微服务架构”这个术语出现了,它描述了一种将软件应用程序设计为可独立部署的服务套件的特定方式。近几年微服务吵的也比较火,那么为什么微服务会受到这么多的关注?今天,我们就来看看有关于微服务的精华问答吧

1

Q:微服务的主要作用是什么?

A:微服务被用来创建一些复杂的系统,这些系统由小型且自治的服务构成,而这些服务通过各自的API接口进行数据交换,同时有相应的有界上下文明确它们的范围,一定程度来说,微服务就是面向对象编程方法所期待的东西。

2

Q:微服务应该如何拆分?

A:服务拆分有3个层次:

第一,是把技术性功能拆分出来比如,短信服务、邮件服务;这是最简单的没有大的难点;无非是接口管理优化一下。

第二,是把并行的无交集的业务流拆分出来;如果业务库拆分了,则难点是跨库表连接如何处理。一般只能把需要连接的数据进行同步。

第三,是将某业务流中串行的业务节点拆分出来;业务节点分别在不同jvm中运行,则难点是分布式事物。

跨jvm的分布式事物,可以用micro-datasource解决。

3

Q:如何把应用分成若干个小服务?

A:第一,按业务功能分解,将应用分解成能产生业务价值的最小单元。第二,对于跨多个业务的类(如订单会被订单管理、订单交付多个服务用到)用领域驱动设计(DDD),使用子域和边界上下文的概念来着手解决。

4

Q:在微服务, 前后端分离的场景下,服务端的设计的接口应该是复合性的接口还是原子性的接口?例如: 一个web首页, 需要展示帖子列表、推荐帖子、活动信息等多个模块,那么服务端应该分别提供 查询帖子列表,查询推荐帖子列表,查询活动信息列表等多个原子性接口。还是给前端提供一个复合接口, 一次性返回所有数据?

A:在微服务的系统架构体系内,倡导的是解耦!从后端的角度看,业务系统的设计(或者说数据库设计)应该遵循领域建模的原则,给前端提供的接口,无非是对模型(表)的CRUD,那么对于活动信息、帖子信息等,明显不属于一个领域模型。如果做耦合会不利于后面的

业务扩展。http接口的定义要与实际的交互相结合,在满足架构设计的原则下,也需要和前端进行沟通,一起制定。

5

Q:现在有个微服务项目,项目框架搭建中,多个微服务创建的过程中会用到一些spring boot常用的依赖,比如spring-boot-starter-web,spring-cloud-starter-eureka-server等必须的依赖,难道每个服务的pom文件中都要有这样的依赖吗,如果每个pom文件都这样,后期jar升级是不是很麻烦,于是做了一个共通的jar,把所需要的共通依赖加载进来,可是后面发现好像会有jar冲突的现象,不知道有什么好的解决方案?

A:第一步,创建一个maven工程作为父工程(此工程放子工程公共依赖);第二步,把Packaging标签改为pom并保存;第三步,点击Overview视图找到Modules标签,标签右边有两个按钮一个Add,一个Create);第四步,点击Create标签创建子工程,子工程自动依赖父工程pom,子工程特殊依赖只要在子工程pom加入即可。

----------------    --------------

1.微信群:

添加小编微信:color_ld,备注“进群+姓名+公司职位”即可,加入【云计算学习交流群】,和志同道合的朋友们共同打卡学习!

2.征稿:

投稿邮箱:liudan@csdn.net;微信号:color_ld。请备注投稿+姓名+公司职位。

推荐阅读

  • 云计算到底是怎么玩的?

  • 企业云存储建设之路

  • AI in 美团:吃喝玩乐背后的黑科技

  • 开除“野狗”式程序员,团队的效率提高了

  • Windows 成“弃子”,Linux 终上位?

  • 可替代Android的6大开源移动操作系统

  • 程序员求助:被领导强行要求写Bug该怎么办?网友的回答让我笑翻

点击“阅读原文”,打开 CSDN App 阅读更贴心!

喜欢就点击“好看”吧!

有问有答 | 你真的理解微服务架构吗?相关推荐

  1. 一文理解微服务架构下的系统可用性如何保证?

    从2005年Peter Rodgers博士提出微web服务,到2014年ThoughtWorks首席科学家Martin Fowler与James Lewis共同提出微服务概念至今已多年,这期间也是互联 ...

  2. 一篇文章带你快速理解微服务架构,由浅入深带你走进微服务架构的核心

    戳蓝字"CSDN云计算"关注我们哦! 文章来自:Java和Android架构 什么是微服务 首先微服务并没有一个官方的定义,想要直接描述微服务比较困难,我们可以通过对比传统WEB应 ...

  3. 微服务架构的深入理解-总结的很好

    微服务架构 目录 一.微服务架构介绍 二.出现和发展 三.传统开发模式和微服务的区别 四.微服务的具体特征 五.SOA和微服务的区别 六.如何具体实践微服务 七.常见的微服务设计模式和应用 八.微服务 ...

  4. 基于Spring Boot和Spring Cloud实现微服务架构学习--转

    原文地址:http://blog.csdn.net/enweitech/article/details/52582918 看了几周spring相关框架的书籍和官方demo,是时候开始总结下这中间的学习 ...

  5. 基于 Spring Boot 和 Spring Cloud 实现微服务架构

    前言 首先,最想说的是,当你要学习一套最新的技术时,官网的英文文档是学习的最佳渠道.因为网上流传的多数资料是官网翻译而来,很多描述的重点也都偏向于作者自身碰到的问题,这样就很容易让你理解和操作出现偏差 ...

  6. 基于Spring Boot和Spring Cloud实现微服务架构学习

    目录 Spring 顶级框架 Spring cloud子项目 WHAT - 什么是微服务 微服务简介 微服务的具体特征 SOA vs Microservice HOW - 怎么具体实践微服务 客户端如 ...

  7. 基于Spring Boot和Spring Cloud实现微服务架构

    |来源:龙果学院 |链接:https://www.roncoo.com/article/detail/132858 前言: 首先,最想说的是,当你要学习一套最新的技术时,官网的英文文档是学习的最佳渠道 ...

  8. 有位哥们坚持不用微服务架构,被老板踢出了群聊···

    有个哥们坚持说不用微服务,说也可以把系统功能分模块化部署在不同的机器,只不过每个模块有可能需要一个nginx,可是实践之后发现,模块多了,nginx也就多了,那么nginx的配置和维护nginx就更麻 ...

  9. 微服务架构最强讲解,通俗易懂,写得太好了!

    作者:老_张 来源:www.cnblogs.com/imyalost/p/6792724.html 一.微服务架构介绍 微服务架构(Microservice Architecture)是一种架构概念, ...

最新文章

  1. nsqjs客户端的部署
  2. flask 与layui冲突
  3. 设计模式 (3) : 单例模式的几种方法
  4. 剑指offer 回溯法 面试题12 矩阵中的路径 面试题13 机器人的运动范围
  5. python 复制文件并重命名_好书推荐 | Python 如此神奇,让繁琐工作自动化
  6. MyEclipseWeb项目配置
  7. RabbitMQ配置文件
  8. 【MySQL】数据库事务处理---MySQL
  9. 力扣 二叉搜索树的最小绝对差
  10. Web服务器Nginx多方位优化策略
  11. php启动端口修改,PHP_启动服务端口报错
  12. 情感计算在淘宝UGC的应用
  13. 家庭记账本开发记录(4)
  14. 计算机怎么接入外接键盘,无线键盘怎么连接电脑 享受无线惬意生活【图文】...
  15. 瞬态抑制二极管 tvs 二极管参数选型
  16. 解压ubi文件_挂载ubi根文件系统
  17. java 图片标注_怎么用java做一个图像细胞的标注测试的工具?,实现图片放大,框图,定位坐标?...
  18. 浙江省软考报名时间成绩查询浙江省教育考试院浙江省人事考试网报名入口
  19. 【烈日炎炎战后端】计算机网络(4.2万字)
  20. Prometheus 监控案例详解

热门文章

  1. 双用户windows linux系统,Windows与Linux合二为一?终于能在windows上运行Linux了!
  2. gdb 调试_GDB调试指南-源码查看
  3. 施一公:培养本科生比培养博士生要难
  4. AlphaFold2立功!清华团队用深度学习增强新冠抗体,创AI里程碑
  5. 【先生】丘成桐:中国人可以做世界一流学者
  6. 新晋图灵奖得主Jeff Ullman受质疑,反对者:他享受了不该享受的荣誉
  7. 功败垂成的王安石是大宋最后的体面
  8. ACM 2018 Fellow名单公布:李飞飞等多位华人入选,无国内成员
  9. 天下为公:TCP堵塞控制
  10. C++:构造函数和析构函数能否为虚函数