{"id":21018694,"url":"https://github.com/tal-tech/odin","last_synced_at":"2025-05-15T06:31:43.154Z","repository":{"id":109364094,"uuid":"282787390","full_name":"tal-tech/odin","owner":"tal-tech","description":"Odin is a Rpcx-based rpc framework, reference rpcx https://rpcx.io/","archived":false,"fork":false,"pushed_at":"2020-10-29T12:45:46.000Z","size":66,"stargazers_count":107,"open_issues_count":3,"forks_count":20,"subscribers_count":9,"default_branch":"master","last_synced_at":"2025-04-03T05:12:22.376Z","etag":null,"topics":["go","go-micro","microservice","rpc","rpcx"],"latest_commit_sha":null,"homepage":"https://www.yuque.com/tal-tech/odin","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tal-tech.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2020-07-27T03:43:44.000Z","updated_at":"2023-11-18T20:34:35.000Z","dependencies_parsed_at":null,"dependency_job_id":"c50a66ff-aa31-4d33-bcf8-2c7fe7c36309","html_url":"https://github.com/tal-tech/odin","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tal-tech%2Fodin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tal-tech%2Fodin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tal-tech%2Fodin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tal-tech%2Fodin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tal-tech","download_url":"https://codeload.github.com/tal-tech/odin/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254288227,"owners_count":22045862,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["go","go-micro","microservice","rpc","rpcx"],"created_at":"2024-11-19T10:27:08.560Z","updated_at":"2025-05-15T06:31:40.506Z","avatar_url":"https://github.com/tal-tech.png","language":"Go","funding_links":[],"categories":["odin"],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n \u003ca href=\"https://tal-tech.github.io/odin-doc/\" target=\"_blank\"\u003e\n     \u003cimg src=\"https://xesftp.oss-cn-beijing.aliyuncs.com/oa/res/odin.jpg?raw=true\"  alt=\"Odin Logo\" align=center /\u003e\n \u003c/a\u003e \n\u003c/p\u003e\n\n业内存在多款流行的微服务框架，包括Montan、rpcx、gRpc、Dubbo等\n\nOdin框架是好未来在使用rpcx框架过程中不断完善、改进的，目前已在好未来多个部门使用，承载大量核心服务，经历暑期大班直播高峰考验\n\n2019年 开始搭建框架主架构，并在此基础上不断完善、补充新功能\n\n2020年8月 开源 欢迎大家一起参与共建\n\n\n\n## Odin框架文档    \n\n[Document](https://tal-tech.github.io/odin-doc/) \n\n[中文文档](https://www.yuque.com/tal-tech/odin) \n\n## 简介\n\nOdin是基于go语言的rpc框架，框架除了致力于提供高性能的服务间调用能力外，也提供完善的服务治理功能、支持多种服务注册发现机制。为了业务方使用框架更加便捷，框架还具有配套管理工具自动生成代码，提高开发效率。\n\n## 特性 \n\n### 高性能\n首先，框架底层基于rpcx框架，其是一个纯Go语言的rpc框架，与主流rpc框架进行性能对比，优势明显。其性能仅弱于Go原生rpc调用。\n\n### 服务治理\nodin框架可提供统一的服务注册管理，仅通过配置地址方式即可方便使用以及切换服务注册中心。在支持原生容错和负载均衡机制基\n础上，开发插件系统，包括限流、断路器、打点统计、耗时报警等。\n\n### 开发便捷\nOdin结合配套的辅助工具[rigger](http://github.com/tal-tech/rigger)，可以直接生成框架模板，业务使用方只需定义对外提供接口，可自动生成服务代码，开发只需编写\n业务逻辑。提供给其他服务的client代码，同样可命令生成，方便调用。\n\n### 自定义支持\nOdin框架目前已支持日志Trace跨服务传递，记录一次完整请求的所有记录，根据同一TraceID，查看全部链路。其他包括动态插件都\n可自定义开发，只需最终在main注入即可。\n\n## 快速入门\n\n### 安装脚手架\n\n通过 [rigger](http://github.com/tal-tech/rigger)脚手架可一键创建odin模板的rpcx项目\n\n### 安装框架\n```\nrigger new rpc rpcproject\n正克隆到 '/winshare/go/src/rpcproject'...\nrpcprojec项目已创建完成, 使用:\ncd /winshare/go/src/rpcproject \u0026\u0026 rigger build \n开始你的微服务之旅！\n```\n\n### 编译\n```\n//Makefile可依需求自定义\nrigger build\n```\n\n### 启动\n```\n//启动\nrigger start\n```\n\n## 配置\n```\n//conf/conf.ini\n//listen port\n[Server]\nnetwork=tcp\nport=11900\n\n//Register Addr\n[Registry]\n//注册中心启用开关\nstatus=off \n//Registry Address\naddrs=127.0.0.1:2181\nbasePath=/odin_demo\n```\n\n## 运行\n```\nrigger example zookeeper\n//Output\nSayHello: i'm hello service,recv greeting:hello, i'm odin client\nAddUser: \u0026{Id:3}\nUserInfo: \u0026{学而思 %!s(int=10) beijing}\nUpdateUser: \u0026{}\nUserInfo: \u0026{网校 %!s(int=20) beijing}\n```\n\n## 框架共建\n我们的目标是将Odin打造成一个高性能、高可靠、易用的微服务框架，欢迎大家共同参与，做更多的创新以及贡献，包括但不限于\n以下内容：\n* 支持更多的调用方式；\n* 扩展中间件功能；\n* 提供更灵活、更便捷的服务治理功能；\n\n## 联系我们\n\u003cp align=\"left\"\u003e\n \u003ca href=\"https://tal-tech.github.io/odin-doc/\" target=\"_blank\"\u003e\n     \u003cimg src=\"https://cdn.nlark.com/yuque/0/2020/png/2138318/1600340932767-f20251e4-688a-4077-9721-9296f5319e56.png\"  alt=\"Contact Us\" align=center /\u003e\n \u003c/a\u003e\n\u003c/p\u003e\n\u003cp align=\"left\"\u003e\n（微信扫一扫，申请加入开发讨论微信群）\n\u003c/p\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftal-tech%2Fodin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftal-tech%2Fodin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftal-tech%2Fodin/lists"}