项目描述: 项 该项目是为了提高社区管理效率,优化服务质量,打造一个高效,智能,互动,便捷,安全的社区APP平台,是一 个微服务的项目。 前端:使用uniapp+Vue2框架; 后端: • 采用Spring Boot 和 Spring Cloud 部署微服务集群; • 使用 Nacos 作为配置管理工具,将所有微服务配置文件集中化进行配置管理,以实现动态配置更新、配置共享与服用,并支 持版本控制;同时,Nacos 也充当了服务发现和服务注册中心的角色; • 使用 Spring Cloud Gateway 网关作为单点入口,提供限流、熔断、路由转发和安全认证功能,包括用户身份登录和权限验 证,日志监控,并将请求分发至各个微服务上; • 此外,我们使用 MinIO 作为图片服务器的存储和访问工具; • 数据库持久化存储方面,我们选用了 MySQL 数据库,并结合 Druid 数据源连接数据库; • 使用 Mybatis Plus 框架实现了对数据库的增删改查操作,同时还支持多表联查; • 为了加速数据访问,我们引入 Redis 作为缓存,并采用缓存策略进行缓存刷新,以避免出现幻读现象; • 为了对整个服务集群进行链路追踪和服务诊断,我们采用了 Zipkin; • 在支付功能方面,我们接入了支付宝支付,并使用支付宝的第三方 API 支付接口。 功能模块主要有:安全认证模块,网关鉴权模块,支付模块,以及APP应用模块。 项目职责: 项 协同组员完成各功能模块。 支付模块的开发: 项目经验 项 2022-05 ~ 2022-06 2 小米商城 小 前后端开发 前 • 注册支付平台的开发者账号,获取相应的 API Key、Secret Key等密钥和身份验证信息。 • 根据支付平台提供的开发文档,使用 Java 编写代码实现支付功能。这包括生成订单信息、生成二维码、处理支付同步(异 步)回调等功能。 • 集成第三方支付服务的 API,并实现支付安全认证,如数据加密和签名验证等措施,确保支付交易的安全性。 • 实现支付订单和支付记录的持久化,将支付状态与用户的支付情况相对应,以便后续订单数据查询、分析和对账等操作。 项目总结: 项 • 通过这个项目来学习微服务架构时,我深入了解了Nacos在服务发现和服务注册方面的工作原理。在微服务启动时,每个微 服务实例会向Nacos发送注册请求,将自己的实例信息(如IP地址、端口号、服务名称等)注册到Nacos的服务注册中心。 Nacos会将这些信息存储到数据库中,表示这些微服务实例可用并在运行。 • 在服务发现过程中,当一个微服务需要调用其他微服务时,它会向Nacos发送服务发现请求,根据自己的需要和配置的负载 均衡算法,Nacos会从注册中心中查询符合条件的服务实例,并选择其中一个实例来进行调用。这样,微服务之间的通信就 得以实现。 • 另一方面,Gateway网关在这个项目中扮演着重要角色。它不仅负责作为单点入口,接收来自客户端的请求,还需要对请求 进行认证和授权。为了确保安全性,这里采用了JWT(JSON Web Token)来验证客户端的身份和权限。每个客户端在请求 中携带经过签名的JWT令牌,网关会验证令牌的合法性,包括签名的正确性和有效期限,来确定是否允许客户端的访问。 • 在路由转发方面,Gateway网关将路由规则与目标服务器的地址进行关联。通过在Nacos上配置网关的路由规则,当请求满 足特定的路由规则时,网关就知道将该请求转发到哪个目标微服务实例上,从而实现请求的正确路由。 • 此外,为了优化系统性能,采用了Redis作为数据缓存。在项目中,Redis被用来存储一些频繁访问的数据,以减少对数据库 的频繁查询,从而减轻数据库的负载。这样一来,系统的响应速度得到了提升。 • 通过参与这个项目,我加深了对Spring Boot API的熟悉程度,并提升了阅读和理解开发文档的能力。特别是在支付流程方 面,包括生成交易订单、调用支付渠道的服务、处理支付状态变更、实现同步和异步通知等,我获得了更深入的理解和实践 经验。整个项目的开发过程让我深刻认识到微服务架构在构建复杂系统中的价值和灵活性。
点击空白处退出提示
评论