GMS 正在参加 2020 年度 OSC 中国开源项目评选,请投票支持!
GMS 在 2020 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
投票让它出道
已投票
授权协议 未知
开发语言 Google Go
操作系统 跨平台
软件类型 开源软件
所属分类 程序开发微服务框架
开发厂商
地区 不详
提 交 者 高建文
适用人群 未知
收录时间 2020-10-26

软件简介

GMS

今天是2020年10月24日,一年一度的程序员节,把这个还在开发中的项目开源出来,感兴趣的朋友可以一起参与开发。如果有大神路过请多指教。

GMS 是一款基于 gnet 网络框架开发的 Golang RPC 微服务框架。

特点:

1:非常简单、学习成本极低。GMS处于初期阶段您想参与开发也非常简单。

只要您之前使用过类似Gin、beego这样的web框架。就能快速上手,使用方法和这些web框架一样简单。

2: 不用定义proto等协议文件。

写proto文件不仅麻烦还容易出错。而且使用协议文件定义服务,最终在框架内部实现都要使用反射去调用目标方法。用反射调用方法比直接调用肯定性能要好。所以如果其他条件不变的情况,用GMS这种实现方式性能肯定是最好的。

缺点:

1:目前很多功能还没有完善,不建议应用在公司项目中。

快速开始

下载源码 进入 example 直接运行。或者按照以下步骤自己搭建Demo运行

下面我们以一个加法计算服务为类

1:定义请求和返回对象

package modeltype AdditionReq struct {
  NumberA int
  NumberB int
}
​
type AdditionRes struct {
  Result int
}

2:开发服务端

package mainimport (
  "github.com/akkagao/gms""github.com/akkagao/gms/gmsContext""example/model"
)
​
func main() {
  // 初始化GMS服务
  gms := gms.NewGms()
​
  // 添加业务处理路由(addition是业务处理方法的唯一标识,客户端调用需要使用)
  gms.AddRouter("addition", Addition)
​
  // 启动,以1024 为启动端口
  gms.Run(1024)
}
​
/*
加法计算
*/
func Addition(c *gmsContext.Context) error {
  additionReq := &model.AdditionReq{}
  // 绑定请求参数
  c.Param(additionReq)
​
  // 结果对象
  additionRes := &model.AdditionRes{}
  additionRes.Result = additionReq.NumberA + additionReq.NumberB// 返回结果
  c.Result(additionRes)
  return nil
}
​

3:开发客户端

package mainimport (
  "fmt""github.com/akkagao/gms/client"
  "github.com/akkagao/gms/codec"
  "github.com/akkagao/gms/discovery""example/model"
)
​
/*
  模拟客户端
*/
func main() {
  // 初始化一个点对点服务发现对象
  discovery := discovery.NewP2PDiscovery("127.0.0.1:1024")
​
  // 初始化一个客户端对象
  additionClient, err := client.NewClient(discovery)
  if err != nil {
    fmt.Println(err)
    return
  }
​
  // 设置 Msgpack 序列化器,默认也是 Msgpack
  additionClient.SetCodecType(codec.Msgpack)
​
  // 请求对象
  req := &model.AdditionReq{NumberA: 10, NumberB: 20}
  // 接收返回值的对象
  res := &model.AdditionRes{}
​
  // 调用服务
  err = additionClient.Call("addition", req, res)
  if err != nil {
    fmt.Println(err)
  }
  fmt.Println(fmt.Sprintf("%d+%d=%d", req.NumberA, req.NumberB, res.Result))
}
​

待开发功能

  • v0.1.1 服务端支持 客户端指定序列化方式
  • v0.1.2 注册中心
  • 流控
  • 熔断
  • 监控统计
展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论 (0)

加载中
更多评论
暂无内容
发表了博客
2019/10/22 10:03

Google GMS介绍

Google GMS介绍 GMS全称为GoogleMobile Service。GMS目前提供有Search、Search by Voice、Gmail、Contact Sync、Calendar Sync、Talk、Maps、Street View、YouTube、Play store等apk和服务。 google为了确保全世界的硬件厂商设计和生产的安卓为基础的各种智能硬件产品的兼容性、稳定性,以及这些硬件与安卓各种自带的软件...

