第4章 集成

news/2024/10/18 3:34:41/

声明,此连续文章为阅读《微服务设计》[英]纽曼(Sam Newman)的读书笔记,旨在记录重点内容和阅读心得,有共读的朋友可以交流书中疑惑。

4.1 寻找理想的集成技术的指导原则
避免服务方修改一个字段就引起消费方的修改
保证API的技术无关性
消费方应该能够很简单的使用服务方提供的服务,提供客户端库的做法会增加耦合。
隐藏内部实现细节
4.2 MusicCorp创建用户接口
4.3 共享数据库
数据库集成(即消费者直接访问数据库)的缺点:表结构直接暴露给所有消费者,维护性差,改了表可能多个消费者都要改、有一天想换成非关系数据库,这样消费者都要改、多个消费者中都包括操作统一表结构的逻辑代码,代码可重复性低,可维护性差。
4.4 同步与异步
服务之间通信同步与异步的选择。
1.请求/响应
2.基于事件,客户端不是发起请求,而是发布一个事件。(没说清楚)
4.5 编排(orchestration)与协同(choreography)
在开始对越来越复杂的逻辑建模时,我们需要处理跨服务业务流程的问题,而使用微服务时这个问题会更加凸显。
MusicCorp创建客户流程

当考虑具体实现时有两种系统设计风格:
1.编排

客户服务作为中心控制点来指导和驱动整个业务流程。
缺点:客户服务承担太多职责,这种方法会导致中心控制点成为“上帝”服务,而与之打交道的其他服务都沦为CRUD的贫血服务。
2.协同

针对请求/响应 方式,可以考虑两种技术RPC和REST.
4.6 远程过程调用
RPC的缺点:客户端与服务端技术耦合、许多RPC框架隐藏远程调用的复杂性,让你可以像调用本地方法一样调用,但是也带来一些问题,网络不可靠的一些因素没有得到处理、脆弱性,接口API发生变化,会引起客户端的代码也要变化。
4.7 REST
https://martinfowler.com/articles/richardsonMaturityModel.html
《REST实战》
4.8 基于事件的异步协作方式
1.技术选择
主要有两个部分需要考虑:微服务发布事件机制和消费者接收事件机制。
RabbitMQ
ATOM
2.异步架构的复杂性
《企业集成模式》
4.9 服务即状态机
状态机设计
4.10 响应式扩展
Reactive extensions
4.11微服务世界中的DRY和代码重用的危险
微服务内部DRY,但是跨服务时引入大量的公共库会导致耦合,因此有些情况下可以适当增加微服务中代码的重复。
4.12 按引用访问
举例,发货之后要给客户发邮件,一种做法是把客户信息发给邮件系统,但是邮件系统在发送之前,这些信息可能发生变化,所以更合理的方式是将客户资源的URI发给邮件系统,邮件系统在发送时再次查询客户服务中的用户信息。
4.13 微服务版本管理
1.避免破坏性修改
客户端代码的高度容错性,比如:客户端读取xml时,可以使用XPath,若xml中字段顺序发生变更不会影响客户端解析。(所谓的“鲁棒性”原则、宽进严出)
2.及早发现破坏性修改
使用消费者驱动的契约来及早的定位这些破坏性修改对消费方的影响。
3.使用语义化的版本管理
4.不同接口共存
5.运行多个版本的同一个服务
4.14 用户界面
为前端服务的后端(BFF)
4.15 与第三方软件集成
使用外观服务来隐藏底层的第三方服务,增强对第三方软件的控制


http://www.ppmy.cn/news/775035.html

相关文章

纽曼皮尔逊准则Matlab实现,matlab 已知门限怎么求虚警概率蒙特卡罗仿真

满意答案 wangxun413 2016.08.05 采纳率:40% 等级:8 已帮助:763人 检测性能的蒙特卡罗仿真 一、实验目的 进一步熟悉蒙特卡洛仿真方法及其在检测性能分析中的应用。 二、实验内容 仿真高斯白噪声中恒定电平检测的性能。 设有两种假设&…

纽曼皮尔逊准则Matlab实现,噪声恒虚警处理电路的计算机仿真

0 引 言 雷达系统的信号检测是在各种噪声和杂波干扰的环境中进行的。视频的回波信号与噪声、杂波一起送到检测器,并在检测器对视频信号进行分级,即设置一个检测门限。如果信号超过该门限,就判决目标存在。显然,门限电平的选择是至关重要的。如图1所示。如果门限设置太高,本…

带有时滞反应扩散方程代码(纽曼条件的)

function drying % 初始化参数 clear; d12;d22; r1;k500000;mmu10.1;alpha1;mmu20.3;A0.2; tau0.4; l30;%区间长度为l*pi N20;%N是tau/h(h为时间上划分的步长) htau/N; K6000;%时间方向计算步数 Th*K;%时间最值为T pKN1;%时间点总数 M100;%Delta{x}为空间上的划分,Mpi/Delta{x…

纽曼皮尔逊准则Matlab实现,纽曼-皮尔逊准则,Neyman Pearson Criterion,在线英语词典,英文翻译,专业英语...

胡安曼纽尔方吉奥(阿根廷) 世界冠军 - 1951, 1954-1957 参加大奖赛次数: 51 赢得分站赛冠军次数: 22 赢得杆位数: 27 很多人都把方吉奥看作是最伟大的车手。在整整七个赛季的f1比赛中(他为了从一场几乎致命的事故中康复而错过了一个赛季),他获得了五次世界总冠军的头…

PicoNeo neo入门教程2 SDK

目前在使用的是Unity XR SDK V2.x, 当前版本2.2.0版本 查看文档,有更新日志。 api接口:API 接口函数 - PICO 开发者平台

MySQL MyBatis部分面试题链接

Mysql运维面试题_51CTO博客_mysql面试题2022 MySQL 精选 60 道面试题(含答案)_mysql_小虾米啊-华为云开发者联盟 MyBatis面试题: Mybatis常见面试题(10个必备面试题)_51CTO博客_mybatis常见面试题 【2021】Mybatis常见面试题总结_51CTO博…

怎么把手机字体改成繁体_如何把手机字体变成繁体 繁体字转换器

安卓手机已root,求教如何把手机字体改成繁体? 请使用以下方法:首先,使用无根软件修改字体。1手机安装LBE安全主机,360安全卫士。2打开软件并选择no root startup。三。安装字体管理器,打开它并选择授权。4改…

简体字---繁体字---网页简体字转繁体字--包教包会

var zh_s = "皑蔼碍爱暗肮昂袄奥坝罢摆败颁板办绊帮绑镑谤剥饱宝报鲍辈背贝钡狈备惫绷逼笔毕毙币痹闭辟边编贬扁变辩辫标鳖别瘪濒滨宾摈饼并拨钵铂駁卜哺补布才财采彩参蚕残惭惨灿苍舱仓沧厕侧册测层诧搀掺蝉馋谗缠鏟产阐颤场嘗长偿肠厂畅钞车彻尘陈衬撑称惩澄诚骋吃痴…