论文部分内容阅读
在高企的房价面前,越来越多人选择租房,房屋租赁服务的市场需求也越来越大,良好的房屋租赁服务系统既能为租房者提供高效的租房服务,又能有效地提高房屋租赁服务机构的市场竞争力。本文以自营式房屋租赁业务为背景,设计并实现了一套基于微服务的房屋租赁服务系统。在系统需求方面,本文首先对房屋租赁服务系统的发展和研究现状进行了调研,选择以自营式房屋租赁模式为项目背景。在该模式中,房屋租赁服务机构具备房屋的出租权,直接与租房者达成协议,省略租房者与第三方签约过程,提高租房效率。随后,本文基于该背景,对系统需求进行深入分析,以领域驱动设计的思想划分服务边界,设计系统的整体功能框架,包括用户服务、房产服务、订单服务、评价服务和推荐服务,并提出在安全性、实用性、可维护性和可扩展性方面的非功能需求。在系统架构方面,本文应用了扩展性强、耦合度低的微服务架构进行系统架构设计与实现。本文对微服务架构设计与实现的核心要点进行了详细的阐述,包括服务划分、注册与发现、负载均衡等11个核心要点,利用Spring Cloud微服务开发框架实现微服务架构的服务治理,Spring Cloud为微服务系统开发提供了一套完整的解决方案,封装了多种插件,简化系统开发。在推荐算法方面,本文提出了一种基于标签基因组的推荐算法。在本系统中,该算法基于房屋特征标签实现,本质上是一种基于内容的推荐算法,其中融入了基于物品自身特性的相似推荐算法,解决了新用户冷启动问题;加入少量冷门房源推荐提高了冷门房源的曝光率和推荐房源的多样性。在各个业务微服务的设计与实现方面,本文应用基于角色的访问控制模型设计权限体系,解耦用户与权限,提高了权限分配的灵活性;运用Json Web Token(JWT)解决分布式环境下的跨域身份认证问题,并结合Redis缓存解决JWT过期时间无法改变的问题;将经典设计模式中的状态模式应用于订单服务的实现中,分离变化的状态和特定状态下不变的行为,解决了订单服务多状态变化问题;借鉴观察者模式实现订单状态变化通知功能,提高了系统应对业务需求变更时的灵活性。最后,本文应用Docker容器技术解决了复杂的多实例部署问题,实现一次构建,多实例部署。由于Docker容器占用资源少,启动快等优点,系统运行性能得到了提升。本系统在云端服务器成功实现了系统的镜像构建和多容器部署,系统运行顺畅,功能完整,代码的可扩展性和可维护性强,完成了系统的功能性和非功能性需求,达到了预期的效果。