房产销售平台单体改进微服务架构优劣分析及技术栈使用总结

需积分: 0 1 下载量 164 浏览量 更新于2024-01-04 收藏 2.44MB DOCX 举报
这段描述主要讨论了从单体应用到微服务架构的改造过程。以下是本文的重点总结: 在单体应用中,该房产销售平台包括首页轮播、房源列表、房产列表、分页、热门房产(点击率)、按类型排序、评价、登录、收藏、评论、添加房产、搜索房源、个人信息、我的房产信息、收藏列表、经纪人信息、百科等功能。 单体应用的技术栈主要使用了SSM架构,即使用了SpringBoot、SpringMVC和Mybatis框架。此外,还使用了本地缓存方案Guava Cache和Redis来支持推荐业务。单元测试使用了Spring Test,邮件发送使用了Spring Mail,Ajax方面使用了JQuery Ajax,分页组件使用了Spring MVC。 然而,单体应用也存在一些缺点,比如部署和扩展困难、紧耦合、故障难以定位等。 为了解决这些问题,决定将单体应用改造为微服务架构。微服务架构的优点包括灵活性高、可扩展性好、技术多样性等。服务拆分是微服务架构的一个关键概念,通过将复杂的单体应用拆分为多个独立的服务,可以提高系统的可维护性和扩展性。 在微服务架构中,使用了Spring Cloud Eureka作为服务注册和发现的工具,RestTemplate来进行远程通信,Spring Cloud Hystrix来实现断路器功能。为了解决日志问题,使用了ELK技术栈,包括Elasticsearch、Logstash和Kibana,用于日志的检索和分析。此外,为了追踪整个分布式系统的性能问题,采用了全链路追踪技术,使用了Spring Cloud Sleuth和Zipkin Dashboard。最后,还介绍了使用JWT Token技术来进行身份验证和授权。 通过对单体应用到微服务架构的改造,可以提高系统的可维护性、扩展性和性能,并解决单体应用在部署和故障处理方面的困扰。尽管微服务架构也存在一些挑战,比如服务间的调用复杂性和管理成本的增加,但通过合理的设计和使用适当的工具和技术,可以克服这些挑战,实现更为灵活和可靠的系统架构。