引题
昨晚开发用户微服务时,其中管理员能够添加租房信息,心想既然只有管理员用户能做这件事,干脆直接把对于租房信息的添加直接放在用户微服务里解决。然后做了关于市区支持列表的查找
于是用户微服务开发变成了这样,我将查找支持市区列表的代码逻辑与接口放到用户微服务下。
问题
早上起床蹲坑,心想似乎不太对劲。将租房信息的逻辑代码放在用户微服务里似乎并不有利于以后的开发。
虽然添加租房信息的只有用户管理员能做,但是对于首页的查找。或者用户房源信息的筛选,应该也能有这些功能或者,很多功能代码逻辑将会有相同的地方。将来如果对于代码逻辑相同的地方,要进行修改或者扩展,这将会增加难度与工作量。
解决问题
所以对于这种问题应该可以独立出一个单独的微服务。这个微服务的部分功能供其它微服务调用。
怎么调用?
微服务中有微服务调度的组件feign与OpenFeign
feign:Netflix开发的服务调用组件,目前已经进入维护了,不推荐使用。
OpenFeign:springcloud官方自己开发的服务调用组件,推荐使用。
OpenFeign简介
Feign是简化的http开发工具,一个声明式的伪http客户端。Feign默认支持了Ribbon(负载均衡组件),Nacos也兼容了Feign。Feign默认实现负载均衡的效果。
关于使用
第一步:SpringBoot的父工程下新建一个房屋微服务子工程
第二步:编写对外市区支持列表查询接口
第三步:用户微服务下引入Feign依赖,并且加如注解
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
第四步:编写Feign调用接口类
第五步:测试