话不多说,上来就干
今天开始Soul网关的sofa框架demo测试
和上一篇使用soul源码项目自带的dubbo示例项目一样,这一篇,可以使用soul源码项目中自带的sofa项目(别问我为什么不自己新建一个sofa的demo项目,问就是不会,真的没搭过。。。)
项目配置
soul网关配置
依赖
pom文件引入sofa依赖
<dependency>
<groupId>com.alipay.sofa</groupId>
<artifactId>sofa-rpc-all</artifactId>
<version>5.7.6</version>
</dependency>
<dependency>
<groupId>org.apache.curator</groupId>
<artifactId>curator-client</artifactId>
<version>4.0.1</version>
</dependency>
<dependency>
<groupId>org.apache.curator</groupId>
<artifactId>curator-framework</artifactId>
<version>4.0.1</version>
</dependency>
<dependency>
<groupId>org.apache.curator</groupId>
<artifactId>curator-recipes</artifactId>
<version>4.0.1</version>
</dependency>
<dependency>
<groupId>org.dromara</groupId>
<artifactId>soul-spring-boot-starter-plugin-sofa</artifactId>
<version>${last.version}</version>
</dependency>
sofa项目配置(以springboot的sofa框架为例)
依赖
<dependency>
<groupId>org.dromara</groupId>
<artifactId>soul-spring-boot-starter-client-sofa</artifactId>
<version>${soul.version}</version>
</dependency>
yml配置文件
soul:
sofa:
adminUrl: http://localhost:9095
contextPath: /sofa
appName: sofa
# adminUrl: 为你启动的soul-admin 项目的ip + 端口,注意要加 http://
# contextPath: 为你的这个项目在soul网关的路由前缀,这个你应该懂意思把? 比如/order ,/product 等等,网关会根据你的这个前缀来进行路由.
# appName:你的应用名称,不配置的话,会默认取sofa配置中application 中的名称
注解
在sofa项目中的实现类的方法上,增加soul网关注册注解 @SoulSofaClient
soul插件设置
在 soul-admin 插件管理中,把sofa 插件设置为开启,并且配置sofa的zookeeper协议和ip
测试
zookeeper
启动zookeeper,找到zookeeper文件-bin文件夹,点击zkServer.cmd,启动zookeeper
2021-01-19 00:08:30,095 [myid:] - INFO [main:ZKDatabase@289] - Snapshot loaded in 143 ms, highest zxid is 0x3a, digest is 35334594556
2021-01-19 00:08:30,096 [myid:] - INFO [main:FileTxnSnapLog@470] - Snapshotting: 0x3a to D:apache-zookeeper-3.6.2-binapache-zookeeper-3.6.2-bindata\version-2\snapshot.3a
2021-01-19 00:08:30,104 [myid:] - INFO [main:ZooKeeperServer@529] - Snapshot taken in 8 ms
2021-01-19 00:08:30,121 [myid:] - INFO [ProcessThread(sid:0 cport:2181)::PrepRequestProcessor@136] - PrepRequestProcessor (sid:0) started, reconfigEnabled=false
2021-01-19 00:08:30,122 [myid:] - INFO [main:RequestThrottler@74] - zookeeper.request_throttler.shutdownTimeout = 10000
2021-01-19 00:08:30,140 [myid:] - INFO [main:ContainerManager@83] - Using checkIntervalMs=60000 maxPerMinute=10000 maxNeverUsedIntervalMs=0
2021-01-19 00:08:50,040 [myid:] - INFO [SyncThread:0:FileTxnLog@284] - Creating new log file: log.3b
2021-01-19 00:09:01,336 [myid:] - INFO [SessionTracker:ZooKeeperServer@610] - Expiring session 0x100051517260000, timeout of 30000ms exceeded
一般出现 Creating new log file ,就是正常启动的标志
soul管理后台
启动soul网关的后台管理项目-soulAdmin,端口:9095
sofa示例项目
启动sofa示例项目,端口:28011
soul网关
启动soul网关,端口:9091
看到sofa服务注册到网关的init日志信息,就知道sofa已经正确注册到网关了
2021-01-19 01:14:07.221 INFO 28240 --- [ctReadThread-17] o.d.s.p.s.cache.ApplicationConfigCache : init sofa reference success there meteData is :MetaData(id=1350647286545272832, appName=sofa, contextPath=null, path=/sofa/insert, rpcType=sofa, serviceName=org.dromara.soul.examples.dubbo.api.service.DubboTestService, methodName=insert, parameterTypes=org.dromara.soul.examples.dubbo.api.entity.DubboTest, rpcExt={"loadbalance":"hash","retries":3,"timeout":-1}, enabled=true)
2021-01-19 01:14:07.278 INFO 28240 --- [ctReadThread-17] o.d.s.p.s.cache.ApplicationConfigCache : init sofa reference success there meteData is :MetaData(id=1350647286851457024, appName=sofa, contextPath=null, path=/sofa/findById, rpcType=sofa, serviceName=org.dromara.soul.examples.dubbo.api.service.DubboTestService, methodName=findById, parameterTypes=java.lang.String, rpcExt={"loadbalance":"hash","retries":3,"timeout":-1}, enabled=true)
2021-01-19 01:14:07.314 INFO 28240 --- [ctReadThread-17] o.d.s.p.s.cache.ApplicationConfigCache : init sofa reference success there meteData is :MetaData(id=1350647287199584256, appName=sofa, contextPath=null, path=/sofa/findAll, rpcType=sofa, serviceName=org.dromara.soul.examples.dubbo.api.service.DubboTestService, methodName=findAll, parameterTypes=null, rpcExt={"loadbalance":"hash","retries":3,"timeout":-1}, enabled=true)
查看路由注册
soul后台管理,查看sofa网关配置,我们可以看到sofa的url都已经成功注册到网关
测试
网关路由请求
请求路径 localhost:9195/sofa/findAll
请求成功
下一篇,我们学习如何使用spring-cloud和soul配合使用的案例