
go+python+node.js微服务架构
文章平均质量分 72
结合go和python+vue进行项目开发简述微服务架构。
一越王超
软件系统工程师
展开
-
多语言通信基础 07 rpc、http以及restful 之间的区别
我们在进行微服务网络架构编程的时候,可能涉及多语言,多服务间的通信,这个时候rpc、http以及restful 之间的区别就成了很多人心中的疑惑。本文从自身理解出发,阐释其间区别,如有错误请指正。1、RPC 和 REST 区别是什么?你一定会觉得这个问题很奇怪,是的,包括我,但是你在网络上一搜,会发现类似对比的文章比比皆是,我在想可能很多初学者由于基础不牢固,才会将不相干的二者拿出来对比吧。既然是这样,那为了让你更加了解陌生的RPC,就从你熟悉得不能再熟悉的 REST 入手吧。REST,是R原创 2022-04-22 11:55:59 · 3634 阅读 · 0 评论 -
多语言通信基础 06 go实现grpc的四种数据流模式实现
grpc的数据传输模式有多种:简单模式:客户端发起一次请求,服务端响应一次数据,和普通的rpc没有区别。 服务端数据流模式:客户端发起一次请求,服务端返回一段连续的数据流。典型的例子是客户端发给服务端一个股票代码,服务端将该股票的数据实时不断的返回给客户端。还有我们常用的订阅场景也属于服务端流模式。 客户端数据流模式。与服务端数据流模式相反,由客户端源源不断的像服务端发送数据流,发送结束后,由服务端返回一个响应。典型的例子是物联网终端像服务器报送数据。 双向数据流模式:客户端和服务端可以向双方实时原创 2022-04-22 10:18:18 · 2834 阅读 · 0 评论 -
多语言通信基础 05 go的grpc体验
RPC是远程调用的简称, 简单的说就是要像调用本地函数一样调用服务器的函数,Protobuf是 Google 公司开发的编码协议,它的优势是编码后的数据体积比较小(并不是压缩算法), 比较适合用于命令的传输编码。Protobuf 官方团队提供 Java/C++/Python 几个语言的支持, Go语言的版本由Go团队提供支持, 其他语言由第三方支持。接下来我们体验一下go的grpc。原创 2022-04-22 09:48:24 · 766 阅读 · 0 评论 -
多语言通信基础 04 grpc和protobuf
gRPC 是一个谷歌开源、高性能、通用的 RPC 框架,面向移动和 HTTP/2 设计。目前提供 C、Java 和 Go 语言版本,分别是:grpc, grpc-java, grpc-go. 其中 C 版本支持 C, C++, Node.js, Python, Ruby, Objective-C, PHP 和 C# 支持。grpc使用的不是json而是protobuf协议。protobufjava中的dubbo使用的协议是 dubbo/rmi/hessian,压缩比会比json高。常用的协议还.原创 2022-04-21 09:58:52 · 3699 阅读 · 0 评论 -
多语言通信基础 03 go和python的rpc通信
python有rpc开发的相关协议,同样go也有rpc的序列化协议Gob。标准库的RPC默认采用Go语言特有的gob编码,因此从其它语言调用Go语言实现的RPC服务将比较困难。在互联网的微服务时代,每个RPC以及服务的使用者都可能采用不同的编程语言,因此跨语言是互联网时代RPC的一个首要条件。得益于RPC的框架设计,Go语言的RPC其实也是很容易实现跨语言支持的。go语言的json序列化RPCGo语言的RPC框架有两个比较有特色的设计:一个是RPC数据打包时可以通过插件实现自定义的编码和解码;另原创 2022-04-19 10:06:46 · 2920 阅读 · 0 评论 -
多语言通信基础 02 ZERORPC实现rpc调用
zerorpc是利用zeroMQ消息队列+msgpack消息序列化(二进制)来实现类似grpc的功能跨语言远程调用。主要使用到zeroMQ的通信模式是ROUTER-DEALER,模拟grpc的请求-响应式和应答流式 RPC:zerorpc还支持 PUB-SUB通信模式的远程调用。zerorpc实际上会依赖msgpack-python、pyzmg、future、greenlet、geventGitHub - 0rpc/zerorpc-python: zerorpc for pythonhttps:/原创 2022-04-18 10:52:41 · 2433 阅读 · 0 评论 -
多语言通信基础 01 rpc
什么是rpcRPC(Remote Procedure Call) 远程过程调用,简单理解就是一个节点请求另一个节点提供服务。对应rpc的是本地过程调用,函数调用是最常见测本地过程调用。将本地过程调用变为远程过程调用会面临各种各样的问题。本地过程调用:...原创 2022-04-17 16:14:42 · 1225 阅读 · 0 评论 -
微服务架构开发环境搭建
微服务架构的软件开发有跨语言的特性,因此搭建合适的开发环境尤为重要。python环境 node.js环境 go环境 docker环境 mysql环境原创 2022-02-23 16:37:24 · 1673 阅读 · 0 评论 -
docker 安装mysql
步骤1: 拉取mysqldocker pull mysql:5.7安装完成:原创 2022-02-23 09:32:48 · 1007 阅读 · 0 评论 -
前后端分离 接口管理的痛点问题解决
几个概念:mock yapi 测试集基于docker部署yapi原创 2022-02-18 20:48:37 · 748 阅读 · 0 评论 -
单体应用和微服务应用
什么是单体应用一个归档包包含所有功能的应用程序,通常称为单体应用。一个归档包(可以是JAR、WAR、EAR或其它归档格式)包含所有功能的应用程序,通常称为单体应用。而架构单体应用的方法论,就是单体应用架构。将所有业务场景的表示层、业务逻辑层和数据访问层放在一个工程中,最终经过编译、打包,部署在一台服务器上。往往使用单一应用框架。例如单纯用django进行一个项目的前后端开发,开发出来的项目将django+uwsgi+mysqhl+nginx部署在一台服务器上的应用就是单体应用。 单体应...原创 2022-02-16 00:58:42 · 1174 阅读 · 0 评论