上文《Go语言微服务实战系列(二)把Go客户端注册到Nacos》我们完成了把go语言编写的客户端注册到nacos中,既然是微服务,那么我们肯定是需要和其他服务进行相互访问的。所以这里的话,我们使用java微服务里面的spring cloud gateway作为网关来实现通过网关访问go语言的微服务。
这里我们准备的spring cloud gateway相关的代码是本站之前的java微服务实战的案例里面的。文末提供相关的下载。
首先我们把spring cloud gateway的代码下载下来,下载后主项目名称是u-mall,下面分别有:
1、gateway-service 2、goods-service 3、user-service
如下图:
本文我们主要是修改这里的gateway-service代码,进入到application.yml中修改的内容主要有:
1)修改端口
这里测试项目端口是9000,咱们的go语言web客户端也是9000,冲突了,所以把他修改为8000即可。
2)修改nacos的连接信息
这里需要修改nacos的地址,端口和名称空间
3)添加router
然后我们添加一个router,让其路由到go语言web客户端。
最后修改后的示例代码如下:
server: port: 8000 tomcat: max-threads: 500 max-connections: 500 spring: application: name: gateway-service cloud: nacos: discovery: namespace: 4538970d-e6b4-4829-bafa-bf524875aff3 server-addr: 192.168.31.189:8848 gateway: default-filters: routes: #go语言客户端的路由 - id: demo1-service uri: lb://demo1 predicates: - Path=/demo/** filters: - StripPrefix=1 - RemoveResponseHeader=uid - id: goods-service uri: lb://goods-service predicates: - Path=/good/** filters: - StripPrefix=1 - RemoveResponseHeader=uid - id: user-service uri: lb://user-service predicates: - Path=/user/** filters: - StripPrefix=1 - RemoveResponseHeader=uid
修改示例图如下:
然后我们把gatewya服务给启动起来,然后在nacos服务端就可以看到有两个对应的服务实例注册到了nacos上了,如下图:
最后我们测试一下,通过spring cloud gateway的服务请求咱们得go语言的服务,请求地址是:
http://192.168.31.115:8000/demo/users/getAllUsers
然后咱们看效果,已经通过spring cloud gateway网关访问到了go语言的web项目了:
lite ide对应的请求日志记录如下:
以上就是集成java和go两种语言融合的微服务实现案例。
备注:
1、spring cloud gateway网关是一个http通用的网关,他不关心具体的子项目单体是什么语言编写的,只要是http能访问到即可。
最后按照惯例,附上本案例spring cloud的源代码,登录后即可查看。
还没有评论,来说两句吧...