程序员书籍笔记 程序员书籍笔记
  • JavaScript
  • HTML/CSS
  • PHP
  • Python
  • Go
  • 数据库
  • 容器
  • 微服务
  • 消息队列
  • 搜索引擎
  • 大数据
  • 鸟哥Linux私房菜
其他
  • 大数据
  • 深度学习
APP下载 (opens new window)
GitHub (opens new window)
  • JavaScript
  • HTML/CSS
  • PHP
  • Python
  • Go
  • 数据库
  • 容器
  • 微服务
  • 消息队列
  • 搜索引擎
  • 大数据
  • 鸟哥Linux私房菜
其他
  • 大数据
  • 深度学习
APP下载 (opens new window)
GitHub (opens new window)
  • 数据库

  • 容器

  • 微服务

    • 基础概念
      • 微服务的几个重要组件
        • protobuf格式介绍
        • protobuf安装
  • 消息队列

  • 搜索引擎

  • 大数据

  • 框架和软件
  • 微服务
小游
2021-05-01

基础概念

微服务与微服务架构区别

微服务架构是一种设计方法,微服务是使用这个方法而设计的一个应用。

微服务框架是将复杂的系统使用组件化的方式进行拆分,并使用轻量级通讯方式进行整合的一种设计方法

我们使用micro作为我们的架构

微服务架构的缺点

  • 复杂性逐渐变高
  • 技术债务逐渐上升
  • 维护成本大
  • 持续交付周期长
  • 可扩展性差

# 微服务的几个重要组件

跨语言和跨平台的通信格式 protobuf

通信协议 gRPC

调度管理服务发现 consul

微服务框架 micro

部署 docker

# protobuf格式介绍

protobuf是 google旗下的一款平台无关,语言无关,可扩展的序列化结构数据格式。所以很适合用做数据存储和作 为不同应用,不同语言之间相互通信的数据交换格式,只要实现相同的协议格式即同一prot件被编译成不同的 语言版本,加入到各自的工程中去。这样不同语言就可以解析其他语言通过 protobu序列化的数据。目前官网提 供了C++、Python、JAVA、GO等语言的支持。 google在2008年7月7号将其作为开源项目对外公布。

# 数据交互xml、json、 protobu格式比较

1、json:-般的web项目中,最流行的主要还是json。因为浏览器对于json数据支持非常好,有很多内建的函数支 持 2、xm:在 webservice中应用最为广泛,但是相比于json,它的数据更加冗余,因为需要成对的闭合标签Njso 用了键值对的方式,不仅压缩了一定的数据空间,同时也具有可读性 3、 protobuf是后起之秀,是谷歌开源的一种数据格式,适合高性能,对响应速度有要求的数据传输场景。因为 profobuf是二进制数据格式,需要编码和解码。数据本身不具有可读性。因此只能反序列化之后得到真正可读的数 据

相对于其它 protobu更具有优势 1:序列化后体积相比son和XML很小,适合网络传输 2:支持跨平台多语言 3:消息格式升级和兼容性还不错 4:序列化反序列化速度很快,快于son的处理速速

# protobuf安装

git clone https://github.com/protocolbuffers/protobuf
sudo apt install autoconf automake libtool curl make g++ unzip libffi-dev -y
./autogen.sh
./configure
make
sudo make install
sudo ldconfig
protoc -h
1
2
3
4
5
6
7
8

获取proto包

// 设置国内代理
go env -w GOPROXY=https://goproxy.cn,direct
go get -v -u github.com/golang/protobuf/proto
1
2
3

安装protoc-gen-go插件

go get -v -u github.com/golang/protobuf/protoc-gen-go
1
编辑 (opens new window)
上次更新: 2021/05/11, 19:39:39
docker常用命令
基本介绍和使用

← docker常用命令 基本介绍和使用→

Theme by Vdoing | Copyright © 2021-2021 小游
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式