https://github.com/spring-avengers/saluki
Spring Boot starter module for gRPC framework.
https://github.com/spring-avengers/saluki
grpc grpc-discovery grpc-extend grpc-registry http2 micro-service oop-service spring-boot spring-boot-grpc
Last synced: 11 days ago
JSON representation
Spring Boot starter module for gRPC framework.
- Host: GitHub
- URL: https://github.com/spring-avengers/saluki
- Owner: spring-avengers
- License: apache-2.0
- Created: 2017-10-26T07:36:52.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2022-10-04T23:39:33.000Z (almost 4 years ago)
- Last Synced: 2025-06-21T00:12:54.067Z (about 1 year ago)
- Topics: grpc, grpc-discovery, grpc-extend, grpc-registry, http2, micro-service, oop-service, spring-boot, spring-boot-grpc
- Language: Java
- Homepage:
- Size: 69.8 MB
- Stars: 126
- Watchers: 22
- Forks: 77
- Open Issues: 8
-
Metadata Files:
- Readme: README-zh.md
- License: LICENSE
Awesome Lists containing this project
- awesome-java - Saluki
README
# 概述
* saluki是以Grpc作为底层,提供一套高性能、易于使用的服务化治理框架
* 对Grpc的开发进行扩展,支持java开发服务端,其他语言(php、go、c++)做客户端语言,不会对Grpc原生开发方式产生破坏
# 功能
* 服务注册及发现,提供集群环境的服务发现及治理能力
* 服务路由,基于javascript路由规则配置及host的路由规则配置(路由规则示例)
* 熔断及隔离,基于hystrix来进行的熔断、隔离、服务降级
* 简化开发方式,对于Grpc原生stub方式进行封装,提供了使用interface和java Bean作为服务契约的方式
* 与spring-boot进行集成,提供了autoconfig的方式
* ha重试功能,针对幂等服务可以开启ha功能,当前服务实例存在问题,会剔除当前实例,选择另外实例进行负载均衡
* 可以自由选择三种模式,genric、Stub、proxy,其中泛化在框架集成上,原生Stub模式针对原生已有的Grpc服务、普通代理模式推荐使用
# 详细说明
* saluki-plugin提供的插件可以在grpc插件基础上生成interface及java bean
* saluki-serializer提供了将protobuf与java bean两者对象互相转换
* saluki-registry提供了服务注册,可以在此扩展,目前仅支持consul
# Compile
```
mvn install -Dmaven.test.skip=true
```
# 关于服务调用Sample
详细请查看 sample
# Quick Start
* 首先在proto文件工程配置grpc提供的gradle或maven插件生成stub
示例: api
```
kr.motd.maven
os-maven-plugin
1.4.1.Final
org.xolstice.maven.plugins
protobuf-maven-plugin
0.5.0
com.google.protobuf:protoc:3.0.2:exe:${os.detected.classifier}
grpc-java
io.grpc:protoc-gen-grpc-java:1.2.0:exe:${os.detected.classifier}
compile
compile-custom
```
* 再次添加saluki提供的gradle或maven插件根据protoc文件生成interface及pojo模型
```
io.github.saluki
saluki-core
1.5.7.RELEASE
provided
io.github.saluki
saluki-maven-plugin
1.5.7.RELEASE
src/main/proto
target/generated-sources/protobuf/java
proto2java
```
添加后在生成Grpc的相关类之后,同时会生成interface及bean


* 应用上两步生成的artifactId,添加spring-boot-saluki依赖
```
io.github.frostingwolf
spring-boot-starter-saluki
1.5.7.RELEASE
io.github.frostingwolf
spring-boot-starter-saluki-monitor
1.5.7.RELEASE
```
* 启动spring boot main,并访问localhost:8080/doc,可进行服务测试

# 关于网关
网关有一个新项目独立出来支撑grpc和dubbo,将在个人项目中孵化:gateway