{"id":25552519,"url":"https://github.com/rickey-c/ticketflow","last_synced_at":"2026-02-17T17:33:36.547Z","repository":{"id":273835221,"uuid":"920969947","full_name":"rickey-c/TicketFlow","owner":"rickey-c","description":"TicketFlow 是一个模仿大麦网的票务平台，支持用户注册、登录、查询节目、选座、购票和支付订单等核心功能，保证系统在高并发环境下的稳定性与可扩展性。","archived":false,"fork":false,"pushed_at":"2025-03-17T05:18:44.000Z","size":11894,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-11T22:11:40.653Z","etag":null,"topics":["java","microservice","springboot","springcloud"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rickey-c.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-01-23T05:09:30.000Z","updated_at":"2025-03-17T05:18:47.000Z","dependencies_parsed_at":"2025-02-19T06:20:02.844Z","dependency_job_id":"3f9378fd-a80e-4704-827d-5a85e9c1ee8f","html_url":"https://github.com/rickey-c/TicketFlow","commit_stats":null,"previous_names":["rickey-c/ticketflow"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rickey-c%2FTicketFlow","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rickey-c%2FTicketFlow/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rickey-c%2FTicketFlow/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rickey-c%2FTicketFlow/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rickey-c","download_url":"https://codeload.github.com/rickey-c/TicketFlow/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248487691,"owners_count":21112190,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["java","microservice","springboot","springcloud"],"created_at":"2025-02-20T11:25:18.924Z","updated_at":"2026-02-17T17:33:36.506Z","avatar_url":"https://github.com/rickey-c.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# TicketFlow\n\n## 项目简介\n\n「TicketFlow」TicketFlow是一个模仿大麦网的票务平台，使用SpringBoot、Spring Cloud、OpenFeign和Elasticsearch等技术栈开发。系统目前已实现用户注册、登录、查询节目、选座、购票、支付订单等核心业务，并采用分布式架构设计优化了系统性能，特别是在高并发购票场景下的处理能力。\n\n## 技术架构\n\n### 主要技术架构\n\n- 使用了 **SpringCloud+SpringCloudAlibaba** 的微服务结构\n- 使用了 **Nacos** 作为注册中心\n- 使用 **Redis** 不仅仅作为缓存，还使用了`Lua脚本`/`延迟队列`/`Stream消息队列` 等高级特性\n- 引入了 **Kafka** 消息中间件，**SpringBootAdmin** 作为服务的监控通知\n- 通过**Elasticsearch**提供搜索和展示功能\n- 使用 **ShardingSphere** 实现分库分表，来存储海量的数据\n\n通过以上设计，来实现应对高并发、高吞吐的能力，以及海量数据的存储和服务状态的监控\n\n### 技术架构图\n\n![TicketFlow架构图](./images/TicketFlow架构图.jpg)\n\n## 模块说明\n\n- **ticketflow-captcha-manage-framework**  验证码组件模块\n\n  - **ticketflow-base-captcha** 验证码基础组件\n\n  - **ticketflow-captcha-framework**  验证码封装组件\n\n- **ticketflow-common**  公共基础包\n\n- **ticketflow-elasticsearch-framework**  elasticsearch封装组件\n\n- **ticketflow-id-generator-framework**  分布式id生成器\n\n- **ticketflow-redis-tool-framework**  redis相关组件\n\n  - **ticketflow-redis-common-framework** redis公共配置模块\n\n  - **ticketflow-redis-framework** redis操作封装组件\n\n  - **ticketflow-redis-stream-framework** redisStream操作封装组件\n\n- **ticketflow-redisson-framework**  redisson封装组件 \n\n  - **ticketflow-redisson-service-framework**  redisson服务相关组件 \n\n    - **ticketflow-bloom-filter-framework**  布隆过滤器组件\n\n    - **ticketflow-redisson-common-framework**  公共包\n\n    - **ticketflow-repeat-execute-limit-framework**  防重复幂等组件\n\n    - **ticketflow-service-lock-framework**  分布式锁组件\n\n  - **ticketflow-service-delay-queue-framework**  延迟队列组件\n\n- **ticketflow-server**  业务服务 \n\n  - **ticketflow-admin-service**  admin服务监控\n\n  - **ticketflow-base-data-service**  基础数据服务\n\n  - **ticketflow-customize-service**  定制化服务\n\n  - **ticketflow-gateway-service**  Gateway网关服务\n\n  - **ticketflow-order-service**  订单服务\n\n  - **ticketflow-pay-service**  支付服务\n\n  - **ticketflow-program-service**  节目服务\n\n  - **ticketflow-user-service**  用户服务\n\n- **ticketflow-server-client**  业务服务的Feign调用 \n\n  - **ticketflow-base-data-client**  基础数据服务的Feign调用\n\n  - **ticketflow-customize-client**  定制化服务的Feign调用\n\n  - **ticketflow-order-client**  订单服务的Feign调用\n\n  - **ticketflow-pay-client**  支付服务的Feign调用\n\n  - **ticketflow-program-client**  节目服务的Feign调用\n\n  - **ticketflow-user-client**  用户服务的Feign调用\n\n- **ticketflow-spring-cloud-framework**  微服务相关封装组件 \n\n  - **ticketflow-service-common**  服务公共包\n\n  - **ticketflow-service-component**  微服务公共包\n\n  - **ticketflow-service-initialize**  服务初始化行为管理组件\n\n- **ticketflow-thread-pool-framework**  线程池封装组件\n- **logs**  日志存放目录\n- **sql**  导入的数据库表和数据\n- **images** 项目图片\n\n## 快速启动\n\n1. 添加 VM options 更改环境配置/更改 application.yaml 中的环境配置\n\n   ```\n   -XX:MaxMetaspaceSize=256M\n   -Xmx256M\n   -Dspring.data.redis.host=${redis地址}\n   -Dspring.data.redis.password=${redis地址密码}\n   -Dspring.cloud.nacos.discovery.server-addr=${nacos地址}:8848\n   -Dspring.kafka.bootstrap-servers=${kafka地址}:9092\n   -Delasticsearch.ip=${elasticsearch地址}:9200\n   -Delasticsearch.userName=${elasticsearch账户}\n   -Delasticsearch.passWord=${elasticsearch账户密码}\n   -Dprefix.distinction.name=my\n   ```\n\n   ![项目启动参数](./images/项目启动参数.png)\n\n2. 运行项目\n\n启动时需要将每个服务都启动起来，**BaseDataApplication**为基础服务所以要第一个启动，其余服务启动时没有先后关系。\n\n**CustomizeApplication**为执行限流功能服务、**AdminApplication**为监听服务，这两个服务和业务服务分离，可以不启动\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frickey-c%2Fticketflow","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frickey-c%2Fticketflow","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frickey-c%2Fticketflow/lists"}