# odin **Repository Path**: ta-tech-team/odin ## Basic Information - **Project Name**: odin - **Description**: Odin is a Rpcx-based rpc framework, reference rpcx https://rpcx.io/ - **Primary Language**: Go - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-11-04 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README

Odin Logo

业内存在多款流行的微服务框架,包括Montan、rpcx、gRpc、Dubbo等 Odin框架是好未来在使用rpcx框架过程中不断完善、改进的,目前已在好未来多个部门使用,承载大量核心服务,经历暑期大班直播高峰考验 2019年 开始搭建框架主架构,并在此基础上不断完善、补充新功能 2020年8月 开源 欢迎大家一起参与共建 ## Odin框架文档 [Document](https://tal-tech.github.io/odin-doc/) [中文文档](https://www.yuque.com/tal-tech/odin) ## 简介 Odin是基于go语言的rpc框架,框架除了致力于提供高性能的服务间调用能力外,也提供完善的服务治理功能、支持多种服务注册发现机制。为了业务方使用框架更加便捷,框架还具有配套管理工具自动生成代码,提高开发效率。 ## 特性 ### 高性能 首先,框架底层基于rpcx框架,其是一个纯Go语言的rpc框架,与主流rpc框架进行性能对比,优势明显。其性能仅弱于Go原生rpc调用。 ### 服务治理 odin框架可提供统一的服务注册管理,仅通过配置地址方式即可方便使用以及切换服务注册中心。在支持原生容错和负载均衡机制基 础上,开发插件系统,包括限流、断路器、打点统计、耗时报警等。 ### 开发便捷 Odin结合配套的辅助工具[rigger](http://github.com/tal-tech/rigger),可以直接生成框架模板,业务使用方只需定义对外提供接口,可自动生成服务代码,开发只需编写 业务逻辑。提供给其他服务的client代码,同样可命令生成,方便调用。 ### 自定义支持 Odin框架目前已支持日志Trace跨服务传递,记录一次完整请求的所有记录,根据同一TraceID,查看全部链路。其他包括动态插件都 可自定义开发,只需最终在main注入即可。 ## 快速入门 ### 安装脚手架 通过 [rigger](http://github.com/tal-tech/rigger)脚手架可一键创建odin模板的rpcx项目 ### 安装框架 ``` rigger new rpc rpcproject 正克隆到 '/winshare/go/src/rpcproject'... rpcprojec项目已创建完成, 使用: cd /winshare/go/src/rpcproject && rigger build 开始你的微服务之旅! ``` ### 编译 ``` //Makefile可依需求自定义 rigger build ``` ### 启动 ``` //启动 rigger start ``` ## 配置 ``` //conf/conf.ini //listen port [Server] network=tcp port=11900 //Register Addr [Registry] //注册中心启用开关 status=off //Registry Address addrs=127.0.0.1:2181 basePath=/odin_demo ``` ## 运行 ``` rigger example zookeeper //Output SayHello: i'm hello service,recv greeting:hello, i'm odin client AddUser: &{Id:3} UserInfo: &{学而思 %!s(int=10) beijing} UpdateUser: &{} UserInfo: &{网校 %!s(int=20) beijing} ``` ## 框架共建 我们的目标是将Odin打造成一个高性能、高可靠、易用的微服务框架,欢迎大家共同参与,做更多的创新以及贡献,包括但不限于 以下内容: * 支持更多的调用方式; * 扩展中间件功能; * 提供更灵活、更便捷的服务治理功能; ## 联系我们

Contact Us

(微信扫一扫,申请加入开发讨论微信群)