微服务
文章平均质量分 96
程序猿加油站
自我评价
从事软件研发10年有余,喜欢钻研技术,擅长软件架构设计,linux负载,go语言开发,php开发!
展开
-
Kong Api Gateway
在微服务的架构中,一个应用可能背拆分许多个小的服务系统,这些小系统可能自成一体,有自己的硬件资源、数据库、框架,甚至连语言都各不相同,这些小系统通常以Restfull API风格的借口提供给前端或者其他系统调用,一个应用可能会被拆分上百上千个API,管理起来极其不变,这个时候出现了API网关,API网关提供了一个统一的入口,将流量转发给对应的后端取得数据后再一次返回,并且在次基础上提供各种认证鉴权流控等等功能让后端专心于自己的业务。统一API入口隔离后端认证鉴权流控负载均衡。原创 2023-01-20 00:09:44 · 2202 阅读 · 2 评论 -
实现分布式追踪系统Jaeger 从php API Gateway 到go-micro微服务
分布式调用链跟踪系统,属于监控系统的一类。系统架构逐步演进时,后期形态往往是一个平台由很多不同的服务、组件构成,用户请求过来后,可能会经过其中多个服务。不过,出问题时往往很难排查,如整个请求变慢、偶尔报错、不可用等,我们很难得知具体是由哪一个或哪些服务引起的,通常开发同学都会互相甩锅,最后不得不花大量时间人肉 tracingJaeger是Uber Technologies用GO语言开发的分布式...原创 2020-03-04 18:27:42 · 1749 阅读 · 1 评论 -
在微服务架构中实现查询
在微服务架构中实现查询操作有两种不同的模式:1:API组合模式 这是最简单的方法,应尽可能使用。它的工作原理是通过定义一个API组合器(API Composer)实现查询,该API组合器会调用拥有数据的服务,并组合服务返回的查询结果什么是API组合模式:API组合器它通过查询数据提供方的服务来实现查询操作数据提供方服务拥有查询返回的部分数据的服务模式:API组合通过...原创 2019-10-06 22:27:04 · 789 阅读 · 0 评论 -
微服务架构中的业务逻辑设计
前言:企业应用程序的核心是业务逻辑,业务逻辑实现了业务规则。但是由于业务逻辑分散在多个服务上,因此在微服务架构中开发复杂的业务逻辑更具有挑战性。我们需要解决两个问题:首先,典型的领域模型是由各种类交织在一起的一个网络。虽然这在单体应用程序中不是问题,但是在微服务架构中,类分散在不同的服务中,就需要跨越服务边界(也就是进程)的对象应用其次,是在设计微服务架构下的业务逻辑,这些业务逻辑受到微...原创 2019-10-01 16:53:00 · 1276 阅读 · 0 评论 -
使用saga管理微服务事务
使用Saga管理事务:在微服务架构中,单个服务中的事务仍然可以使用ACID事务。然而,在对更新多个服务所拥有的数据的操作实现事务时,我们面临着新的挑战。跨服务的操作必须使用所谓的Saga(一种消息驱动的本地事务序列)来维护数据一致性,而不是ACID事务。Saga的一个挑战在于只满足ACD(原子性,一致性和持久性)特性,缺乏隔离性。因此,应用程序必须使用所谓的对称,找到办法来防止或减少由于缺...原创 2019-08-22 14:21:27 · 722 阅读 · 0 评论 -
微服务异步通信->消息代理
使用消息代理基于消息传递通常使用消息代理,即服务通信的基础设施。还可以使用无代理的消息传递架构,其中服务之间通信。两种方法(如下图所示)具有不同的利弊,但通常基于消息代理的架构是更好的一种方法。无代理消息:无代理架构中,服务可以直接交互消息。ZeroMQ是一种流行的无代理消息技术。它既是规范,也是一组适用于不同编程语言的库,支持各种传输协议,包括TCP、UNIX风格的套接字和多播。 无...原创 2019-08-06 18:33:03 · 697 阅读 · 1 评论 -
服务的拆分策略
微服务是一种架构风格:微服务架构也是一种架构风格。它的实现视图由多个组件构成。它的组件是服务,连接器是使这些服务能够协作的通信协议(如HTTP REST RPC)。每个服务都有自己的逻辑视图架构。模式:微服务架构:将应用程序构建为松耦合、可独立部署的一组服务。什么是服务: 服务是一个单一的、可独立部署的软件组件,它实现了一下有用的功能。列如 User Service服务。此服务具有API...原创 2019-07-22 23:29:02 · 683 阅读 · 0 评论 -
微服务架构的基础设施
一:服务发现在现代基于云的微服务应用程序中,具有动态性。服务实例具有动态分配的网络位置。由于自动扩展、故障、升级,服务实例集会动态更改。因此客户端需要使用服务发现。服务发现的概念:其关键组件是服务注册表,它是包含服务实例网络位置信息的一个数据库。服务启动或停止时,服务发现机制会更新服务注册表。当客户端调用服务时,服务发现机制会查询服务注册表以获取服务实例的列表,并将请求路由到其中一个服...原创 2019-07-20 22:19:07 · 1480 阅读 · 0 评论 -
微服务架构中的进程间通信2(异步通信)
基于异步消息模式的通信:使用消息机制时,服务之间的通信采用异步交换消息的方式完成。基于消息机制的应用程序通常使用消息代理,它充当服务之间的中间件。什么是消息传递:消息通过消息通道进行交换。发送方(客户端或服务)将消息写入通道,接收方(客户端或服务)从消息通道读取消息。消息由消息头部和消息主体组成。标题是名称与值对的集合,描述正在发送的数据元数据。除了消息发送者提供的名称与值对之外,消...原创 2019-07-30 11:12:27 · 576 阅读 · 1 评论 -
微服务架构中的进程间通信1(同步通信)
微服务架构中的进程间通信概述: 进程之间的通信技术有很多。服务可以使用基于同步请求/响应的通信机制,例如HTTP REST或gRPC。另外,也可以使用异步的基于消息的通信机制,比如AMQP或STOMP。消息的格式也不尽相同。服务可以使用具备可读性的格式,比如json,XML。也可以使用更加高效的,基于二进制的Avro或Protocol Buffers格式交互方式:有多种客户端与服务端的交互...原创 2019-07-23 18:19:43 · 714 阅读 · 1 评论 -
微服务架构的好处和弊端
微服务架构有如下好处:1:使大型的复杂应用程序可以持续交付和持续部署持续交付和持续部署是DevOps的一部分,DevOps是一套快速、频繁、可靠的软件交付实践。高效的DevOps组织通常将软件部署到生产环境时面临更少的问题和故障。DevOps工具有Docker、Kubernets、Jenkins、Git等。2:每个服务相对较小并容易维护微服务架构相比单体应用要小的多,开发者理解服务...原创 2019-07-18 22:23:12 · 6543 阅读 · 0 评论 -
微服务是什么
在传统的整体应用程序中,所有组织功能都写入一个应用程序。有时它们按类型分组,例如 Controller,View,Model。其他时候,可能在较大的应用程序中,功能由关注点或功能分开。所以我们可能会针对一些功能进行分模块,但是最终所有的功能,代码还是一个整体。扩展立方体和服务 如下图图书,图片摘自,微服务架构设计X轴扩展:在多个实例之间实现请求的负载均衡X轴扩展是扩展单体应用程...原创 2019-07-18 22:06:54 · 431 阅读 · 0 评论