# chwlframework_grpc **Repository Path**: llnyxxzj/chwlframework_grpc ## Basic Information - **Project Name**: chwlframework_grpc - **Description**: 1、此项目为Java版本的GRPC框架,最终目标:让grpc不再复杂,Javaer像写常规服务一样写grpc服务 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 6 - **Forks**: 3 - **Created**: 2018-08-10 - **Last Updated**: 2024-09-29 ## Categories & Tags **Categories**: rpc **Tags**: None ## README # framework_grpc #### 项目介绍 01、此项目为Java版本的GRPC框架,最终目标:让grpc不再复杂,Javaer像写常规服务一样写grpc服务 02、此项目主要采用技术:etcd、grpc #### 项目计划 01、服务自动注册(已完成) 02、服务自动发现(已完成) 03、服务故障转移(已完成) 04、服务失败重试(已完成) 05、grpc请求自动负载均衡(已完成) 06、支持自定义grpc负载策略(已完成) 07、支持自定义grpc路由策略(已完成) 08、服务告警(计划中) 09、服务常规统计(成功、失败、可用率等) 10、服务流量削峰(计划中) 11、统一缓存服务(客户端服务发现缓存策略)(已完成) #### 软件架构 * 服务注册发现使用etcd * framework_etcd 服务注册 发现核心包 * framework_grpc_core grpc核心包(不同框架均基于此核心包开发) * framework_grpc grpc 普通项目包(支持不同框架使用) * framework_springboot_grpc 基于springboot封装开发 #### 安装教程 1. 常规项目直接通过maven引用framework_grpc项目即可 2. Spring项目直接通过maven引用framework_springboot_grpc项目即可 #### 使用说明 1.普通项目参考framework_grpc 中的单元测试GrpcClientServiceJunit及GrpcServerRunnerJunit 2.自定义GRPC负载策略实现UserDefinedInvocationHandler接口接口(需将实现类注入Spring容器(通过常规spring注入即可)) 3.spring项目配置etcd、grpc为以下配置 服务端 spring: grpc: enable: true port: 6565 serviceNames: etcd: endpoints: http://119.23.225.123:6500 客户端 spring: grpc: enable: true etcd: endpoints: http://119.23.225.123:6500 4、常规项目配置etcd、grpc为以下配置 服务端 EtcdService.getInstance().connection("http://119.23.225.123:6500"); new GrpcServerRunner(9000, new GrpcCommonService(AccountServiceImpl.class)).start(); 客户端 EtcdService.getInstance().connection("http://119.23.225.123:6500"); Object object = GrpcClientService.getInstance().invoke("accountService", "findAll"); #### 参与贡献 1. Fork 本项目 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request #### 码云特技 1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md 2. 码云官方博客 [blog.gitee.com](https://blog.gitee.com) 3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解码云上的优秀开源项目 4. [GVP](https://gitee.com/gvp) 全称是码云最有价值开源项目,是码云综合评定出的优秀开源项目 5. 码云官方提供的使用手册 [http://git.mydoc.io/](http://git.mydoc.io/) 6. 码云封面人物是一档用来展示码云会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)