首页
学习
活动
专区
圈层
工具
发布

服务化最佳实践

一、分包分发 建议将服务接口、服务模型、服务异常等均放在 API 包中,因为服务模型和异常也是 API 的一部分,这样做也符合分包原则:重用发布等价原则(REP),共同重用原则(CRP)。...二、接口粒度 接口粒度:服务接口尽可能大粒度,每个服务方法应代表一个功能,而不是某功能的一个步骤,否则将面临分布式事务问题。也就是说同一个操作功能场景尽可能囊括到一个服务里,减少调用关联方。...三、服务版本 如果可能,有必要细粒度版本化到服务接口级别,以更好的控制服务迭代升级。 建议使用两位版本号,因为第三位版本号通常表示兼容升级,只有不兼容时才需要变更服务版本。...如果是在返回值中用了 Enum,并新增了 Enum 值,建议先升级服务消费方,这样服务提供方不会返回新值。...如果是在传入参数中用了 Enum,并新增了 Enum 值,建议先升级服务提供方,这样服务消费方不会传入新值。

83520
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    微服务最佳实践

    微服务最佳实践转载请注明来源:https://janrs.com/5s0t微服务架构是一种进化模式,它从根本上改变了服务器端代码的开发和管理方式。...但是,此模式具有固有的特定复杂性,可以通过使用某些最佳实践来减轻这种复杂性。众所周知,微服务设计对现代架构的网络弹性有直接影响。...在本文中,我们将讨论基本的微服务最佳实践,如果您想实现一个没有极端架构复杂性的高效微服务生态系统,您应该考虑这些最佳实践。 所以,事不宜迟,让我们开始吧。...-- O’reilly我们可以说这是构建良好架构设计的最佳和最基本原则之一,因为它表示微服务、模块、类、子系统或功能不应有多种更改原因。...我希望您觉得这篇文章有用,并且您将遵循这些微服务的最佳实践,最终得到一个独立的、松散耦合的系统,以便从这种架构中获益。***转载请注明来源:https://janrs.com/5s0t

    43320

    移动 web 最佳实践(干货长文)

    作者:mucking| 来源:掘金 https://juejin.im/post/5d759f706fb9a06afa32adec 笔者在公司用 web 技术开发移动端应用已经有一年多的时间了,开始主要以...好了废话不多说,先亮下这个库的 GitHub 地址,后面还会不断完善,欢迎 star: mobile-web-best-practice[2] 移动端 web 最佳实践,基于 vue-cli3[3] 搭建的...(SSR),即从服务端生成组装好的完整静态 html 发送到浏览器进行展示,但配置较为复杂,一般都会借助框架,比如 vue 的 nuxt.js[45],react 的 next[46]。...不过选择 Externals 还是需要一个靠谱的 CDN 服务的。 本项目选择的是 Externals,各位可根据项目需求选择不同的方案。...将服务响应的 cookie,持久化到本地,在下次 webview 启动时,读取本地的 cookie 值,手动再去通过 native 往 webview 写入。

    3.1K61

    Kubernetes 微服务最佳实践

    thiscute.world/posts/kubernetes-best-practices/ 本文主要介绍我个人在使用 Kubernetes 的过程中,总结出的一套「Kubernetes 配置」,是我个人的「最佳实践...这份文档需要一定的 Kubernetes 基础才能理解,而且如果没有过实践经验的话,看上去可能会比较枯燥。...而有过实践经验的大佬,可能会跟我有不同的见解,欢迎各路大佬评论~ 首先,这里给出一些本文遵守的前提,这些前提只是契合我遇到的场景,可灵活变通: 这里只讨论无状态服务,有状态服务不在讨论范围内 我们不使用...解决方法: 最佳解决方案:使用绝对度量指标,而非百分比。 方法一:针对每个服务的 CPU 使用情况,为每个服务的 sidecar 设置不同的 requests/limits....最佳实践 Deployment + HPA + PodDisruptionBudget 一般而言,一个服务的每个版本,都应该包含如下三个资源: Deployment: 管理服务自身的 Pods 嘛 HPA

    1.3K30

    Web图像组件设计的最佳实践

    大家好,我是 ConardLi,网页中的图片处理一直是 Web 开发的一大挑战,今天跟大家来一起看看 Next.js 中的 Image 组件,我觉得这个组件的设计有很多值得借鉴的地方,可以作为图片组件设计的最佳实践...英文原文在这:https://web.dev/image-component/ 本文中会涉及一些网页性能指标,没有了解过的同学可以先看一下我这篇文章: 解读新一代 Web 性能体验和质量指标 网页中的图像带来的主要问题和优化方向...作为网页最佳实践检查中的的一部分,Lighthouse 列出了很多种优化图片加载的建议,比如下面这几点: 未指定大小的图片会降低 CLS 未指定宽高的图片会导致布局的不稳定并导致布局偏移指标 (CLS)...图片优化的主要挑战 在上面我们已经把主要问题和优化方向都列出来了,事实上,由于一些问题,并不是所有的网站都能作出这些优化,比如: 优先事项:Web 开发者可能通常更倾向于关注代码、JavaScript...Image组件的最佳实践 在过去的一年里,我们使用 Next.js 框架设计和实现了 Image组件。

    2.2K20

    微服务日志体系最佳实践

    当下,微服务已经不是一个新奇的名词,微服务技术体系的运用,让我们能快速、独立的实现服务的开发、测试、及交付部署,耦合度越来越低,但同时也带来一些复杂度的问题,如服务链路越来越长,服务系统间交互越来越频繁...而系统日志成为我们发现异常、排查异常的唯一切入点,如何设计我们的微服务日志体系,或者说什么样的日志体系更能便于我们监控、排查异常?以下是我总结的一些日志体系最佳实践,但愿能帮助到一些有困惑的同学。...如此,那么我们的消息发送成功、消息消费成功、服务请求成功都可以用“00”表示。我们一般用“00”表示成功,“01”表示失败,“03”表示服务请求超时,“04”表示服务路由失败。...而监控,是你发现异常的最佳方案,你不可能24小时盯着服务器的日志,你非常人,咱就不说了。...图片图片以上是我的一些微服务日志体系的浅显实践经验,大家可按需采纳。

    1.3K91

    .NET微服务最佳实践eShopOnContainers

    •除了支持传统的Web前端和SPA Web前端,该应用程序还必须支持不同系统的移动客户端应用程序。•支持跨平台托管和跨平台开发。 ?...Web或移动客户端通过HTTPS访问ASP.NET Core MVC服务器程序或API网关程序。 API网关具有多种优势,例如将后端服务与各个前端客户端解耦,并提供更好的安全性。...该应用程序还利用了BFF模式(服务于前端的后端),该模式建议为每个前端客户端创建单独的API网关。 上面的体系图演示了基于请求是来自Web客户端还是来自移动客户端的API网关。...这些独立的服务都有其自己的持久化存储,没有可以与所有服务交互的单个主数据存储, 服务之间的协调和通信是通过消息总线来完成的。 每个微服务根据其各自的需求独立设计。...该代码被组织为支持不同的微服务,并且在每个微服务中,代码分为领域逻辑、基础设施以及用户界面/服务端点。

    98730

    服务网格的最佳实践

    微服务发展的这几年,新的技术和概念层出不穷,这些技术的引入本质上都是在围绕服务稳定性和业务开发效率提升,最近两年服务网格越来越被广大的微服务用户所认知。...迁移应用到服务网格中 服务网格 服务网格是用于处理服务间通信的专用基础设施层,它负责通过包含现代云原生应用程序的复杂服务拓扑来可靠地传递请求。...其他的服务治理能力还包括了故障注入、服务鉴权、服务超时、熔断等,可以通过写入对应的规则来完成,目前Istio也没有提供非常好使用的白屏化服务治理界面,在 EDAS/MSE 中提供白屏界面操作如服务鉴权、...服务查询、离群摘除、金丝雀发布等,保证在操作过程中流量不丢失,路由规则的操作需要遵循以下几个原则: 1、通常使用服务网格服务治理的最佳实践方式是从一开始就为每一个服务创建具有默认路由的 VirtualService...双模微服务治理 互通的问题通过对接注册中心的方式解决了,那异构框架的服务治理则通过 MSE 来支持,MSE 的服务治理中心可以对接 Java 服务,同时也可以支持服务网格的服务。 ?

    1.1K20

    微服务最佳实践 -- 如何拆分

    服务粒度 最好是基于团队的规模进行拆分,以1个微服务由3个人开发最佳,例如团队开始有6个人,就可以划分为2个微服务,随着业务的发展,功能越来越多,团队扩充到了12个人,就可以把原来的2个拆为4个。...基于可扩展拆分 将系统中的业务模块按照稳定性排序,将已经成熟和改动不大的服务拆分为稳定服务,将经常变化和迭代的服务拆分为变动服务。...稳定服务的粒度可以粗一些,即使逻辑上关联不强的也可以放在一个服务中,例如日志服务、升级服务放在一个子系统中。 变动服务的粒度可以细一些,但要注意服务的数量。...基于可靠性拆分 将系统中的 可靠性要求高的核心服务 和 可靠性要求低的非核心服务 拆分开来,然后重点保证核心服务的高可用。...好处: 避免非核心服务故障影响核心服务 例如,日志上报是非核心服务,某一段时间内上报量可能会非常大,如果没有拆分出来,那么就可能严重影响核心服务。

    3.4K20

    从 Web 图标演进历史看最佳实践

    当然这一点从我们的实践中来看,并不构成很大的阻碍。...当然,从各方面综合比较,封装内联 SVG 应该是当前最佳的选择。上文 GitHub 后端 helper 的方案对应当前前端的技术方案,实际上就是基于内联 SVG 的图标组件。...从我们在百度内部以往的实践中来看,存在这如下的一些问题: 工作流程缺乏最佳实践,由于长期各个团队有着较为独立的技术演变,使用的 web 图标方案并不统一。...5.3 优化/编译/发布服务 ---- 这个服务在图标库 API 触发更新时主要做了三件事: 优化。从 API 读取图标数据,并且将源文件通过 SVGO 进行初步优化。...在目前组件化开发的大背景下,我们通过分析各个方案的优缺点,建立起一套当下的“最佳实践”,减少了流程中的沟通和容易出错的人工操作,高效地达成了设计和实现的一致性。

    1.9K10

    移动 Web 最佳实践(干货长文,建议收藏)

    作者:mucking| 来源:掘金 https://juejin.im/post/5d759f706fb9a06afa32adec 笔者在公司用 web 技术开发移动端应用已经有一年多的时间了,开始主要以...好了废话不多说,先亮下这个库的 GitHub 地址,后面还会不断完善,欢迎 star: mobile-web-best-practice[2] 移动端 web 最佳实践,基于 vue-cli3[3] 搭建的...(SSR),即从服务端生成组装好的完整静态 html 发送到浏览器进行展示,但配置较为复杂,一般都会借助框架,比如 vue 的 nuxt.js[45],react 的 next[46]。...不过选择 Externals 还是需要一个靠谱的 CDN 服务的。 本项目选择的是 Externals,各位可根据项目需求选择不同的方案。...将服务响应的 cookie,持久化到本地,在下次 webview 启动时,读取本地的 cookie 值,手动再去通过 native 往 webview 写入。

    2.7K10

    新建NodeJS Web项目的几个最佳实践

    在项目建立初期引入一些最佳实践可以避免后期大量复杂的重构工作,本文总结了在使用Node JS构建Web服务时的一些最佳实践,同时涉及的具体的操作步骤。...Express命令 Express是目前最流行的NodeJS web框架。全局安装一个express-generator,用来初始化express项目。...使用脚手架初始化Express项目 使用Swagger脚手架 当使用NodeJS 开发Web API时,强烈建议使用Swagger进行API构建与管理,以及提供API文档服务。...项目 安装命令: npm install swagger -g 新建Swagger API项目: swagger project create hello-swagger,在这过程中会让你选择使用哪种Web...开启gzip压缩可以显著提高HTTP的服务的访问速度,安装 compression中间件可以非常方便地启用。

    2.5K51

    【Web攻击最佳实践】1. Race Window

    What竞争窗口,顾名思义就是web应用程序处理某一个请求时会有一个短暂的子状态转换,比如说首先查询数据库,然后做一个check,然后再更新数据库,这一系列的子状态转换就会出现竞争窗口:当用户通过某种手段将两个请求同时抵达到服务端的应用程序...但为什么这种攻击不好触发呢,常常因为这么几个原因:竞争窗口太短了,一般也就几毫秒,甚至更短数据包既要能同时到达服务端,然后服务端还要同时处理,这两个延迟,一个是网络延迟一个是服务端内部延迟,都会导致竞争窗口稍纵即逝...一些场景假设有这么个技术可以实现两个请求同时让服务端处理,以达到竞争窗口的出现,那么我们可以干什么坏事呢?...,就不会处理,然后随时发送最后一小段内容,以达到控制服务端什么时候处理的目的。...Referencehttps://portswigger.net/web-security/learning-paths/race-conditionshttps://portswigger.net/researc

    16410

    【微服务】微服务间通信的最佳实践

    一个好的 API 架构对于有效处理微服务之间的通信很重要。不要害怕创建新的微服务,并尽可能地尝试解耦功能。...例如,与其创建一个通知服务,不如尝试为电子邮件通知、SMS 通知和移动推送通知创建单独的微服务。 在这里,我假设您有一个 API 网关来管理请求、处理到负载平衡服务器的路由并限制未经授权的访问。...如果接收器服务关闭或无法处理请求,那么我们要等到服务启动。例如,在电子商务网站中,用户下订单并请求发送到发货服务以发货,但发货服务关闭,我们丢失了订单。一旦完成,如何将相同的订单发送到运输服务?...RabbitMQ 被广泛用作消息代理服务,如果您将 Azure 云作为托管服务提供商,您也可以使用 Azure 服务总线。...best-practices-communicate-between-microservices 讨论:知识星球【首席架构师圈】或者加微信小号【cea_csa_cto】或者加QQ群【792862318】 公众号 【jiagoushipro】【超级架构师】精彩图文详解架构方法论,架构实践

    1.3K30

    CDN 服务质量监控最佳实践

    [点击查看大图] CDN 的原理 将静态资源缓存到离用户比较近的节点上,不用千里迢迢去访问服务器。这样不仅能够加快这些资源的访问速度,也能够降低服务器的带宽压力,有效降低服务器负载。...需要选择 CDN 服务商(提供边缘节点的供应商) 2. 在 CDN 服务商上开通 CDN 的服务。 3. 接入需要加速的域名。 4....CDN 服务商优先考虑的是 CDN 的服务质量,其次才会考虑其他因素,毕竟购买 CDN 服务的首要目的就是加速网站,那么选择一个合适的 CDN 服务商就非常重要了。...总结 目前利用 CDN 加速网站越来越重要,同时再 CDN 提供服务的过程中,我们要持续不断的对 CDN 的服务质量进行监测,如果 CDN 加速效果不理想,切换 CDN 服务商或者再 CDN 服务商选型的时候需要去度量...CDN 的服务质量。

    4K41

    istio服务网格进阶最佳实践

    希望它既不是一篇「入门介绍」,也不是一本巨细靡遗、主次不分的「参考手册」,而是一篇只讲重点、只讲笔者自身经验的最佳实践。 1.2 何为「最佳实践」?...“最佳实践” 这个名词起源于管理领域,但是已经有一些被滥用了。我们可以在网上搜到各式各样的「某某最佳实践」。然而事实上,“最佳实践” 无疑是一个伪命题。...这个世界上永远不可能有什么工程实践是最佳的,除非你是 Jeff Dean(冷笑话)。实事求是地说,本文介绍的只是一种还算不错的、可以快速上手的实践。 1.3 何为「进阶」?...3. istio进阶最佳实践案例 下面以「istio 就近地域路由」这个特性为例,展示这套最佳实践的具体操作过程。...虽然本文的标题是「istio进阶最佳实践」,不过本实践路径并不局限于学习 istio,也适用于其他开源技术 (尤其是云原生技术) 的学习与进阶。

    74140
    领券