 Java Chassis通信处理详解 - 通信优化实践Java Chassis通信处理详解 通信优化实践 议题  问题不挑战  整体线程模型  Consumer  Producer 问题不挑战 消费者 编程 模型 透明 RPC Spring MVC Transport Highway Vertx REST Servlet REST 生产者 编程 模型 透明 业务线程 Vertx Message Buffer Connection.send -> Socket.write(buf) Consumer Highway client-优化单连接模型 Eventloop TcpClientConnecton 业务线程 …… 业务线程 Vertx Message Buffer CAS Message Queue Socket.write(composite buffer) TPS Latency(ms) CPU Consumer Producer 优化前 81986 1.22 290% 290% 优化后 145369 0.688 270% 270% Connection.send Consumer Highway client-多连接模型 Eventloop0 码力 | 17 页 | 2.22 MB | 1 年前3 Java Chassis通信处理详解 - 通信优化实践Java Chassis通信处理详解 通信优化实践 议题  问题不挑战  整体线程模型  Consumer  Producer 问题不挑战 消费者 编程 模型 透明 RPC Spring MVC Transport Highway Vertx REST Servlet REST 生产者 编程 模型 透明 业务线程 Vertx Message Buffer Connection.send -> Socket.write(buf) Consumer Highway client-优化单连接模型 Eventloop TcpClientConnecton 业务线程 …… 业务线程 Vertx Message Buffer CAS Message Queue Socket.write(composite buffer) TPS Latency(ms) CPU Consumer Producer 优化前 81986 1.22 290% 290% 优化后 145369 0.688 270% 270% Connection.send Consumer Highway client-多连接模型 Eventloop0 码力 | 17 页 | 2.22 MB | 1 年前3
 微服务场景下的数据一致性解决方案 - 殷湘和平统一 微服务场景下的数据一致性解决方案 殷湘 华为PaaS微服务架构师 开源能力中心 大纲 •离 数据一致性的起因 •合 数据一致性的解决方案 •断 方案选择建议 离 数据一致性的起因 单体应用 • 单体应用由于所有模块(A/B/C)使用同一个数据库 • 数据一致性通过数据库事务保证 A B C commit rollback 微服务场景 MySQL MongoDB MongoDB Cassandra 数据一致性无法完全通过数据库保证 离 独立进程 独立部署 独立技术 独立团队 合 数据一致性的解决方案 T1 T2 T3 C2 C1 • 1987年Hector & Kenneth 发表论文 Sagas • Saga = Long Live Transaction (LLT) • LLT = T1 + T2 + T3 + ... + Tn • 每个本地事务Tx 有对应的补偿 Saga transact transact transact B C A Saga compensate compensate 和平统一 减少业务代码集成/运维难度 剥离业务与数据一致性复杂度 和平:低侵入 让运维监控更加简单 可视化事务、调用链 统一:集中式 无状态、可集群、可分片 Event Sourcing架构 高可用 系统架构 – 基于图形 requests0 码力 | 31 页 | 4.28 MB | 1 年前3 微服务场景下的数据一致性解决方案 - 殷湘和平统一 微服务场景下的数据一致性解决方案 殷湘 华为PaaS微服务架构师 开源能力中心 大纲 •离 数据一致性的起因 •合 数据一致性的解决方案 •断 方案选择建议 离 数据一致性的起因 单体应用 • 单体应用由于所有模块(A/B/C)使用同一个数据库 • 数据一致性通过数据库事务保证 A B C commit rollback 微服务场景 MySQL MongoDB MongoDB Cassandra 数据一致性无法完全通过数据库保证 离 独立进程 独立部署 独立技术 独立团队 合 数据一致性的解决方案 T1 T2 T3 C2 C1 • 1987年Hector & Kenneth 发表论文 Sagas • Saga = Long Live Transaction (LLT) • LLT = T1 + T2 + T3 + ... + Tn • 每个本地事务Tx 有对应的补偿 Saga transact transact transact B C A Saga compensate compensate 和平统一 减少业务代码集成/运维难度 剥离业务与数据一致性复杂度 和平:低侵入 让运维监控更加简单 可视化事务、调用链 统一:集中式 无状态、可集群、可分片 Event Sourcing架构 高可用 系统架构 – 基于图形 requests0 码力 | 31 页 | 4.28 MB | 1 年前3
 使用微服务架构快速开发万级TPS高可用电商系统更适合小团队(个人)开发管理 • 更容易实验和采纳新的技术。 强大: • 使大型的复杂应用程序可以持续的交付和持续的部署。 • 更容易测试 • 更容易对已有大型系统进行修改和扩展 • 容易进行的性能优化 • 更高的可用性 • 更容易的进行性能伸缩性 适合同学们学习 Demo也可以作为生产系统的一部分 [社区网站] http://servicecomb.apache.org [Github 房资格的对应信息(验资,诚意金等) id, customer_id, sale_id, comments 1…..* 接口 内容 customers CRUD qualifications CRUD 数据库 API git clone https://github.com/apache/servciecomb-samples cd servicecomb-samples/houserush/script/docker http://servicecomb.apache.org [Github ] https://github.com/apache?q=servicecomb 最简单的微服务 组件 • 1个服务(应用+数据库) • 服务注册中心 a) https://github.com/apache/servicecomb-center 服务注册中心 b) 核心服务注册表 |---服务名---|---服务实例U0 码力 | 15 页 | 1.46 MB | 1 年前3 使用微服务架构快速开发万级TPS高可用电商系统更适合小团队(个人)开发管理 • 更容易实验和采纳新的技术。 强大: • 使大型的复杂应用程序可以持续的交付和持续的部署。 • 更容易测试 • 更容易对已有大型系统进行修改和扩展 • 容易进行的性能优化 • 更高的可用性 • 更容易的进行性能伸缩性 适合同学们学习 Demo也可以作为生产系统的一部分 [社区网站] http://servicecomb.apache.org [Github 房资格的对应信息(验资,诚意金等) id, customer_id, sale_id, comments 1…..* 接口 内容 customers CRUD qualifications CRUD 数据库 API git clone https://github.com/apache/servciecomb-samples cd servicecomb-samples/houserush/script/docker http://servicecomb.apache.org [Github ] https://github.com/apache?q=servicecomb 最简单的微服务 组件 • 1个服务(应用+数据库) • 服务注册中心 a) https://github.com/apache/servicecomb-center 服务注册中心 b) 核心服务注册表 |---服务名---|---服务实例U0 码力 | 15 页 | 1.46 MB | 1 年前3
 微服务架构及ServiceComb实践更适合小团队(个人)开发管理 • 更容易实验和采纳新的技术。 强大: • 使大型的复杂应用程序可以持续的交付和持续的部署。 • 更容易测试 • 更容易对已有大型系统进行修改和扩展 • 容易进行的性能优化 • 更高的可用性 • 更容易的进行性能伸缩性 适合同学们学习 Demo也可以作为生产系统的一部分 [社区网站] http://servicecomb.apache.org [Github q=servicecomb Demo简介 从一个简单的天气预报微服务应用谈起 • Weathermapweb:界面服务 nodeJS • Fusionweather:汇聚服务,为前台界面提供数据 • Forecast:预报天气 • Weather:当前天气 • http://wyfrs4z7zxumdjp9.zizipo.cn-east- 2.huaweicse.com/#!?city=shenzhen 返回当前天气 数据库 API 任务 内容 getWeatherTask 从OpenWeatherMap定期 查询天气数据 定时任务 [社区网站] http://servicecomb.apache.org [Github ] https://github.com/apache?q=servicecomb 最简单的微服务 – 微服务的基本组件 组件 • 1个服务(应用+数据库) • 服务注册中心0 码力 | 14 页 | 2.04 MB | 1 年前3 微服务架构及ServiceComb实践更适合小团队(个人)开发管理 • 更容易实验和采纳新的技术。 强大: • 使大型的复杂应用程序可以持续的交付和持续的部署。 • 更容易测试 • 更容易对已有大型系统进行修改和扩展 • 容易进行的性能优化 • 更高的可用性 • 更容易的进行性能伸缩性 适合同学们学习 Demo也可以作为生产系统的一部分 [社区网站] http://servicecomb.apache.org [Github q=servicecomb Demo简介 从一个简单的天气预报微服务应用谈起 • Weathermapweb:界面服务 nodeJS • Fusionweather:汇聚服务,为前台界面提供数据 • Forecast:预报天气 • Weather:当前天气 • http://wyfrs4z7zxumdjp9.zizipo.cn-east- 2.huaweicse.com/#!?city=shenzhen 返回当前天气 数据库 API 任务 内容 getWeatherTask 从OpenWeatherMap定期 查询天气数据 定时任务 [社区网站] http://servicecomb.apache.org [Github ] https://github.com/apache?q=servicecomb 最简单的微服务 – 微服务的基本组件 组件 • 1个服务(应用+数据库) • 服务注册中心0 码力 | 14 页 | 2.04 MB | 1 年前3
 NTTDATA 汽车行业数字营销平台微服务化实践及标准化化运营 活动数据,消费者数据,媒体 数据,车联网数据等,全渠道 数据收集追踪,建立数据分析 模型,辅助业务的决策优化 大数据分析 及应用 线上数字化布局 线下数字化布局 车联网及线下店端消费者旅程与线上消费 者旅程相结合,设计多种跨渠道跨屏互动, 引导进店消费者通过扫码,配车,留资等 行为整合线上数据 利用人脸识别等多种技术及平台,通过可 配置用户聚类评级模型和数据处理算法, 实现消费者深度洞察,提高销售线索质量 及转化率,助力经销商销售 新媒体营销数字化布局 从微信营销及小程序开始布局其他新兴媒体渠道,如抖 音,汽车之家等,基于360°消费者画像的精准营销触达。 营销触达数据实时跟踪分析,形成数据闭环 消费者权益及服务数字化布局 建设“一个会员、分众运营、复合模式”的会员体 系以及差异化个性化的会员权益服务体系,打造 “不止于车”的车生活异业联盟生态圈 4 github 将技术投资回报最大化。  以智能化,可持续发展思路,打造车企C2B2C用户体验优化闭环。  可配置适应业务生长,帮助企业更快速、灵活地应对不断变化的市场需求,随时调整业务模式快速配置,以最低成本适应弹性的数据需求。 • 主机厂/经销商、线上/线下线索管 理集中化 • 线索/会员/车主服务集中化 • 数据集中化 集中化 • 用户体验能力标准化 • 外部接口标准化 • 营销能力标准化、营销形式个性化0 码力 | 11 页 | 2.25 MB | 1 年前3 NTTDATA 汽车行业数字营销平台微服务化实践及标准化化运营 活动数据,消费者数据,媒体 数据,车联网数据等,全渠道 数据收集追踪,建立数据分析 模型,辅助业务的决策优化 大数据分析 及应用 线上数字化布局 线下数字化布局 车联网及线下店端消费者旅程与线上消费 者旅程相结合,设计多种跨渠道跨屏互动, 引导进店消费者通过扫码,配车,留资等 行为整合线上数据 利用人脸识别等多种技术及平台,通过可 配置用户聚类评级模型和数据处理算法, 实现消费者深度洞察,提高销售线索质量 及转化率,助力经销商销售 新媒体营销数字化布局 从微信营销及小程序开始布局其他新兴媒体渠道,如抖 音,汽车之家等,基于360°消费者画像的精准营销触达。 营销触达数据实时跟踪分析,形成数据闭环 消费者权益及服务数字化布局 建设“一个会员、分众运营、复合模式”的会员体 系以及差异化个性化的会员权益服务体系,打造 “不止于车”的车生活异业联盟生态圈 4 github 将技术投资回报最大化。  以智能化,可持续发展思路,打造车企C2B2C用户体验优化闭环。  可配置适应业务生长,帮助企业更快速、灵活地应对不断变化的市场需求,随时调整业务模式快速配置,以最低成本适应弹性的数据需求。 • 主机厂/经销商、线上/线下线索管 理集中化 • 线索/会员/车主服务集中化 • 数据集中化 集中化 • 用户体验能力标准化 • 外部接口标准化 • 营销能力标准化、营销形式个性化0 码力 | 11 页 | 2.25 MB | 1 年前3
 康彬-基于微服务的混合云和同城双活实践业务服务层 资源层 分期乐 前端业务服务 桔子理财 鼎盛资管 …… mq管理系统 job管理系统 中台服务层 核心交易平台 风控审核平台 计算资源 (CPU) 存储资源 (内存|磁盘) 网络资源 (ip|端口|带宽) 中间件层 微服务框架 服务元数据管理 服务发布 服务订阅 消息中间件 消息元数据管理 消息生产 消息消费 job调度系统 job元数据管理 情况无法应对 大促后机器闲置率高,资 源浪费巨大 混合云需求分析 机器资源按需 申请 01 接入层按url调 度流量 02 服务层set化的 路由策略 03 数据层读请求 上云,写请求 回自建idc 04 流量大户上云,顶住流量洪峰 机器器资源按需分配 接入层URL粒度流量调度 LB DNS app/browser Nginx-Proxy Nginx-Proxy 越来越大,怎么破? 单元化&多活的范围 boss 客服系统 销售系统 风控审核 催收系统 政策管理 prod devops 监控系统 调用链路 日志系统 …… oa 人事系统 智能推荐 大数据 AI/BI …… 交易平台 电商 现金 信用卡 会员 桔子理财 风控平台 用户增长 发布系统 故障时,只影响内 部办公相关的公司 经营活动,不影响 用户下单交易 故障时,间接或部分影响用户0 码力 | 47 页 | 6.09 MB | 1 年前3 康彬-基于微服务的混合云和同城双活实践业务服务层 资源层 分期乐 前端业务服务 桔子理财 鼎盛资管 …… mq管理系统 job管理系统 中台服务层 核心交易平台 风控审核平台 计算资源 (CPU) 存储资源 (内存|磁盘) 网络资源 (ip|端口|带宽) 中间件层 微服务框架 服务元数据管理 服务发布 服务订阅 消息中间件 消息元数据管理 消息生产 消息消费 job调度系统 job元数据管理 情况无法应对 大促后机器闲置率高,资 源浪费巨大 混合云需求分析 机器资源按需 申请 01 接入层按url调 度流量 02 服务层set化的 路由策略 03 数据层读请求 上云,写请求 回自建idc 04 流量大户上云,顶住流量洪峰 机器器资源按需分配 接入层URL粒度流量调度 LB DNS app/browser Nginx-Proxy Nginx-Proxy 越来越大,怎么破? 单元化&多活的范围 boss 客服系统 销售系统 风控审核 催收系统 政策管理 prod devops 监控系统 调用链路 日志系统 …… oa 人事系统 智能推荐 大数据 AI/BI …… 交易平台 电商 现金 信用卡 会员 桔子理财 风控平台 用户增长 发布系统 故障时,只影响内 部办公相关的公司 经营活动,不影响 用户下单交易 故障时,间接或部分影响用户0 码力 | 47 页 | 6.09 MB | 1 年前3
 微服务的设计原则与⽣态系统 - 王磊Conference 2017.4 https://www.continuousdelivery.com/ • 缩短交付周期 • 降低发布⻛风险 • 质量量内嵌 组织协同 环境管理理 数据管理理 松耦合架构 反馈验证 持续集成/部署 内建质量量 微服务架构是松耦合架构机制的⼀一种实现 为什什么基于DevOps? ● Communication ● Automation “去”中⼼心化 • ⾃自动化“⼀一切” 去“中⼼心化” - ⽤用合适的技术解决问题 数据库作为集成点 去“中⼼心化” - 业务持有数据 ⽤用户会话 Redis 会话服务 上下⽂文 购物⻋车 购物⻋车 产品数据 Mongo 产品服务 上下⽂文 上下⽂文 Redis 去“中⼼心化” - 业务持有数据 去“中⼼心化” - 智能服务⽽而⾮非智能总线 去“中⼼心化” - 智能服务⽽而⾮非智能总线 Service ⽀支撑层 基础设施 交付流⽔水线与⼯工程实践 CaaS/PaaS IaaS 微 服 务 开 发 框 架 ⼯工 程 实 践 与 规 范 持 续 交 付 流 ⽔水 线 端 到 端 的 ⼯工 具 链 注册发现 监控 调⽤用链 路路由 授权认证 ⽇日志聚合 容错 集中配置 基础设施 业务层 - 聚合服务 - 基础服务 接⼊入层 • 流量量限制 •0 码力 | 62 页 | 6.65 MB | 1 年前3 微服务的设计原则与⽣态系统 - 王磊Conference 2017.4 https://www.continuousdelivery.com/ • 缩短交付周期 • 降低发布⻛风险 • 质量量内嵌 组织协同 环境管理理 数据管理理 松耦合架构 反馈验证 持续集成/部署 内建质量量 微服务架构是松耦合架构机制的⼀一种实现 为什什么基于DevOps? ● Communication ● Automation “去”中⼼心化 • ⾃自动化“⼀一切” 去“中⼼心化” - ⽤用合适的技术解决问题 数据库作为集成点 去“中⼼心化” - 业务持有数据 ⽤用户会话 Redis 会话服务 上下⽂文 购物⻋车 购物⻋车 产品数据 Mongo 产品服务 上下⽂文 上下⽂文 Redis 去“中⼼心化” - 业务持有数据 去“中⼼心化” - 智能服务⽽而⾮非智能总线 去“中⼼心化” - 智能服务⽽而⾮非智能总线 Service ⽀支撑层 基础设施 交付流⽔水线与⼯工程实践 CaaS/PaaS IaaS 微 服 务 开 发 框 架 ⼯工 程 实 践 与 规 范 持 续 交 付 流 ⽔水 线 端 到 端 的 ⼯工 具 链 注册发现 监控 调⽤用链 路路由 授权认证 ⽇日志聚合 容错 集中配置 基础设施 业务层 - 聚合服务 - 基础服务 接⼊入层 • 流量量限制 •0 码力 | 62 页 | 6.65 MB | 1 年前3
 杨钦民-唯品会微服务架构演进之路v0.2• 提r可追溯的性能数据 • 定o线U服务性能瓶颈 • 持续l化g码和43L • 帮助快速解决线U问题 • 全方o把握应用整p拓扑结构 • 定o全网应用瓶颈 • 帮助l化关键W务 全链路监控/eIcLIO架构 Web FDLEe AgeFK 接y层 A22 数据源 CafCa 集 群 实时计算层 4HaIC 集 群 OpenTSDB� Elas-c Search� HBase� 数据存储层 数据服务层 (aKa 4eIMAce 数据消费层 准实时监控 (ashboaId 实时监控 其它应用 FDLEe 5o)4 FDLEe 5oHB 微服务多I(C部署架构 Client Local Proxy Service zk ����� ���� ���� ������ ��� ���� ���� ������ ���� ���� Kubernets���� 云平台 存储 主机层 宿主机管理 网络 容器层 Docker Docker Noah������Docker���� ���� kubernetes���� ������ 0oah容器云镜x存储h及分发 ��IDC�0 码力 | 43 页 | 3.89 MB | 1 年前3 杨钦民-唯品会微服务架构演进之路v0.2• 提r可追溯的性能数据 • 定o线U服务性能瓶颈 • 持续l化g码和43L • 帮助快速解决线U问题 • 全方o把握应用整p拓扑结构 • 定o全网应用瓶颈 • 帮助l化关键W务 全链路监控/eIcLIO架构 Web FDLEe AgeFK 接y层 A22 数据源 CafCa 集 群 实时计算层 4HaIC 集 群 OpenTSDB� Elas-c Search� HBase� 数据存储层 数据服务层 (aKa 4eIMAce 数据消费层 准实时监控 (ashboaId 实时监控 其它应用 FDLEe 5o)4 FDLEe 5oHB 微服务多I(C部署架构 Client Local Proxy Service zk ����� ���� ���� ������ ��� ���� ���� ������ ���� ���� Kubernets���� 云平台 存储 主机层 宿主机管理 网络 容器层 Docker Docker Noah������Docker���� ���� kubernetes���� ������ 0oah容器云镜x存储h及分发 ��IDC�0 码力 | 43 页 | 3.89 MB | 1 年前3
 微服务架构实践-唯品会IDL����Thrift�gRPC������� XML������dubbo���Spring Cloud�� � 14 ���� N 服务通p协议OH552、5C2、U(2等P N 数据f输方式O同步、异步P N 数据序列化OJ41N序列化、2B序列化等P 15 ����/�� Registry! Client! Service! ��/�� ��/���� �� • Service��������� • 提l可追溯的性能数据 • 定h线S服务性能瓶颈 • 持续e化b码和43. • 帮助快速解x线S问题 • t方h把握应用整i拓扑结构 • 定ht网应用瓶颈 • 帮助e化v键U务 77 �����Mercury�� Web FBJCe AgeDI 接s层 A22 数据源 AafAa 集 群 实时计算层 4FarA集 群 群 OpenTSDB Elas-c Search HBase 数据存r层 数据服务层 (aIa 4ervice 数据消费层 y实时监控 (aHhbEard 实时监控 其它应用 FBJCe 5E)4 FBJCe 5EHB 78 ������� • �������� • ����������� • ����������� •0 码力 | 120 页 | 82.16 MB | 1 年前3 微服务架构实践-唯品会IDL����Thrift�gRPC������� XML������dubbo���Spring Cloud�� � 14 ���� N 服务通p协议OH552、5C2、U(2等P N 数据f输方式O同步、异步P N 数据序列化OJ41N序列化、2B序列化等P 15 ����/�� Registry! Client! Service! ��/�� ��/���� �� • Service��������� • 提l可追溯的性能数据 • 定h线S服务性能瓶颈 • 持续e化b码和43. • 帮助快速解x线S问题 • t方h把握应用整i拓扑结构 • 定ht网应用瓶颈 • 帮助e化v键U务 77 �����Mercury�� Web FBJCe AgeDI 接s层 A22 数据源 AafAa 集 群 实时计算层 4FarA集 群 群 OpenTSDB Elas-c Search HBase 数据存r层 数据服务层 (aIa 4ervice 数据消费层 y实时监控 (aHhbEard 实时监控 其它应用 FBJCe 5E)4 FBJCe 5EHB 78 ������� • �������� • ����������� • ����������� •0 码力 | 120 页 | 82.16 MB | 1 年前3
 《Saga分布式事务解决⽅案与实践》演讲者/姜宁• 后续的开发计划 微服务架构 • 微服务架构将⼀一个应⽤用分成多个相互独⽴立的服务。 • 好处是各个服务能够持续独⽴立的开发和部署。 • 难题是服务的数据需要采⽤用什什么样的⽅方式来进⾏行行存储? 多个微服务使⽤用同⼀一数据库 A B C commit rollback ⼀一个典型的微服务架构应⽤用 EdgeService Customer Service Order OK commit() OK commit() OK • 提供强⼀一致保障 • 准备阶段完成资源操作 • 如果准备过程中出现问题,可以回滚 • 提交阶段不不允许出错 • 资源层⾯面提供保障业务侵⼊入性低 • 协议成本⾼高,并且存在全局锁的问题 ACID 与 BASE • ACID • 原⼦子性 (Atomicity) • ⼀一致性 (Consistency) 真正执⾏行行业务,不不做业务检查 • Cancel:取消执⾏行行业务 • 释放Try阶段预留留的业务资源 业务服务 try confirm cancel 通过领域建模来解决 • 微服务内:聚合通过数据库事务保证强⼀一致 • 内刚 • 微服务间:最终⼀一致 • 外柔 微服务事务⼀一致性建议 • 1987年年Hector & Kenneth 发表论⽂文 Sagas • Saga = Long0 码力 | 33 页 | 2.38 MB | 1 年前3 《Saga分布式事务解决⽅案与实践》演讲者/姜宁• 后续的开发计划 微服务架构 • 微服务架构将⼀一个应⽤用分成多个相互独⽴立的服务。 • 好处是各个服务能够持续独⽴立的开发和部署。 • 难题是服务的数据需要采⽤用什什么样的⽅方式来进⾏行行存储? 多个微服务使⽤用同⼀一数据库 A B C commit rollback ⼀一个典型的微服务架构应⽤用 EdgeService Customer Service Order OK commit() OK commit() OK • 提供强⼀一致保障 • 准备阶段完成资源操作 • 如果准备过程中出现问题,可以回滚 • 提交阶段不不允许出错 • 资源层⾯面提供保障业务侵⼊入性低 • 协议成本⾼高,并且存在全局锁的问题 ACID 与 BASE • ACID • 原⼦子性 (Atomicity) • ⼀一致性 (Consistency) 真正执⾏行行业务,不不做业务检查 • Cancel:取消执⾏行行业务 • 释放Try阶段预留留的业务资源 业务服务 try confirm cancel 通过领域建模来解决 • 微服务内:聚合通过数据库事务保证强⼀一致 • 内刚 • 微服务间:最终⼀一致 • 外柔 微服务事务⼀一致性建议 • 1987年年Hector & Kenneth 发表论⽂文 Sagas • Saga = Long0 码力 | 33 页 | 2.38 MB | 1 年前3
共 41 条
- 1
- 2
- 3
- 4
- 5













