Skip to content

skyywj/Demo-Grpc

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

注意代码格式化:IDEA 快捷键 windows:ctrl+alt+l mac:option+command+l(win+alt+l)

此项目为demo-grpc项目:支持grpc,mysql,redis,redisson,事务

学习springboot连接mysql

在此附上grpc的官方文档:

    https://grpc.io/docs/quickstart/java.html
    http://doc.oschina.net/grpc?t=61535

将demo项目克隆并添加到新的github项目的步骤:

1)git clone Demo项目
2)git remote rm origin
3) git remote add origin [email protected]:skyywj/Demo-Grpc.git
4) rm -rf .git
5) rm -rf .gitignore
6) git init
7) git pull origin master --alow-unrelated-histories
8) git add .
9) git commit .
10) git push

如果有多余的东西,需要另行处理,比如重新clone一个新的项目后直接删除操作,然后再提交。

gRPC 默认使用 protocol buffers 作为接口定义语言,在项目中采用proto新建仓库的策略以保证接口可以供Android ios等共用,但ios Android编译proto的方式不同

新建proto项目,并在本项目中引入
    1、新建springboot项目protodemo
    2、删除不必要的文件,目录格式也需要修改
    3、pom.xml 添加依赖包grpc-all(项目中的几个),protobuf-java,jersey-rpc-support,jersey-server
    4、pom.xml 添加build
    5、新建test.proto文件,并写好接口
    6、编译 mvn compile
    7、安装 mvn install(安装到本地~/.m2/resposity下)
接口项目完成操作,接下来是项目具体引入
    1、~/.m2/settings.xml配置需要有,这个自己百度配置
    2、引入本地依赖,说明一下具体
            <dependency>
            //groupid为项目名
                <groupId>test-proto</groupId>
            //artifactId为install后:repository后,版本名前的路径,以.连接的路径 如com.abc
                <artifactId>protodemo</artifactId>
                <version>0.0.1-SNAPSHOT</version>
            </dependency>
    3、mvn compile 成功即可。
    4、引入springboot标准grpc依赖包grpc-spring-boot-starter、jersey-rpc-support、grpc-netty、grpc-protobuf
    5、写grpc层。使用@GRpcService,代码逻辑尽量放到service层,不要让grpc层太臃肿(第二次说了)

完成以上之后,让我头疼的事情是grpc层的测试

网上有说使用mock grpc进行单元测试的,但我看到有好多东西现在已经不支持,具体没试过,还请大佬轻批。
    https://www.scienjus.com/mock-grpc-in-java-unit-test/
本项目 采用的是netty channal的方式  (具体请自己查阅)

测试时请先运行HrProsApplication.java,然后再去跑grpc的单元测试,否则报refuse connect 127.0.0.1.6565的错误。

日志系统采用的是logback,添加logback.xml 和lognet依赖

事务使用@Transational注解

About

this is a grpc demo

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages