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

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


640?wx_fmt=png

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


640?wx_fmt=gif1

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


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


640?wx_fmt=gif2

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


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

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

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

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

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


640?wx_fmt=gif3

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


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


640?wx_fmt=gif4

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


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

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


640?wx_fmt=gif5

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该怎么办?网友的回答让我笑翻


640?wx_fmt=gif点击“阅读原文”,打开 CSDN App 阅读更贴心!


640?wx_fmt=png喜欢就点击“好看”吧!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/524957.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

全网最细之N种内部类详细讲解

package com.wuming.oop.demo10;public class Outer {private int id10;public void out(){System.out.println("这是外部类的方法");}public class Inner{//如class前加static,id报红,因为静态的先加载,即静态的无法访问非静态的p…

BugkuCTF-MISC题有黑白棋的棋盘

下载了三个加密的zip压缩文件 其里一个名为4easynum.zip,很明显提示密码是四位数,爆破得到7760 打开得到一个图片和文本: 图片解出来是棋盘的压缩包密码 棋盘是flag的密码 题目描述也提示了,这个是古精灵语密码 对照得到棋盘的压…

C语言 指针声明和定义 - C语言零基础入门教程

目录 一.指针简介 1.内存2.内存地址3.指针声明 二.指针类型三.声明并初始化一个指针 1.声明指针并直接初始化 – 推荐2.先声明指针在初始化 – 不推荐 四.查看指针地址和指针的值五.NULL 指针 – 空指针六.重点总结七.猜你喜欢 零基础 C/C 学习路线推荐 : C/C 学习目录 >&g…

有问有答 | AWS使用精华问答,带您开启 AWS 上的云计算之旅!

戳蓝字“CSDN云计算”关注我们哦!AWS作为业界领先的云服务提供商,提供多种多样的高可靠性服务。那么究竟该如何使用AWS呢?今天的有问有答栏目,将带您开启 AWS 上的云计算之旅!1Q:请问RDS相较自建MySQL on E…

异常之详解

定义:软件运行过程中,遇到输入不符合要求,程序打不开文件(文件可能不存在或格式不对),空指针,内存或硬盘满了,网络连接失败,非法参数等等这些异常问题,称为异…

C语言 指针 p++ / p-- - C语言零基础入门教程

目录 一.变量 i/i–二.指针 p/p– 1.通过下标访问数组元素2.通过指针偏移访问数组元素 三.猜你喜欢 零基础 C/C 学习路线推荐 : C/C 学习目录 >> C 语言基础入门 一.变量 i/i– 在前面的文章 自加自减运算符( i /i ) 中介绍了关于变量自增和自减的运算,举个…

BugkuCTF-MISC题又一张图片,还单纯吗

下载文件得到一张图片file.jpg 以010editor打开图片没有flag 以binwalk: 发现没有分离成功 以foremost: 生成file文件夹 得到flag

要闻君说:5G手机真的来了?TCL转型科技企业!鹅厂云部门发布态势报告, DDoS攻击正式进入Tb时代!天上“跑”起出租车?...

关注并标星星CSDN云计算每周三次,打卡即read更快、更全了解泛云圈精彩newsgo go go 图片来自腾讯《一线》岁末年初,真是一波“内部调整热”。要闻君得知,联想集团执行副总裁兼中国区总裁刘军选择在晚上发布了一封内部邮件,至此中国…

C语言 *p++/*(p)++/*(p++)/*p++ - C语言零基础入门教程

目录 一.简介二.*p三.* p/ *p四.* (p)与*(p)五.猜你喜欢 零基础 C/C 学习路线推荐 : C/C 学习目录 >> C 语言基础入门 一.简介 *p/*(p)/_(p)/_p运算规律: 1.如果 *和/--都在指针变量的左边,结合方向为从右到左;2.如果 *和/--分别在指针变量的左…

BugkuCTF-MISC题这是一张单纯的图片

图片隐写: 第一步:下载好图片,010editor打开图片 第二步:仔细观察,你会发现结尾处一栏出现了像unicode的编码。所以优先考虑是unicode编码。 复制这段unicode编码使用在线转码工具进行解码,找到flag&…

C语言 使用指针遍历数组 - C语言零基础入门教程

目录 一.使用数组下标遍历数组 1.计算数组元素个数2.通过下标遍历数组 二.使用数组首地址偏移遍历数组三.使用指针遍历数组四.猜你喜欢 零基础 C/C 学习路线推荐 : C/C 学习目录 >> C 语言基础入门 一.使用数组下标遍历数组 数组中的每个元素都有一个序号,这…

2018,这一年的腾讯优图,我们总结一下!

戳蓝字“CSDN云计算”关注我们哦!2018,腾讯年满20,恰逢弱冠;2018,巨头持续布局AI,可谓“落地生花”的一年。毋庸置疑,腾讯也“玩”AI,最具代表性的,就是“玩出”了三大实…

BugkuCTF-MISC题只有黑棋的棋盘(writeup)

手动分离压缩包注意:zip压缩包文件头格式为504B0304,之间包含504B0102,文件以504B0506****结尾,注意这类格式。 解题流程 题目是1个压缩包,还有提示:动手修复。 1.先把压缩包解压,得到图片和…

js之讲解

1.啥时js 脚本语言 2.基本使用及HelloWorld <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title><!-- js代码&#xff0c;也可以放入body中--> <!-- <script>…

C语言 指针和数组区别 - C语言零基础入门教程

目录 一.前言二.指针和数组区别 1.通过 sizeof 获取大小 a.计算数组大小b.计算指针大小 2.指针和数组赋值方式不同 a.指针赋值b.数组赋值 3.指针是指针变量&#xff0c;数组是指针常量 三.猜你喜欢 零基础 C/C 学习路线推荐 : C/C 学习目录 >> C 语言基础入门 一.前言 …

AI时代的交换机什么样?华为CloudEngine 16800告诉你!

[中国&#xff0c;北京&#xff0c;2019年1月9日] “网络新引擎AI赢未来”华为网络春季新品发布会在北京顺利召开&#xff0c;华为发布了业界首款面向AI时代的数据中心交换机CloudEngine 16800&#xff0c;定义了AI时代数据中心交换机的三大特征&#xff0c;创新性地引入AI技术…

BugkuCTF-MISC题蜘蛛侠

下载附件 好几个加密文件&#xff0c;注释部分给出密码的提示 这个是苏州码子&#xff0c;〡 〢 〣 〤 〥 〦 〧 〨 〩 十分别对应1-10 压缩包密码是肆肆壹拾陆玖玖捌拾壹&#xff0c;根据hint.txt得知需要根据加密脚本&#xff0c;写出解密脚本得到file.jpg key.jpg数据被p…

C语言 指针数组 - C语言零基础入门教程

目录 一.简介 1.数组2.指针3.指针和数组区别 二.指针数组三.猜你喜欢 零基础 C/C 学习路线推荐 : C/C 学习目录 >> C 语言基础入门 一.简介 1.数组 数组中的每个元素都有一个序号&#xff0c;这个序号从 0 开始&#xff0c;称为下标 index&#xff0c;例如&#xff0c…

BugkuCTF-MISC题做个游戏

补充&#xff1a; &#xff08;一&#xff09; JAR 文件就是 Java Archive File&#xff0c;顾名思意&#xff0c;它的应用是与 Java 息息相关的&#xff0c;是 Java 的一类文档格式。JAR 文件非常类似 ZIP 文件——准确的说&#xff0c;它就是 ZIP 文件&#xff0c;所以叫它…