ldms

微服务6大核心点

1、API Geteway

2、进程间通信

3、服务注册发现

4、事件驱动的数据管理

5、微服务部署策略

6、微服务化改造

go微服务搭建

我们的微服务技术选型为go-micro工具集+protobuf代码生成

什么是Protobuf

Protobuf是一种平台无关、语言无关、可扩展且轻便高效的序列化数据结构的协议,可以用于网络通信和数据存储。

为什么使用Protobuf

  • 序列化后体积小传输速度快带宽和速度会有优化
  • 序列化速度快 是json和xml的20-100倍
  • 可以跨平台、跨语言、可扩展性好
  • 使用方面 proto编译器自动序列化和反序列化
  • 加密性好 http传输内容抓包只能看到字节

安装go-micro

go get -u github.com/micro/micro

micro工具集相关文档 https://micro.mu/docs/cn/

安装protobuf

brew install protobuf

安装golang的protobuf代码生成器 protoc-gen-go

go get -u github.com/golang/protobuf/{proto,protoc-gen-go}

安装micro的protobuf插件 protoc-gen-micro

go get -u github.com/micro/protoc-gen-micro

服务发现与注册使用consul也可以使用etcd、etcdv3、k8s等

安装 brew install consul

启动 consul agent -dev

http://127.0.0.1:8500/ui/ 就可以看到已经注册的服务

安装go-micro的mysql驱动

go get -u github.com/go-sql-driver/mysql

我们的项目使用对数据库的orm操作,所以使用gorm,也有xorm可以使用

go get -u github.com/jinzhu/gorm

安装go-mongo驱动,因为mongo官网对于go的支持驱动还不是很好 所以使用mgo

go get gopkg.in/v2/mgo

安装go-micro的config

go get -u github.com/micro/go-config

安装go-redis驱动

go get -u github.com/go-redis/redis

安装jwt-go

go get -u github.com/dgrijalva/jwt-go

jwt是JSON Web Token的简称,它是web服务token安全验证的高效解决方案。我们用它生成token与验证token。

jwt Token属于自包含的token,它结构有三个部分组成

  • Header 键值对,声明token签名算法,类型等元数据信息
  • Payload 键值对,里面一般存放用户数据
  • Signature 由Header+Payload+密钥加密生成

三者会被Base64-URL各自编码成字符串,再组合成xxxxx.yyyyy.zzzzz的形式。

验证的过程就是重新再把Header+Payload+密钥加密,看二者的Signature是否一致。

分类:

技术点:

相关文章:

  • 2022-01-16
  • 2022-01-31
  • 2021-04-05
猜你喜欢
  • 2021-12-18
  • 2021-10-10
  • 2021-05-24
  • 2021-09-15
  • 2021-09-20
  • 2022-12-23
  • 2021-08-13
相关资源
相似解决方案