微服务
文章平均质量分 87
架构简介+grpc
go&Python
开发转运维(devops,prometheus)中(暂时中止),js/app逆向(进度50%),还想写go(后面再学一遍吧)。目标不大,路在脚下
展开
-
potobuf 进阶操作
可以为.proto文件新增一个可选的package声明符,用来防止不同的消息类型有命名冲突,区分语言,go_package为go语言的定义。因为客户端和服务端要使用同一个proto文件,可能是两个人写的,如果两个proto文件内容不一致,会导致错误。proto文件的message可以嵌套其他的message,修改order.proto如下。如果protobuf定义了类型,在gRPC使用过程中没有传值,会使用默认值。中,找到更多"序列化消息时各种类型如何编码"的信息。原创 2022-10-28 14:59:33 · 1352 阅读 · 0 评论 -
protobuf文档参考
先来看一个非常简单的例子。假设你想定义一个“搜索请求”的消息格式,每一个请求含有一个查询字符串、你感兴趣的查询结果所在的页数,以及每一页多少条查询结果。}文件的第一行指定了你正在使用proto3语法:如果你没有指定这个,编译器会使用proto2。这个指定语法行必须是文件的非空非注释的第一个行。SearchRequest消息格式有3个字段,在消息中承载的数据分别对应于每一个字段。其中每个字段都有一个名字和一种类型。原创 2022-10-16 09:26:32 · 1058 阅读 · 0 评论 -
gRPC四种通信模式
gRPC设计为低延迟和⾼吞吐量通信。gRPC⾮常适⽤于效率⾄关重要的轻型微服务。点对点实时通信 - gRPC对双向流媒体提供出⾊的⽀持。gRPC服务可以实时推送消息⽽⽆需轮询。多语⾔混合开发环境 - gRPC⼯具⽀持所有流⾏的开发语⾔,使gRPC成为多语⾔开发环境的理想选择。⽹络受限环境 - 使⽤Protobuf(⼀种轻量级消息格式)序列化gRPC消息。gRPC消息始终⼩于等效的JSON消息。原创 2022-09-27 11:16:22 · 1460 阅读 · 0 评论 -
protobuf和gRPC
grpc 是 google 给出的 rpc 调用方式,它基于 google 的 protobuf 定义方式,提供了一整套数据定义和 rpc 传输的方式它是一个高性能、开源和通用的 RPC 框架,面向移动和 HTTP/2 设计。grpc,grpc-java,grpc-go. 其中 C 版本支持C,C++,Node.js,Python,Ruby,,PHP和C#支持.原创 2022-09-26 15:20:38 · 1381 阅读 · 0 评论 -
go 实现 rpc
远程过程调用(Remote Procedure Call, RPC) 是一个通信协议go 中实现rpc 非常简单,官方提供了封装好的包,并且还有一些第三方的包go 官方的 net/rpc 库使用 encoding/gob 进行编码, 支持 tcp 和 http数据传输方式,由于gob 是go 独有的编码方式,所以go 的 RPC 只支持 go 开发的服务端和客户端之间的交互。原创 2022-09-25 15:58:10 · 1208 阅读 · 0 评论 -
CAP定理和BASE理论
eBay 的架构师 Dan Pritchett 源于对大规模分布式系统的实践总结,在 ACM 上发表文章提出 BASE 理论,BASE 理论是对 CAP 理论的延伸,核心思想是即使无法做到强一致性(Strong Consistency,CAP 的一致性就是强一致性),但应用可以采用适合的方式达到最终一致性(Eventual Consitency)。ACID 和 BASE 代表了两种截然相反的设计哲学,在分布式系统设计的场景中,系统组件对一致性要求是不同的,因此 ACID 和 BASE 又会结合使用。原创 2022-09-21 15:17:38 · 307 阅读 · 0 评论 -
rabbitmq 从入门到精通
消息队列就是基础数据结构中的“先进先出”的一种数据机构。想一下,生活中买东西,需要排队,先排的人先买消费,就是典型的“先进先出”原创 2022-08-26 17:32:48 · 1350 阅读 · 0 评论 -
python RPC框架
RPC 是指 远程过程调用, 简单点说就是 两台服务器 A,B 一个应用部署在 A 服务器上,想要调用 B 服务器上应用提供的函数或方法, 由于不在一个内存空间,不能直接调用。需要通过网络来表达调用的语义 和 传达调用的数据, 放回的结果。...原创 2022-08-26 17:29:28 · 3650 阅读 · 0 评论 -
微服务应用
客户端如何访问这些服务每个服务之间如何通信如此多的服务,如何实现?服务挂了,如何解决?(备份方案,应急处理机制)原来的 单体 方式开发,所有的服务都是本地的,UI 可以直接调用,现在按功能拆分成独立的服务,跑在独立的一般都在独立的进程了。客户端 UI 如何访问他?后台有 N 个服务,前台就需要记住管理 N 个服务,一个服务 **下线**、**更新**、**升级**,前台就要重新部署,这明显不服务我们拆分的理念,特别当前台是移动应用的时候,通常业务变化的节奏更快。原创 2022-09-20 14:22:02 · 1088 阅读 · 0 评论 -
一文详解微服务架构
Service Mesh是用于处理服务间通信的基础设施层,用于在云原生应用复杂的服务拓扑中实现可靠的请求传递微服务更像是一个服务之间的生态,专注于服务治理等方面,而服务网格更专注于服务之间的通信服务网格是一个基础设施层,用于处理服务间通信。元原生应用有着复杂的服务拓扑,服务网格负责在这些拓扑中实现请求的可靠传递。在实践中,服务网格通常实现为一组轻量级网络代理,它们与应用程序部署在一起,而对应用程序透明。服务网格(Service Mesh)是一个专门处理服务通讯的基础设施层。原创 2022-09-20 10:57:27 · 2493 阅读 · 0 评论 -
Iaas-Paas和Saas
iass基础设施服务(组装机):你买了一大堆电脑配件,cpu 主板…然后组装完成后 装上系统就可以上网。还要自己提供场地 环境paas平台即服务(品牌机):买回来开机就行。需要自己提供场地,和环境(电源)saas软件即服务(去网吧):电脑,场地,环境(电源,网线,饮料)都是网吧提供的服务。原创 2022-09-20 09:51:24 · 187 阅读 · 0 评论