Skip to content

watchman1989/rninet

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

51 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

rninet

概述

Golang微服务框架。目标是能够方便快捷的开发golang微服务。提供了组件,插件,中间件的功能。并支持代码自动生成。使得在微服务的开发过程中,减少框架类代码开发,更多的精力用在业务层面上。rninet既是一个微服务相关的工具,又是微服务开发的SDK。

组件功能

提供基础组件功能,把常用的,基础的组件封装起来,方便程序开发时调用。

Redis:封装了redis的客户端和操作。

Etcd:封装了etcd的客户端和操作。

Elasticsearch:封装了elasticsearch的客户端和操作。

Mongo: 封装了mongo客户端。

插件功能

把服务中某些共性的功能抽象出来,以插件的形式提供给服务。

服务注册与发现(多注册中心,提供多种服务注册发现机制,以适用更多的场景)

Etcd:使用etcd,实现服务的注册与发现。etcd是一个Go语言编写的分布式,高可用的一致性键值存储系统,用于配置共享和服务发现等。本项目利用etcd的K/V存储,租约和监控机制,实现了服务的注册和动态发现功能。

Consul:使用consul,实现服务的注册与发现。consul是一个分布式,高可用的服务注册发现系统。本项目利用consul的服务发现以及健康检查,实现了服务的注册与发现功能。

zookeeper

eureka

发布订阅功能(支持多种消息队列)

rabbitmq

nsq

kafka

redis

中间件功能

处理请求路由过程中,可加入前置或后置的中间件,可进行前置或后置的过滤,拦截等操作。

prometheus中间件,可在服务前后加入metrics打点,对服务调用监控或统计。

ratelimit

hystrix

zipkin

opentracing

自定义中间件。

代码生成功能

根据不同的参数,创建新的服务时自动生成相应的服务端,客户端代码。尽可能减少服务开发过程中框架类代码的编写。

server/client代码生成。

router代码生成。

handler代码生成。

middleware代码生成。

Done

rninet基本框架已搭好

组件功能:简单封装了redis,elasticsearch,etcd。

插件功能:服务注册发现插件(etcd,consul)。

中间件功能:增加了prometheus中间件。

代码生成功能:可生成server/client代码,router代码,handler代码,middleware代码。

TODO

添加更多的组件封装。

添加broker插件。

添加限流熔断中间件,调用链追踪中间件。

客户端负载均衡功能。

多维度配置功能。

完整的示例代码

详细的操作文档

About

golang micro service frame

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages