爆款云主机2核4G限时秒杀,88元/年起!
查看详情

活动

天翼云最新优惠活动,涵盖免费试用,产品折扣等,助您降本增效!
热门活动
  • 618智算钜惠季 爆款云主机2核4G限时秒杀,88元/年起!
  • 免费体验DeepSeek,上天翼云息壤 NEW 新老用户均可免费体验2500万Tokens,限时两周
  • 云上钜惠 HOT 爆款云主机全场特惠,更有万元锦鲤券等你来领!
  • 算力套餐 HOT 让算力触手可及
  • 天翼云脑AOne NEW 连接、保护、办公,All-in-One!
  • 中小企业应用上云专场 产品组合下单即享折上9折起,助力企业快速上云
  • 息壤高校钜惠活动 NEW 天翼云息壤杯高校AI大赛,数款产品享受线上订购超值特惠
  • 天翼云电脑专场 HOT 移动办公新选择,爆款4核8G畅享1年3.5折起,快来抢购!
  • 天翼云奖励推广计划 加入成为云推官,推荐新用户注册下单得现金奖励
免费活动
  • 免费试用中心 HOT 多款云产品免费试用,快来开启云上之旅
  • 天翼云用户体验官 NEW 您的洞察,重塑科技边界

智算服务

打造统一的产品能力,实现算网调度、训练推理、技术架构、资源管理一体化智算服务
智算云(DeepSeek专区)
科研助手
  • 算力商城
  • 应用商城
  • 开发机
  • 并行计算
算力互联调度平台
  • 应用市场
  • 算力市场
  • 算力调度推荐
一站式智算服务平台
  • 模型广场
  • 体验中心
  • 服务接入
智算一体机
  • 智算一体机
大模型
  • DeepSeek-R1-昇腾版(671B)
  • DeepSeek-R1-英伟达版(671B)
  • DeepSeek-V3-昇腾版(671B)
  • DeepSeek-R1-Distill-Llama-70B
  • DeepSeek-R1-Distill-Qwen-32B
  • Qwen2-72B-Instruct
  • StableDiffusion-V2.1
  • TeleChat-12B

应用商城

天翼云精选行业优秀合作伙伴及千余款商品,提供一站式云上应用服务
进入甄选商城进入云市场创新解决方案
办公协同
  • WPS云文档
  • 安全邮箱
  • EMM手机管家
  • 智能商业平台
财务管理
  • 工资条
  • 税务风控云
企业应用
  • 翼信息化运维服务
  • 翼视频云归档解决方案
工业能源
  • 智慧工厂_生产流程管理解决方案
  • 智慧工地
建站工具
  • SSL证书
  • 新域名服务
网络工具
  • 翼云加速
灾备迁移
  • 云管家2.0
  • 翼备份
资源管理
  • 全栈混合云敏捷版(软件)
  • 全栈混合云敏捷版(一体机)
行业应用
  • 翼电子教室
  • 翼智慧显示一体化解决方案

合作伙伴

天翼云携手合作伙伴,共创云上生态,合作共赢
天翼云生态合作中心
  • 天翼云生态合作中心
天翼云渠道合作伙伴
  • 天翼云代理渠道合作伙伴
天翼云服务合作伙伴
  • 天翼云集成商交付能力认证
天翼云应用合作伙伴
  • 天翼云云市场合作伙伴
  • 天翼云甄选商城合作伙伴
天翼云技术合作伙伴
  • 天翼云OpenAPI中心
  • 天翼云EasyCoding平台
天翼云培训认证
  • 天翼云学堂
  • 天翼云市场商学院
天翼云合作计划
  • 云汇计划
天翼云东升计划
  • 适配中心
  • 东升计划
  • 适配互认证

开发者

开发者相关功能入口汇聚
技术社区
  • 专栏文章
  • 互动问答
  • 技术视频
资源与工具
  • OpenAPI中心
开放能力
  • EasyCoding敏捷开发平台
培训与认证
  • 天翼云学堂
  • 天翼云认证
魔乐社区
  • 魔乐社区

支持与服务

为您提供全方位支持与服务,全流程技术保障,助您轻松上云,安全无忧
文档与工具
  • 文档中心
  • 新手上云
  • 自助服务
  • OpenAPI中心
定价
  • 价格计算器
  • 定价策略
