前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >微服务架构的核心关键点

微服务架构的核心关键点

原创
作者头像
Kami米雅
发布于 2022-01-07 09:32:40
发布于 2022-01-07 09:32:40
4800
举报
文章被收录于专栏:上云服务专题上云服务专题

微服务的服务治理 -

当我们架构微服务应用时首先遇到的一个问题是,作为消费者如何访问并调用服务提供者所提供的服务,作为服务提供者如何能让服务消费者知道并进行消费。在传统应用开发时,通常是在开发语言层面上解决这个问题,可能我们从来也没有考虑过这个问题,甚至可以说这个问题在传统开发时根本不存在。但在微服务架构下,同一个微服务可能同时存在多个实例,并且这些微服务实例还在不停上线、下线,那么它们如何相知、相识并进行通信呢?使用物理地址显然不行,因为不知道服务提供者到底在哪台服务器,服务当前是否仍然在线,如果服务不在线还进行调用岂不是造成调用失败?

此外,对于微服务架构应用来说还有一个重要考量因素:快速水平扩展。在进行快速扩展时我们不可能预先知道所有的服务实例地址并告知服务消费者,而且也无法确定有哪些、有多少消费者会来消费。

业界对于此问题典型的解决方案就是服务治理(服务注册及服务发现)。通过服务发现,消费者可以在预先不知道服务提供者物理地址的情况下,仅通过相应的服务名称就可以实现服务调用。服务注册机制,可以让服务提供者在上线时将所提供的服务信息注册到服务治理服务器中,供服务消费者使用。当服务下线时将自己从服务治理服务器中注销,避免服务消费者调用而造成的异常。

- 微服务的负载均衡 -

对于负载均衡,传统应用通常会在用户请求的入口通过负载均衡设备(如 F5 等)或通过 Ngnix 反向代理方式实现负载均衡。但在微服务架构下负载均衡不仅仅指的是用户请求入口,还包含了微服务之间的调用。如果此时再采用之前传统的解决方案,显然是不合适的:一是传统的负载均衡设备配置非常复杂;二是微服务应用实例在快速变化。

因此,针对微服务之间的负载均衡需要另谋出路。因此业界提出了客户端负载均衡的概念,也称之为软负载均衡。核心思想就是在服务消费者(也就是客户端)保存有一份服务者列表,这份服务者列表通常是从服务治理服务器中动态获取,也可以采用固定配置方式,然后通过某种负载均衡策略来决定每次服务调用时所使用的具体服务实例,从而实现微服务之间的负载均衡。

- 微服务的统一入口 -

微服务是众多的,而且大部分都会对外提供某种服务接口。对于前端或者第三方开发者来说,一定不愿意与多个服务地址打交道。那么如何将这么多微服务入口统一到一个入口进行管理呢?可能首先映入你脑海的就是门户模式,通过门户模式可以有效地隐藏后端的复杂性,对客户提供统一访问入口。对于微服务也是,API 服务网关就是为微服务提供了一个统一入口,并能够附加一些路由规则,使得不同的微服务通过路由规则提供一致的访问入口。

- 微服务的容错 -

微服务架构的应用是一种高度分布式架构应用,各微服务之间的调用更是通过网络来完成,而且一个用户的请求往往需要涉及多个微服务。我们知道网络访问是不可靠的,那么如何在一个微服务不可用时不会影响其他微服务及调用者,以及如何有效防止服务调用失败而引起的 “雪崩效应” 呢?如何在一个服务不可用时能够对用户更加友好,使整个应用非常具有弹性呢?这些是实施微服务架构时一个非常重要的话题。

在业界,针对微服务架构的容错提出了断路器、服务降级等模式,这些模式都可以有效防止微服务调用失败而引起的连锁反应,并且在必要时可以通过这些模式主动实施应用的降级处理,从而保证核心业务的正常运行。

- 微服务的统一配置 -

单体应用中可以直接在所开发项目中进行配置管理。而在微服务架构中,一个应用被拆成众多的微服务,并由不同的团队负责,而这些微服务中会存在一些共同的配置数据,如果还是分散在各个项目中分别进行管理,那么面对数十个、上百个应用实例,可以预见变更一个配置数据时的难度。此外,我们也不希望某个应用实例可以独立进行变更,从而造成更大的混乱。因此,如何统一对配置进行管理和发布更新,就需要在构建微服务之初进行思考。

- 微服务的监控 -