0
0
发表了博客
2019/09/28 17:31

google GMS介绍

GMS全称为GoogleMobile Service。GMS目前提供有Search、Search by Voice、Gmail、Contact Sync、Calendar Sync、Talk、Maps、Street View、YouTube、Play store等apk和服务。 google为了确保全世界的硬件厂商设计和生产的安卓为基础的各种智能硬件产品的兼容性、稳定性,以及这些硬件与安卓各种自带的软件 APP 产品和服务...

0
0
发表了博客
2016/08/05 11:46

[M0]GMS包应用列表

MTK,6.0,R6

0
0
发表了博客
2019/02/25 11:44

android之GMS认证

先说一下,常见的刷机工具: Rockchip 1.选择软件img文件,确保是user版本 2.选中文件,等待文件加载完毕 3.同时按音量+和开机键 4.loader识别后点击升级 MTK 1.手机需是关机状态 2.刷机要选择firmware update,点击downloader 3.插上手机即可 Spreadtrum 1.选择软件.pac文件 2.点击开始刷机 PhoenixSuit 1.点击image选择...

0
0
发表了博客
2018/06/22 15:48

基于Ubuntu搭建GMS测试环境

一、版本信息: 系统版本:Ubuntu 18.04.2 LTS JDK版本: 1.8.0_171 SDK版本:android-sdk_r24.4.1-linux.tgz ADB版本:1.0.40 apktool版本:2.4.0 aapt(Android Asset Packaging Tool)版本:v0.2-eng.ibotpe.20190216.092407 二、安装JDK #sudo add-apt-repository ppa:openjdk-r/ppa #sudo apt-get update #sudo ap...

0
0
发表了博客
2019/06/06 18:05

GMS认证-Android VTS测试

1、VTS简介 VTS的全称是 Vendor Test Suite(供应商测试套件)。 为何引入VTS测试? 目前Android的系统升级是很麻烦的,为了能更快的将设备升级到新的Android版本,Android O 开始新引入了 Project Treble,Proje...

0
0
发表了博客
2015/09/11 07:34

Could not find com.google.android.gms:play-service

Could not find com.google.android.gms:play-services:3.1.59 3.2.25 4.0.30 4.1.32 4.2.40 4.2.42 4.3.23 4.4.52 5.0.77 5.0.89 5.2.08 6.1.11 6.1.71 6.5.87

0
0
发表了博客
01/19 00:39

[Google] - 为 HUAWEI MatePad Pro 配置 GMS 的方法

说明: 该教程基于 Mate 30 进行介绍,但也适用于 HUAWEI MatePad Pro。 准备资料: #1. 花粉俱乐部相关帖子 https://club.huawei.com/viewthreaduni-21567331-filter-reply-orderby-replies-page-1-1.html #2. 通用 lzplay 安装包 网盘:https://pan.baidu.com/share/init?surl=mpoWCswwAsrQhKm_vI6dgA 提取码:l4dz #3...

0
0
发表了博客
2018/04/21 17:52

CTS、CTS Verify、GTS测试以及GMS认证

<font size='9' face='黑体'>目录</font> [TOC] 一、一些概念 <font size='5' face='楷体' color='blue'>① CTS测试 </font> 以自动化测试为基础,测试Android系统的兼容性; <font size='5' face='楷体' color='blue'>② CTS Verify </font> 一个手工测试的apk,完成自动化测试无法完成的操作(锁屏、蓝牙、摄像头等);...

0
0
发表了博客
08/21 11:17

时势下的HMS和GMS的前世今生——前生篇

致各位互联网安卓应用开发者的一封信:   我是大菊厂消费者BG HMS云服务安全工程部运营喵一枚,学名“安全运营喵酱”,受邀在开发者社区论坛HMS Core发布自己对HMS VS GMS 的一点思考,主要作为事件的亲身经历着...

0
0
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
暂无内容
0 评论
2 收藏
分享
返回顶部
顶部