基础服务
  • 售前咨询
  • 在线支持
  • 在线支持
  • 工单服务
  • 建议与反馈
  • 用户体验官
  • 服务保障
  • 客户公告
  • 会员中心
增值服务
  • 红心服务
  • 首保服务
  • 客户支持计划
  • 专家技术服务
  • 备案管家

了解天翼云

天翼云秉承央企使命,致力于成为数字经济主力军,投身科技强国伟大事业,为用户提供安全、普惠云服务
品牌介绍
  • 关于天翼云
  • 智算云
  • 天翼云4.0
  • 新闻资讯
  • 天翼云APP
基础设施
  • 全球基础设施
  • 信任中心
最佳实践
  • 精选案例
  • 超级探访
  • 云杂志
  • 分析师和白皮书
  • 天翼云·创新直播间
市场活动
  • 2025智能云生态大会
  • 2024智算云生态大会
  • 2023云生态大会
  • 2022云生态大会
  • 天翼云中国行
天翼云
  • 活动
  • 智算服务
  • 产品
  • 解决方案
  • 应用商城
  • 合作伙伴
  • 开发者
  • 支持与服务
  • 了解天翼云
      • 文档
      • 控制中心
      • 备案
      • 管理中心

      微服务开发,这10个点你要知道

      首页 知识中心 软件开发 文章详情页

      微服务开发,这10个点你要知道

      2024-06-03 07:38:32 阅读次数:48

      日志,服务,架构

      微服务架构是一种软件开发模式,它将一个复杂的应用程序拆分为多个个独立的、小型的、可复用的服务,每个服务负责一个特定的业务功能。

      微服务架构有许多优点,例如提高系统的可扩展性、可维护性、可测试性和故障容忍性。

      但是,微服务架构也有很多问题需要注意,例如如何设计合理的划分服务接口、如何在服务间实现高效通信、如何保证数据一致性等。因此要想成功地使用微服务架构,我们需要遵循一些最佳实践。

      以下是一些微服务架构的最佳实践,我将尽我所了解的知识给大家进行讲解。本文大纲如下,

      微服务开发,这10个点你要知道

      1. 不使用微服务架构

      没错,我们应该尽量避免使用微服务架构。

      认真地说,使用微服务架构只能被视为最后的选择。从项目实际应用场景开发,少看一些网上关于微服务的吹捧。务实一点,根据项目体量、业务复杂度选择一个适合当前项目的架构。

      首先尝试构建一个单体的模块化架构,而不是一上来就搞微服务架构。

      2. 针对失败场景进行处理

      在任何使用微服务的分布式系统里面,总是有调用失败的可能,比如网络分区、某个服务宕机不可用等。

      所以我们在系统调用层面针对失败场景的处理,应该设计得越早越好。

      故障设计最好三个级别,

      • 基础设施级别
      • 数据库级别和
      • 单个微服务级别

      实际的针对失败场景处理,可以使用断路器、服务降级和 "隔板模式"。

      隔板模式在分布式系统中就是指资源隔离,在分布式系统里,资源隔离通常按业务分为进程级别的隔离和线程级别的隔离,某些简单的服务质量要求不高的业务场景下实现进程级别的隔离就够了,但是在某些对服务质量要求较高的分布式场景下需要线程级别的细粒度隔离。

      3. 构建小型服务

      微服务架构中,每个服务应该都按单一职责进行设计。

      每个微服务应该只负责一个业务领域,并且尽量避免涉及其他领域。

      这样可以提高代码的可读性、可测试性和可维护性,也可以降低系统的复杂度和耦合度。

      4. 使用轻量级通信协议

      微服务架构中,服务之间的通信协议时非常重要的。因为在一些对性能要求较高的场景里,选择一个轻量级协议所能带来的 QPS 提升,也是非常客观的。

      比如服务间可以使用 REST、GRPC 或消息队列等通信协议,这样可以尽可能减少服务通信带来的开销并提升性能。

      5. 服务发现

      微服务架构下,服务实例的网络地址是动态分配和变化的,因此需要一种机制,能够及时获取服务实例的最新的网络地址,以便进行服务间通信。

      并且服务实例的数量和状态都是随着业务需求和故障情况而变化的,还需要有能够及时感知服务实例的上线、下线、故障等情况的能力。

      因此我们需要使用服务发现组件,它负责自动发现服务实例,负载均衡和故障转移。

      服务发现组件有 Eureka 、Consul、Nacos 等,国内的话,推荐大家使用 Nacos。

      6. 数据库隔离

      微服务架构下,每个服务的数据库应该都是单独部署的,它们之间相互隔离。

      一个服务要操作另一个服务数据库中的数据时,都应该只能通过调用另一个服务的接口来实现,而不是粗暴的直接访问其他服务的数据库进行读写。

      数据库隔离的最终目标就是为了减少服务之间的耦合,使它们能够独立发展。

      7. 实施弹性模式

      为了提高微服务架构中各个服务的弹性,我们应该尽量使用弹性模式。

      所谓弹性,其实就是服务的可用性,专业一点的话说就是从某些类型的故障中恢复并保持自身服务的能力。

      那么,我们应该如何实施实施弹性模式嘞?

      其实很简单,我给大家分成两个部分进行讲解,一个是服务内,另一个是服务外。

      服务内指的是别人调用我们的服务时,需要注意的点有,

      • 添加缓存
      • 资源隔离
      • 接口限速

      服务外指的是我们调用别人的服务时,需要注意的点有,

      • 调用超时
      • 请求重试
      • 断路器应用

      8. 服务监控于链路追踪

      有句话说得好,"在任何分布式系统中,会宕机的服务最终都会宕机"。😂

      特别是在微服务系统,系统间的服务调用链路越长,发生异常时的排查难度就越大。

      所以为了跟上微服务的步伐,我们需要发现各个服务中存在的问题。进一步也就需要针对微服务的性能、状态、异常等指标进行收集、分析、展示和告警。这有助于提高系统的可观察性、可运维性和可靠性。

      链路追踪是一种技术,用于监控和分析分布式系统中的请求流程,以及各个服务之间的调用情况。

      在分布式系统中,链路追踪就是为每个请求分配一个全局唯一的标识(TraceId),并在请求在各个服务之间传递时,记录每个服务的调用信息(SpanId),包括调用时间、耗时、状态等。通过收集、存储、展示和分析这些信息,就可以还原出请求的完整链路,以及各个服务的性能表现。

      在如今流行云原生的潮流下,推荐使用 Prometheus、Grafana 为微服务构建全面的监控能力,使用 Skywalking 为微服务构建一套性能分析以及链路追踪平台。

      9. 服务的安全性

      微服务架构中,各个服务的安全性设计也非常重要。

      常见的有如下几种安全性设计的举措,

      • API 网关:使用 API 网关作为服务的统一入口,对所有进入和离开的请求进行鉴权、路由、负载均衡、限流、缓存等功能,提高服务的可用性和性能,同时也增加了服务的安全性,防止内部服务被直接访问或攻击。
      • 令牌安全:使用 JWT、OAuth 2.0 等标准化的令牌格式和协议来实现服务之间或服务与客户端之间的身份验证和授权,防止服务被冒充或滥用。
      • 请求过滤:对 API 网关所接收到的所有请求数据,进行 SQL 注入攻击、XSS 攻击和 CORS 攻击过滤拦截处理。
      • 风控报警:在 API 网关添加风控措施,针对发起恶意请求的用户做黑名单风控处理,针对服务内部的非业务异常进行报警通知。

      10. 统一日志采集

      分布式系统中,各个服务的日志都位于不同的机器上,因此机器越多,日志统一采集的需求就越强烈。

      统一日志采集是微服务架构中的一个重要的运维需求,它负责收集和管理分布式系统中的各种日志,如运行日志、访问日志、错误日志等,以便于进行问题排查、性能分析、数据挖掘等。

      推荐使用 ELK 或者 Graylog 搭建一套统一日志采集平台。

      因为我使用 Graylog 比较多,所以这里给大家推荐了解一波 Graylog 这个统一日志采集平台。

      Graylog 是一个开源的集中式日志管理系统,它可以收集、存储、分析、展示和告警各种机器数据,为开发团队提供安全、应用和 IT 基础设施方面的问题的答案。

      微服务开发,这10个点你要知道

      Graylog 可以让我们在一个美观的 web ui 界面上组合、关联、查询所有的日志数据。

      微服务开发,这10个点你要知道

      Graylog 具有以下特点和优势:

      • 高性能:Graylog 可以处理每秒数百万条日志,支持多节点集群,实现水平扩展和负载均衡。
      • 易用性:Graylog 提供了一个友好的 Web 界面,让您可以轻松地构建复杂的查询,创建自定义的仪表盘,设置灵活的告警规则,生成定期的报告等。
      • 灵活性:Graylog 支持多种日志来源,如文件、网络、数据库、应用程序等,可以通过插件和 API 进行扩展和集成,满足不同的业务需求和场景。
      • 安全性:Graylog 支持使用 HTTPS、SSL/TLS 等加密技术来保护日志数据的传输和存储,同时也支持使用 LDAP、OAuth 2.0 等认证和授权机制来控制用户的访问权限。

      最后聊两句

      本文为大家介绍了微服务架构中的 10 个最佳实践。包含 1. 不使用微服务架构、2. 针对失败场景进行处理、3. 构建小型服务、4. 使用轻量级通信协议、5. 服务发现、6. 数据库隔离、7. 实施弹性模式、8. 服务监控以及链路追踪、9. 服务安全性、10.统一日志采集。

      说了这么多,其实还是希望大家结合自身项目背景,多多思考,不要为了使用微服务而去使用微服务,在已经使用了微服务架构中项目,能够结合上述最佳实践,加上自己对各个服务以及业务上的思考,去解决哪些已存在的问题。这样才算是真正学会了微服务。

      版权声明:本文内容来自第三方投稿或授权转载,原文地址:https://www.cnblogs.com/waynaqua/p/17931758.html" title="发布于 2023-12-28 00:27,作者:waynaqua,版权归原作者所有。本网站转在其作品的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如因作品内容、版权等问题需要同本网站联系,请发邮件至ctyunbbs@chinatelecom.cn沟通。

      上一篇:最简单的人工智能代码

      下一篇:Spring中常用的工具类

      相关文章

      2025-05-19 09:05:01

      【Linux】HDP集群日志配置和日志删除脚本

      HDP 集群 默认安装的,日志放在数据盘,但是 namenode和snamenode的数据盘本身不大只有 500G,在不经意间 数据盘被日志装满,首先从集群配置着手。

      2025-05-19 09:05:01
      log4j , 日志 , 集群
      2025-05-19 09:04:38

      DataGuard GAP 修复3-- 归档日志不存在

      DataGuard GAP 修复3-- 归档日志不存在

      2025-05-19 09:04:38
      归档 , 日志
      2025-05-19 09:04:38

      Mac电脑arm64芯片Cocoapods 的 ffi 兼容问题

      Mac电脑arm64芯片Cocoapods 的 ffi 兼容问题

      2025-05-19 09:04:38
      架构
      2025-05-16 09:15:24

      WCF 配置文件分解

      WCF 配置文件分解

      2025-05-16 09:15:24
      localhost , WCF , 地址 , 服务 , 配置
      2025-05-14 10:03:13

      arm架构下JAVA开发

      ARM(Advanced RISC Machine)是一种基于精简指令集计算(RISC)设计的处理器架构。它以高效、节能著称,因此广泛应用 于从智能手机到物联网设备的各个领域。

      2025-05-14 10:03:13
      Java , JVM , 嵌入式 , 架构 , 设备
      2025-05-14 10:03:13

      【Mybatis】-防止SQL注入

      【Mybatis】-防止SQL注入

      2025-05-14 10:03:13
      SQL , 执行 , 日志 , 注入 , 缓存 , 编译 , 语句
      2025-05-14 10:02:48

      SQL Server 事务日志体系结构1--基本术语

      事务包括对数据库的一次更改或一系列更改。它有一个明确开始和明确结束。开始时使用BEGIN TRANSACTION语句,或者SQL Server会自动为您开始一个事务。

      2025-05-14 10:02:48
      Server , SQL , 事务 , 数据库 , 日志 , 磁盘
      2025-05-13 09:51:17

      rac dg节点2在修改完alert_oracle_sid.log文件名,主库切换日志后备库节点2不产生新的日志文件

      rac dg节点2在修改完alert_oracle_sid.log文件名,主库切换日志后备库节点2不产生新的日志文件

      2025-05-13 09:51:17
      dg , rac , 日志 , 节点
      2025-05-13 09:51:17

      搭建ogg时无法启动目标端复制进程,告警日志报错OGG-02091

      搭建ogg时无法启动目标端复制进程,告警日志报错OGG-02091

      2025-05-13 09:51:17
      ogg , OGG , 报错 , 日志
      2025-05-12 08:43:47

      C#Windows服务:一些方法(启动、停止等)

      C#Windows服务:一些方法(启动、停止等)

      2025-05-12 08:43:47
      Windows , 停止 , 启动 , 方法 , 服务
      查看更多
      推荐标签

      作者介绍

      天翼云小翼
      天翼云用户

      文章

      33561

      阅读量

      5246429

      查看更多

      最新文章

      arm架构下JAVA开发

      2025-05-14 10:03:13

      C#Windows服务:一些方法(启动、停止等)

      2025-05-12 08:43:47

      RestTemplate请求UnknownContentTypeException:no suitable HttpMessageConverter异常

      2025-05-09 08:51:09

      SpringBoot3基础用法

      2025-05-07 09:09:52

      java应用性能调优之详解System的gc垃圾回收方法

      2025-04-09 09:14:24

      利用自定义注解优化操作日志记录

      2025-03-28 07:41:55

      查看更多

      热门文章

      软件架构的历程及区别

      2023-08-03 06:46:32

      【Java】日志的概念

      2023-07-26 08:09:07

      Spring 日志输出错误字符 -e[0;39m e[2m[

      2023-07-27 06:49:39

      SpringBoot日志基本操作

      2024-09-25 10:14:09

      C#写日志工具类(旧版)

      2023-03-31 06:13:51

      3.3 日志

      2023-02-16 09:37:42

      查看更多

      热门标签

      java Java python 编程开发 代码 开发语言 算法 线程 Python html 数组 C++ 元素 javascript c++
      查看更多

      相关产品

      弹性云主机

      随时自助获取、弹性伸缩的云服务器资源

      天翼云电脑(公众版)

      便捷、安全、高效的云电脑服务

      对象存储

      高品质、低成本的云上存储服务

      云硬盘

      为云上计算资源提供持久性块存储

      查看更多

      随机文章

      二十一、微服务之-Spring Cloud作用

      微服务参数透传实现

      软件系统架构演变

      解析Spring Cloud中的服务网关设计

      Java 应用的弹性设计:容错与自动恢复

      Java服务端服务监控:ELK Stack的集成与应用

      • 7*24小时售后
      • 无忧退款
      • 免费备案
      • 专家服务
      售前咨询热线
      400-810-9889转1
      关注天翼云
      • 旗舰店
      • 天翼云APP
      • 天翼云微信公众号
      服务与支持
      • 备案中心
      • 售前咨询
      • 智能客服
      • 自助服务
      • 工单管理
      • 客户公告
      • 涉诈举报
      账户管理
      • 管理中心
      • 订单管理
      • 余额管理
      • 发票管理
      • 充值汇款
      • 续费管理
      快速入口
      • 天翼云旗舰店
      • 文档中心
      • 最新活动
      • 免费试用
      • 信任中心
      • 天翼云学堂
      云网生态
      • 甄选商城
      • 渠道合作
      • 云市场合作
      了解天翼云
      • 关于天翼云
      • 天翼云APP
      • 服务案例
      • 新闻资讯
      • 联系我们
      热门产品
      • 云电脑
      • 弹性云主机
      • 云电脑政企版
      • 天翼云手机
      • 云数据库
      • 对象存储
      • 云硬盘
      • Web应用防火墙
      • 服务器安全卫士
      • CDN加速
      热门推荐
      • 云服务备份
      • 边缘安全加速平台
      • 全站加速
      • 安全加速
      • 云服务器
      • 云主机
      • 智能边缘云
      • 应用编排服务
      • 微服务引擎
      • 共享流量包
      更多推荐
      • web应用防火墙
      • 密钥管理
      • 等保咨询
      • 安全专区
      • 应用运维管理
      • 云日志服务
      • 文档数据库服务
      • 云搜索服务
      • 数据湖探索
      • 数据仓库服务
      友情链接
      • 中国电信集团
      • 189邮箱
      • 天翼企业云盘
      • 天翼云盘
      ©2025 天翼云科技有限公司版权所有 增值电信业务经营许可证A2.B1.B2-20090001
      公司地址:北京市东城区青龙胡同甲1号、3号2幢2层205-32室
      • 用户协议
      • 隐私政策
      • 个人信息保护
      • 法律声明
      备案 京公网安备11010802043424号 京ICP备 2021034386号