微服务的灵活和强大也为开发者带来了 “噩梦” 一般的调试和跟踪分析体验。单体架构下所有的应用都在一起,根本不存在难以调试的问题。对于调用和跟踪分析的重要性不言而喻,特别是当应用正式上线时,通过日志分析可以快速定位到问题所在。

而在微服务场景下调试将难以进行,因为一个用户请求会涉及多个微服务应用,要在多个应用下统一进行调试将会非常困难。应用上线后,日志多由服务实例自己管理,如何将分散在多个日志之间的调用串联起来,形成一个完整的请求调用链,将是另外一个非常大的挑战。因此,针对这个问题及需求,业界在微服务监控中提供了日志聚合、日志可视化分析、调用链跟踪等解决方案,都可为我们所构建的微服务应用的运维提供强有力的武器。

- 微服务的部署 -

在动辄几十个甚至上百个服务实例在线,并且不断上线、下线的场景下,开发者一定不愿意通过手工构建和部署这些服务实例。此时,开发者更愿意将这些处理交付给自动化工具去做,一方面可以提升工作效率,另一方面通过自动化的方式才能够保障所构建和部署的服务实例一致化。因此,业界针对这种需求提出了相应的解决方案,包括通过构建—发布管道来构建自动化发布流程。可以通过 Docker 工具来快速部署,通过 k8s 来构建自动化部署编排等。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
Prompt learning 教学技巧篇:通过增加示例、引导词、特殊符号指令等方式让chatgpt输出更好的答案
在问答场景里,为了让 AI 回答更加准确,一般会在问题里加条件。比如让 AI 推荐一部电影给你 Recommend a movie to me 。但这个 prompt 太空泛了,AI 无法直接回答,接着它会问你想要什么类型的电影,但这样你就需要跟 AI 聊很多轮,效率比较低。
汀丶人工智能
2023/05/13
2.1K0
Prompt learning 教学技巧篇:通过增加示例、引导词、特殊符号指令等方式让chatgpt输出更好的答案
Prompt工程师指南从基础到进阶篇:用于开发和优化提示,以有效地使用语言模型(LMs)进行各种应用和研究主题
Prompt工程是一种相对较新的学科,用于开发和优化提示,以有效地使用语言模型(LMs)进行各种应用和研究主题。Prompt工程技能有助于更好地理解大型语言模型(LLMs)的能力和局限性。研究人员使用Prompt工程来改善LLMs在各种常见和复杂任务上的能力,
汀丶人工智能
2023/05/14
3.8K1
Prompt工程师指南从基础到进阶篇:用于开发和优化提示,以有效地使用语言模型(LMs)进行各种应用和研究主题
Prompt Learning:【文心一言】提示词功能系统学习,
大型语言模型使用强化学习中的人类反馈来学习,这个过程中与人类对话的提问通常是通俗易懂的,也就是说,大型语言模型可以理解并回答一般人能听懂的问题(可以看到,后面我们所提到的技巧,用到我们日常的交流中也是可以更清晰的表达自己的目的的)。因此,即使我们不进行prompt学习,也可以使用大型语言模型来帮助我们解决问题了。但是,如果想要解决更加专业,更加复杂的问题,就需要我们学习prompt工程,以便更好的让大型语言模型来输出我们想要的结果。
汀丶人工智能
2023/04/22
1.9K0
Prompt Learning:【文心一言】提示词功能系统学习,
10种实用的Prompt技巧图解
收集整理了prompt engineering的10种实用技巧,以图解的方式解释了它们的主要原理。
lyhue1991
2023/09/05
2.8K0
10种实用的Prompt技巧图解
提升ChatGPT性能的实用指南:Prompt Engineering的艺术
提示工程是一门新兴学科,就像是为大语言模型(LLM)设计的"语言游戏"。通过这个"游戏",我们可以更有效地引导 LLM 来处理问题。只有熟悉了这个游戏的规则,我们才能更清楚地认识到 LLM 的能力和局限。
腾讯技术工程官方号
2023/08/11
1.8K0
提升ChatGPT性能的实用指南:Prompt Engineering的艺术
解读提示工程(Prompt Engineering)
提示工程(Prompt Engineering),也称为上下文提示,是一种通过不更新模型的权重/参数来引导LLM行为朝着特定结果的方法。这是与AI有效交流所需结果的过程。提示工程可以用于各种任务,从回答问题到算术推理乃至各种应用领域,理解提示工程,能够帮助我们了解LLM的限制和能力。
半吊子全栈工匠
2023/10/23
10K0
解读提示工程(Prompt Engineering)
​解密Prompt系列11. 小模型也能思维链推理
前两章我们分别介绍了思维链的多种使用方法以及思维链(COT)的影响因素。这一章更多面向应用,既现实场景中考虑成本和推理延时,大家还是希望能用6B的模型就不用100B的大模型。但是在思维链基础和进阶玩法中反复提到不论是few-shot还是zero-shot的思维链能力似乎都是100B左右的大模型才有的涌现能力,而在小模型上使用思维链甚至会带来准确率的下降。
风雨中的小七
2023/07/13
2.6K0
​解密Prompt系列11. 小模型也能思维链推理
迈向大模型第一步:Prompt提示工程基础原理及实践
想象一下,你在装饰房间。你可以选择一套标准的家具,这是快捷且方便的方式,但可能无法完全符合你的个人风格或需求。另一方面,你也可以选择定制家具,选择特定的颜色、材料和设计,以确保每件家具都符合你的喜好和空间要求。
fanstuck
2024/01/17
3.9K3
迈向大模型第一步:Prompt提示工程基础原理及实践
大语言模型的预训练[6]:思维链(Chain-of-thought,CoT)定义原理详解、Zero-shot CoT、Few-shot CoT 以及在LLM上应
在 2017-2019 年之间,随着 Transformer 模型的提出,计算资源与大规模语料库不断出现,自然语言处理领域发生了翻天覆地的变化,传统的全监督学习的范式逐渐达到了瓶颈,很难在传统的训练方式上取得大幅度提升。这时大规模预训练模型的如 Bert、RoBERTa 等模型的出现使得研究方向转向了以预训练模型为基础 + 下游任务 Fine-tune 的范式。
汀丶人工智能
2023/07/20
3.3K0
大语言模型的预训练[6]:思维链(Chain-of-thought,CoT)定义原理详解、Zero-shot CoT、Few-shot CoT 以及在LLM上应
从菜鸟到大神,Prompt设计的核心秘诀全在这里!
在数字化浪潮的推动下,人工智能大模型凭借其卓越的自然语言处理能力和智能交互特性,正迅速渗透到各行各业。与传统的客服方式相比,AI大模型展现出了显著的优势。通过精心设计的提示语(prompt),我们可以在客服外包、智能客服等多个项目和业务场景中发挥重要作用,显著提高工作效率并优化成果质量。
福大大架构师每日一题
2025/04/02
4230
从菜鸟到大神,Prompt设计的核心秘诀全在这里!
吴恩达 prompt 课程笔记
举例:生成三个虚构的图书标题,以及它们的作者和流派,使用以下键名以JSON格式提供:书籍ID、标题、作者和流派。
operator开发工程师
2023/11/16
5320
解密Prompt系列9. 模型复杂推理-思维链基础和进阶玩法
这一篇真的是解密prompt!我们会讨论下思维链(chain-of-Thought)提示词究竟要如何写,如何写的更高级。COT其实是Self-ASK,ReACT等利用大模型进行工具调用方案的底层逻辑,因此在Agent调用章节之前我们会有两章来讲思维链
风雨中的小七
2023/06/14
7K6
解密Prompt系列9. 模型复杂推理-思维链基础和进阶玩法
Prompt Engineering 写作准则与应用示例集
如果你有一类问题,可以一直在一个对话框询问,同时进行保存,这样就会记住历史消息,相当于一次【In-context Learning(上下文学习)】
悟乙己
2023/07/09
1.2K0
Prompt Engineering 写作准则与应用示例集
Prompt工程师指南应用篇:Prompt应用、ChatGPT|Midjouney Prompt Engineering
ChatGPT是OpenAI训练的一种新型模型,可以进行对话交互。该模型经过训练,可以按照提示中的指令,在对话上下文中提供适当的回应。ChatGPT 可以帮助回答问题、建议菜谱、按某种风格写歌词、生成代码等等。
汀丶人工智能
2023/05/15
1.5K0
Prompt工程师指南应用篇:Prompt应用、ChatGPT|Midjouney Prompt Engineering
《ChatGPT Prompt Engineering for Developers》学习笔记
本笔记是 deeplearning.ai 最近推出的短期课程《ChatGPT Prompt Engineering for Developers》的学习总结。
口仆
2023/08/28
7470
《ChatGPT Prompt Engineering for Developers》学习笔记
大模型Prompt-Tuning技术进阶
近两年来,随之Prompt-Tuning技术的发展,有诸多工作发现,对于超过10亿参数量的模型来说,Prompt-Tuning所带来的增益远远高于标准的Fine-tuning,小样本甚至是零样本的性能也能够极大地被激发出来,得益于这些模型的 参数量足够大 ,训练过程中使用了 足够多的语料 ,同时设计的 预训练任务足够有效 。最为经典的大规模语言模型则是2020年提出的GPT-3,其拥有大约1750亿的参数,且发现只需要设计合适的模板或指令即可以 实现免参数训练的零样本学习 。
@小森
2024/06/06
4290
大模型Prompt-Tuning技术进阶
解密Prompt系列1. Tunning-Free Prompt:GPT2 & GPT3 & LAMA & AutoPrompt
借着ChatGPT的东风,我们来梳理下prompt范式的相关模型。本系列会以A Systematic Survey of Prompting Methods in Natural Language Processing这篇综述为基础,分门别类的整理下这几年比较有代表性的prompt模型。或许你还以其他形式看到过prompt概念,例如Demonstration,Instruction,In-Context learning,few-shot learning等等
风雨中的小七
2023/02/10
6.3K1
解密Prompt系列1. Tunning-Free Prompt:GPT2 & GPT3 & LAMA & AutoPrompt
【吴恩达-AIGC/ChatGPT提示工程课程】第二章 - 编写 Prompt 的原则
本章的主要内容为编写 Prompt 的原则,在本章中,我们将给出两个编写 Prompt 的原则与一些相关的策略,你将练习基于这两个原则来编写有效的 Prompt,从而便捷而有效地使用 LLM。
元壤教育
2023/05/01
7070
【吴恩达-AIGC/ChatGPT提示工程课程】第二章 - 编写 Prompt 的原则
大模型思维链经典论文阅读之——Zero-shot CoT, Manual CoT, AutoCoT
ChatGPT 以及 GPT4 作为纯自回归式语言模型,本不应该期待其有什么推理能力,尤其是数学推理,但是他们在基础的推理任务上却十分让我们惊艳(当然肯定不能作为专业的数学解题工具),这让我们非常好奇大模型(LLM)这么多参数里面到底藏了些什么好东西,怎么去激发大模型的潜能给我们带来更多惊喜。
beyondGuo
2023/09/01
3.4K0
大模型思维链经典论文阅读之——Zero-shot CoT, Manual CoT, AutoCoT
你真的会写 Prompt ? 剖析 RAG 应用中的指代消解
随着 ChatGPT 等大语言模型(LLM)的不断发展,越来越多的研究人员开始关注语言模型的应用。
Zilliz RDS
2023/12/26
1.1K0
你真的会写 Prompt ? 剖析 RAG 应用中的指代消解
推荐阅读
Prompt learning 教学技巧篇:通过增加示例、引导词、特殊符号指令等方式让chatgpt输出更好的答案
2.1K0
Prompt工程师指南从基础到进阶篇:用于开发和优化提示,以有效地使用语言模型(LMs)进行各种应用和研究主题
3.8K1
Prompt Learning:【文心一言】提示词功能系统学习,
1.9K0
10种实用的Prompt技巧图解
2.8K0
提升ChatGPT性能的实用指南:Prompt Engineering的艺术
1.8K0
解读提示工程(Prompt Engineering)
10K0
​解密Prompt系列11. 小模型也能思维链推理
2.6K0
迈向大模型第一步:Prompt提示工程基础原理及实践
3.9K3
大语言模型的预训练[6]:思维链(Chain-of-thought,CoT)定义原理详解、Zero-shot CoT、Few-shot CoT 以及在LLM上应
3.3K0
从菜鸟到大神,Prompt设计的核心秘诀全在这里!
4230
吴恩达 prompt 课程笔记
5320
解密Prompt系列9. 模型复杂推理-思维链基础和进阶玩法
7K6
Prompt Engineering 写作准则与应用示例集
1.2K0
Prompt工程师指南应用篇:Prompt应用、ChatGPT|Midjouney Prompt Engineering
1.5K0
《ChatGPT Prompt Engineering for Developers》学习笔记
7470
大模型Prompt-Tuning技术进阶
4290
解密Prompt系列1. Tunning-Free Prompt:GPT2 & GPT3 & LAMA & AutoPrompt
6.3K1
【吴恩达-AIGC/ChatGPT提示工程课程】第二章 - 编写 Prompt 的原则
7070
大模型思维链经典论文阅读之——Zero-shot CoT, Manual CoT, AutoCoT
3.4K0
你真的会写 Prompt ? 剖析 RAG 应用中的指代消解
1.1K0
相关推荐
Prompt learning 教学技巧篇:通过增加示例、引导词、特殊符号指令等方式让chatgpt输出更好的答案
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档