架构实践
文章平均质量分 75
IT实战联盟Lin
这个作者很懒,什么都没留下…
展开
-
DDD实战(二):分层架构的依赖原则
附源码案例原创 2022-09-28 14:00:42 · 1703 阅读 · 0 评论 -
DDD实战(一):如何设计分层架构?
轻量级快速开发框架原创 2022-08-26 18:13:10 · 1212 阅读 · 0 评论 -
踩坑日记(二):记一次线上业务—Redis 的缓存雪崩
之前有介绍过目前小编负责的业务用户量相对是比较大的,并且几乎每次都有被攻击的情况。最近的一次线上问题是突然收到大量的数据库连接数不够用的异常预警。赶紧检查了数据库连接数使用情况,被分配的数量已经被用光了,并且不能临时增加连接数(和其他系统合用)。但是之前遇到更大的流量也没有出现连接数不够用的情况,那肯定是某段业务的问题。通过监控来看出现大量查询用户信息的 sql 请求,但是业务中对已经对用户信息做了缓存处理,正常情况下不应该出现这种情况,到这里猜测可能遇到“缓存雪崩” 的现象了。什么是缓存雪崩?如果R原创 2021-07-14 10:11:44 · 364 阅读 · 0 评论 -
踩坑日记(一):半夜打DBA电话解决数据库连接超时自动回滚问题
点击上方“IT实战联盟”,关注“公*众*号”领导要高高在上平时多听听他人的意见然后认真记下来到底是谁对你有意见背景很少用的一个业务后台管理端需要导入一批数据(200多条),用户在导入的时候没有成功。业务场景比较复杂,需要将每条数据去数据库匹配、关联、分析后再将结果进行更新。大约涉及5张表、3000多万笔数据。报错日志分析从报错日志上来看,主要是由于连接时间过长,导致连接失效。那么那失效的连接去请求数据库就会报上图的异常。排查步骤第一步:检查数据库连接池设置的超时时原创 2021-07-09 09:59:24 · 522 阅读 · 4 评论 -
架构运维篇(一):Centos7/Linux安装jdk环境
前言最近联系安装部署了多台阿里云ECS和亚马逊云EC2 服务器,重复性的工作简单总结了一下,希望大家都有收获。一、检查历史安装环境(新环境就不需要了)查看命令 #java -version如果没有则说明没有安装过,如果有jdk版本信息那就不需安装或者卸载更新。卸载命令#rpm -e --nodeps java-x.x.x-gcj-compat-x.x.x.x-xxjpp.xxx二、下载安装JDK首先到oracle官网下载jdk,http://www.oracle.com/tec原创 2021-07-09 09:39:30 · 317 阅读 · 0 评论 -
字节跳动 | 微服务架构中如何优雅地重试?
背景在微服务架构中,一个大系统被拆分成多个小服务,小服务之间大量 RPC 调用,经常可能因为网络抖动等原因导致 RPC 调用失败,这时候使用重试机制可以提高请求的最终成功率,减少故障影响,让系统运行更稳定。重试的风险重试能够提高服务稳定性,但是一般情况下大家都不会轻易去重试,或者说不敢重试,主要是因为重试有放大故障的风险。首先,重试会加大直接下游的负载。如下图,假设 A 服务调用 B 服务,重试次数设置为 r(包括首次请求),当 B 高负载时很可能调用不成功,这时 A 调用失败重试.转载 2021-01-05 13:17:32 · 934 阅读 · 0 评论 -
Redis面经:重新梳理了 5 种数据类型的用法和应用场景
IT实战联盟博客:http://blog.100boot.cn1、字符串1.1 介绍string 字符串类型是Redis中最为常用和基础的存储类型,是一个由字节组成的序列,他在Redis中是二进制安全的,也可以认为string字符串数据类型能够接收任何格式的数据,像JPEG图像数、Json等,是标准的key-value,一般来存字符串,整数和浮点数。数据长度:string字符串类型最大能容纳的512MB的数据长度。1.2 使用场景最常见的使用场景就是对于网站访问量的统计,例如.原创 2020-11-16 13:11:41 · 369 阅读 · 0 评论 -
DBeaver 7.2.4 发布,可视化数据库管理平台
IT实战联盟博客:http://blog.100boot.cn软件简介DBeaver 是一个通用的数据库管理工具和 SQL 客户端,支持 MySQL, PostgreSQL, Oracle, DB2, MSSQL, Sybase, Mimer, HSQLDB, Derby, 以及其他兼容 JDBC 的数据库。DBeaver 提供一个图形界面用来查看数据库结构、执行 SQL 查询和脚本,浏览和导出数据,处理 BLOB/CLOB 数据,修改数据库结构等等。DBeaver 7.2.4发布了,本次.原创 2020-11-03 16:04:36 · 557 阅读 · 1 评论 -
「转载」蘑菇街消息系统上云实践
IT实战联盟博客:http://blog.100boot.cn原文地址:https://mp.weixin.qq.com/s/yjaO9iguEQN05FBcjjHSIA小编又来啦~本周要推荐给大家的是一篇跟中间件上云相关的技术文章,这里面详细的记录了,蘑菇街自研消息系统上云的全过程,也是市面上开放出来为数不多的企业自研组件上云实践。有相关需求的同学可以好好学习下。背景从当下的情况来看,如果一个公司需要一个消息队列中间件,那么大致有以下两个个选择:1.首先考虑的应该是各云厂商提供的消息队转载 2020-11-03 16:02:49 · 787 阅读 · 0 评论 -
「轻阅读」京东到家订单中心系统mysql到es的转化之路
IT实战联盟博客:http://blog.100boot.cn原文:https://www.toutiao.com/i6796507988602389006京东到家订单中心系统业务中,无论是外部商家的订单生产,或是内部上下游系统的依赖,订单查询的调用量都非常大,造成了订单数据读多写少的情况。我们把订单数据存储在MySQL中,但显然只通过DB来支撑大量的查询是不可取的。同时对于一些复杂的查询,MySQL支持得不够友好,所以订单中心系统使用了Elasticsearch来承载订单查询的主要压力。转载 2020-11-02 23:48:08 · 460 阅读 · 0 评论 -
「轻阅读」基于 Flink SQL CDC的实时数据同步方案,附视频教程
IT实战联盟博客:http://blog.100boot.cn整理:陈政羽(Flink 社区志愿者)原文:https://mp.weixin.qq.com/s/QNJlacBUlkMT7ksKKSNa5QFlink 1.11 引入了 Flink SQL CDC,CDC 能给我们数据和业务间能带来什么变化?本文由 Apache Flink PMC,阿里巴巴技术专家伍翀 (云邪)分享,内容将从传统的数据同步方案,基于 Flink CDC 同步的解决方案以及更多的应用场景和 CDC 未来开发规划等方面进行转载 2020-11-02 22:59:27 · 4819 阅读 · 2 评论 -
JetLinks 物联网基础平台 1.6 RELEASE 发布
IT实战联盟博客:http://blog.100boot.cnJetLinks 开源物联网平台JetLinks 基于Java8,Spring Boot 2.x,WebFlux,Netty,Vert.x,Reactor等开发, 是一个开箱即用,可二次开发的企业级物联网基础平台。平台实现了物联网相关的众多基础功能, 能帮助你快速建立物联网相关业务系统。核心特性支持统一物模型管理,多种设备,多种厂家,统一管理。统一设备连接管理,多协议适配(TCP,MQTT,UDP,CoAP,HTTP等),屏蔽转载 2020-11-02 18:14:58 · 662 阅读 · 0 评论 -
MyExcel 3.9.8 版本发布
MyExcel,是一个集导入、导出、加密Excel等多项功能的Java工具包。MyExcel采用声明式语法来构建、读取Excel,屏蔽POI的具体操作细节(对POI无感知),以开发常用的技术替代,使得构建(从简单到高度复杂Excel)以及读取Excel变得极为便利,且构建、读取性能极为优异,占用内存极低(具体,请移步参考MyExcel&阿里EasyExcel性能对比)。如导入:List<ArtCrowd> result = SaxExcelReader.of(ArtCrow转载 2020-11-02 18:13:45 · 445 阅读 · 0 评论 -
运维监控软件 wgcloud 更新,v3.2.7 重构告警模块
WGCLOUD,server端基于springboot开发,agent端使用go编写。支持高并发高性能,核心模块包括:服务器集群监控,ES集群状态监控,CPU监控,内存监控,数据监控,docker监控,网络流量监控,服务心跳检测,应用进程管理,磁盘IO监控,系统负载监控,端口监控,日志文件监控,监控告警信息推送。更新说明:1.改造,监控主面板,增强UI显示体验2.新增,增加主机集群的cpu和内存使用率,最高,平均,最低指标3.新增,监控主面板,显示最多30张监控表数据量4.改造,优化.转载 2020-11-02 18:11:11 · 579 阅读 · 0 评论 -
Mocker API 2.7.0 为 REST API 创建模拟 API
IT实战联盟博客:http://blog.100boot.cnmocker-api 为 REST API 创建模拟 API。 当您尝试在没有实际 REST API 服务器的情况下测试应用程序时,它会很有用。特征:????内置支持热Mocker文件替换。????通过JSON快速轻松地配置API。????模拟 API 代理变得简单。????可以独立使用,无需依赖 webpack 和webpack-dev-server。更新内容在命令行中支持多个参数。@vanpipy9e52e06 命转载 2020-11-02 18:09:26 · 317 阅读 · 0 评论 -
挖一挖那些让公司网站瘫痪的SQL“终结者”
IT实战联盟博客:http://blog.100boot.cn一条慢查询会造成什么后果?之前我一直觉得不就是返回数据会慢一些么,用户体验变差?其实远远不止,我经历过几次线上事故,有一次就是由一条 SQL 慢查询导致的。那次是一条 SQL 查询耗时达到 2-3 秒「没有命中索引,导致全表扫描」,由于是高频查询,并发一起来很快就把 DB 线程池打满了,导致大量查询请求堆积,DB 服务器 CPU 长时间 100%+,大量请求 timeout...最终系统崩溃,老板登场!可见,团队如果对慢查询不引起转载 2020-10-30 13:34:05 · 292 阅读 · 0 评论 -
Spring Data 2020.0.0 正式 GA
IT实战联盟博客:http://blog.100boot.cnSpring Data 2020.0.0(代号 Ockham)已正式 GA,这也是更改版本号方案后的首个版本,此前的版本号采用名字来标记,例如 Neumann-RELEASE。新的版本号格式为YYYY.MINOR.MICRO[-MODIFIER]: YYYY是完整的年份,代表此版本发布于该年份 MINOR每年从 0 开始,0 代表某年份中发布的第一个主要版本。按照版本逐渐递增,属于主要版本更新 MICRO是针对主要原创 2020-10-30 13:32:43 · 527 阅读 · 0 评论 -
商城系统 DBShop V3.0 Beta 发布
IT实战联盟博客:http://blog.100boot.cn全新重构,首次亮相。系统简介DBShop企业级商城系统,使用PHP语言基于Laminas(Zendframework 3) + Doctrine 2 组合框架开发完成。可定制、多终端、多场景、多支付、多货币;严谨的安全机制,可靠稳定;方便的操作管理,节约时间;清晰的权限分配,责任分明;便捷的更新处理,一键搞定;丰富的插件市场,扩展无限。系统框架Laminas (Zendframework 3) Doctrine 2环境要求转载 2020-10-29 21:25:27 · 584 阅读 · 1 评论 -
Redisson 3.13.6 发布,官方推荐的 Redis 客户端
Redisson 3.13.6已发布,这是一个 Java 编写的 Redis 客户端,具备驻内存数据网格(In-Memory Data Grid)功能,并获得了 Redis 的官方推荐。主要更新内容:改进 - 默认情况下设置 pingConnectionInterval = 30000 修复 - 在 RLiveObject 更新期间抛出 CROSSLOT 错误 修复 -RRateLimiter.delete() method返回 false 修复 -RBitSet.set(long bi...转载 2020-10-29 21:23:42 · 1206 阅读 · 0 评论 -
项目中为什么用Docker?
IT实战联盟博客:http://blog.100boot.cn项目为什么要用 docker,需要了解 docker 的优势,结合项目的实际情况来决定是否需要使用 docker,千万不能“为了使用而使用”或者“跟风使用 docker”。使用 docker 是为了快速交付和传统的虚拟机相比,docker 具有所用的资源更少、性能更高、隔离级别更高、安全性方面也更强等特点,让我们看看下面几个场景,估计你会有更深的体会。01. 移植性更强相信开发人员都会遇到这样的问题:代码在本地跑的好好的,但是原创 2020-10-28 14:30:02 · 2317 阅读 · 1 评论 -
淘宝开源代码质量检测工具!(附源码)
IT实战联盟博客:http://blog.100boot.cn好的代码一定是整洁的,并且能够帮助阅读的人快速理解和定位。好的代码可以加快应用的开发迭代速度,不必花过多的时间来修复 bug 和完善代码。好的代码不但能够使得新的项目成员更容易加入项目,同时方便项目组成员快速做好 Back up。好的代码便于促进团队间交流合作提升开发效率。代码质量评价标准有编码经验的人对代码都有一定的“鉴赏力”,能够凭感觉给出代码好坏的主观评价。但是这种凭感觉的方式太过个性随意,所谓仁者见仁智者见智,很难达成共识,那转载 2020-10-28 14:23:51 · 1055 阅读 · 0 评论 -
构建 Netflix 分布式追踪(tracing)体系
IT实战联盟博客:http://blog.100boot.cn“为什么我的手机不能播放 Tiger King?”—一位 Twitter 网友留言这是 Netflix on-call 工程师面临问题的一个例子:解决用户碰到的各种问题。排除这种分布式系统的故障非常困难。调查视频流故障需要检查用户账户的所有方面。在上一篇博文(1)中介绍了 Edgar,我们的流 sesion 故障排除工具。本文主要看我们是如何设计 Edgar 的追踪 (tracing) 基础设施。(1)https://netf..转载 2020-10-27 10:44:57 · 499 阅读 · 0 评论 -
【开源资讯】开源文档管理系统 Wizard 1.2.5 发布
IT实战联盟博客:http://blog.100boot.cn/Wizard 是一款开源的文档管理系统,支持 Markdown 文档,Swagger 文档以及表格文档,适应于中小规模的技术团队文档管理,完全免费。Wizard 并不是一款云产品,不提供任何云服务,如果你的团队想要使用他,你必须在自己公司内部独立部署。正因为这样,你的数据和技术文档安全是有保障的,不会泄露给任何不信任的第三方。更新内容1、本次更新(1.2.5)主要包含以下内容2、Markdown 文档图片支持点击查看大图,支持图片原创 2020-10-27 09:54:46 · 402 阅读 · 0 评论 -
看完这篇文章就知道为什么要使用 Node.js啦!
经过这几年的发展,前端普遍进入了技术深水区,只会Web页面开发已经难以满足企业的需求,Node逐渐成为了刚性技能。但Node在业务上的使用还没有那么普及,有的时候想用老板还不同意,本文将从4个角度解析“为什么要使用Node”。01 业务驱动Node有个突出的优势,他的开发者可以是前端。前端对于页面需要懂的数据有更好的理解,每个页面要用到哪些接口,每个接口要用到哪些字段前端是最清楚的。再加上实际业务开发中,前端页面需求经常会发生变化,需要修改字段或者数据结构,所以对接页面的这部分接口由前端直接转载 2020-10-27 09:52:09 · 457 阅读 · 0 评论 -
Node rabbitmq 入门就够了
IT实战联盟博客:http://blog.100boot.cn/消息中间件消息队列中间件(Message Queue Middleware, 简称为 MQ)是指利用高效可靠的消息传递机制进行与平台无关的数据交流, 并基于数据通信来进行分布式系统的集成。 通过提供消息传递和消息排队模型 ,它可以在分布式环境下扩展进程间的通信。一般有两种传递模式:点对 点 ( P2P, Point-to-Point )模式和发布/订阅( Pub/Sub )模式MQ的作用1)解耦:在项目启动之初是很难预测未来会遇到原创 2020-10-26 22:43:46 · 2328 阅读 · 0 评论 -
「转载」微服务分布式架构中,如何实现日志链路跟踪?
IT实战联盟博客:http://blog.100boot.cn/背景开发排查系统问题用得最多的手段就是查看系统日志,在分布式环境中一般使用ELK来统一收集日志,但是在并发大时使用日志定位问题还是比较麻烦,我们来看下面的图上图一个用户请求一个url,整个链路如图,每个处理层都会产生日志,那我们如何把这些日志串在一些,形成一个请求全路径日志。在现有的系统中,由于大量的其他用户/其他线程的日志也一起输出穿行其中导致很难筛选出指定请求的全部相关日志。那我们如何来处理呢?解决思..转载 2020-10-26 21:58:39 · 974 阅读 · 0 评论 -
「开源资讯」浏览器中可以深度学习的框架Paddle.js 1.0 发布
简介Paddle.js 1.0 发布了。Paddle.js 是百度 Paddle 的 web 方向子项目,是一个运行在浏览器中的开源深度学习框架。Paddle.js 可以加载提前训练好的 paddle 模型,或者将 paddle hub 中的模型通过 paddle.js 的模型转换工具变成浏览器友好的模型进行在线推理预测使用。目前,paddle.js 仅可以在支持 webGL 的浏览器中运行。更新内容:兼容性支持在 webGL2.0 和 webGL1.0 的浏览器上运行。例如 ch.原创 2020-07-03 09:35:35 · 413 阅读 · 0 评论 -
「开源资讯」Apache Storm 2.2.0 发布,分布式实时计算
Apache Storm简介Apache Storm 是一个免费开源的分布式实时计算系统。简化了流数据的可靠处理,像 Hadoop 一样实现实时批处理。Storm 很简单,可用于任意编程语言。Apache Storm 采用 Clojure 开发。Storm 有很多应用场景,包括实时数据分析、联机学习、持续计算、分布式 RPC、ETL 等。Storm 速度非常快,一个测试在单节点上实现每秒一百万的组处理。目前已经有包括阿里百度在内的数家大型互联网公司在使用该平台。Apache ..原创 2020-07-03 09:34:38 · 668 阅读 · 0 评论 -
「开源资讯」Sentinel Go 0.4.0 发布,支持热点流量防护能力
来源:https://www.oschina.net/news/116872/sentinel-go-0-4-0-releasedSentinel简介Sentinel 是阿里巴巴开源的,面向分布式服务架构的流量控制组件,主要以流量为切入点,从限流、流量整形、熔断降级、系统自适应保护等多个维度来帮助开发者保障微服务的稳定性。Sentinel 承接了阿里巴巴近 10 年的双十一大促流量的核心场景,例如秒杀、冷启动、消息削峰填谷、集群流量控制、实时熔断下游不可用服务等,是保障微服务高可用的利器,原生支.转载 2020-07-03 09:33:31 · 370 阅读 · 0 评论 -
分布式 NewSQL 数据库TiDB 3.1.0 版本发布,修复多项问题
前言TiDB 是一款定位于在线事务处理/在线分析处理( HTAP: Hybrid Transactional/Analytical Processing)的融合型数据库产品,实现了一键水平伸缩,强一致性的多副本数据安全,分布式事务,实时 OLAP 等重要特性。同时兼容 MySQL 协议和生态,迁移便捷,运维成本极低。架构TiDB 3.1.0 更新内容一、兼容性变化TiDB支持1、Ti...原创 2020-04-18 17:14:36 · 578 阅读 · 0 评论 -
【SpringCloud实战】一次开发中使用Feign添加动态Header问题思考
需求背景最近有个需求,是对接某个运动APP的Api开放平台用户授权业务。文中以两个API为例:1、获取token场景:用户在授权⻚页⾯面点击授权后,⻚页⾯面会跳转到合作⽅方提供的redirect_url,合作⽅方通过跳转传回的code换取token,完成认证和授权。Header附加参数:Authorization:Basic base64(AppKey:AppSecret) `注意:B...原创 2020-04-18 09:56:21 · 3762 阅读 · 1 评论 -
Spring Cloud(Greenwich版)-06-Spring Cloud集成Feign
前言上一章使用Ribbon实现了商品和多个用户微服务之间的负载均衡效果,到现在我们的微服务架构已经“初具规模”啦。接下来会继续完善我们的微服务架构,本章将会引入全新的组件——Feign。看过前面的文章就知道我们采用的是RestTemplate来实现商品和用户微服务间的通信。如下图所示:代码示例:@GetMapping("/goods/{id}")public User findBy...原创 2019-11-21 20:41:02 · 616 阅读 · 0 评论 -
SpringBoot实战之文件上传微软云(Azure Storage)
前言上传文件到Azure Storage 的案例比较少,只能到官网去研究,并且也不一定拿来就可以使用。Blob 存储简介为任何种类的非结构化数据使用可进行大规模缩放的对象存储第一步:配置pom.xml<!-- https://mvnrepository.com/artifact/com.microsoft.azure/azure-storage --><depe...原创 2019-09-26 09:22:32 · 4049 阅读 · 1 评论 -
【分享】一次单体架构改造成微服务架构的拆分实践
上周更新了一篇【揭秘】一个小团队真正能落地的微服务架构实践,很多网友私信询问在落地微服务的时候服务是如何拆分的?有没有具体的方法?可不可以一劳永逸?额…好吧,针对大家比较关注的问题今天来分享一下之前在做电商的时候对公司产品做架构改造升级,以及跟其他同行一起聊过比较公认、适和小团队比较快速落地的微服务拆分方法。备注:文章中提供的拆分方法不一定全部得到大家的认可,如果有更好的可以留言分享哦~~~...原创 2019-04-18 15:53:34 · 3932 阅读 · 3 评论 -
微服务架构实战篇(三):Spring boot2.0 + Mybatis + PageHelper实现增删改查和分页查询功能
简介该项目主要利用Spring boot2.0 +Mybatis + PageHelper实现增删改查和分页查询功能,快速搭建一套和数据库交互的项目。源码地址 GitHub:https://github.com/yundianzixun/Spring-boot2.0-Mybatis-PageHelper 联盟公众号:IT实战联盟 我们社区:https://100boot.cn小...原创 2018-09-21 10:15:48 · 1754 阅读 · 0 评论 -
「轻阅读」如何设计全链路99.99%高可用架构?
(一) 什么是全链路99.99%高可用架构?简单来说,就是如此复杂的架构中,任何一个环节都可能会故障,比如MQ集群可能会挂掉、KV集群可能会挂掉、MySQL集群可能会挂掉。那你怎么才能保证说,你这套复杂架构中任何一个环节挂掉了,整套系统可以继续运行?这就是所谓的全链路99.99%高可用架构具体是考虑通讯高可用、服务高可用这两维度来保证平台支持服务的分布式部署、集群容错和负载均衡来实现。具体如...原创 2019-08-27 18:01:34 · 654 阅读 · 0 评论 -
Spring Cloud(Greenwich版)-05-Spring Cloud集成Ribbon(客户端负载均衡组件)
前言前面完成了商品和用户微服务的注册发现,是基于点对点的微服务之间的调用,那么在实际场景中微服务都是集群部署的,调用关系如下图所示:看到这里大家会想到不就是负载均衡嘛!项目中经常用Nginx来解决图中的服务集群问题,那如果有1000+甚至10000+的服务呢?每增加一个服务要去Nginx里面配置一下,然后重启?额…想想都头皮发麻!并且Nginx的负载均衡模式和本文将要讲的是有区别的。那么...原创 2019-08-16 09:35:40 · 537 阅读 · 0 评论 -
Spring Cloud(Greenwich版)-03-编写高可用Eureka Server(集群)
前言上一章Spring Cloud(Greenwich版)-02-服务注册与服务发现-Eureka入门,我们实现了将User和Goods微服务都注册到了Eureka上,那么在生产环境中为了达到高可用的目的,Eureka Service是集群部署的,那么接下来编写一个多节点Eureka Server集群。如下图所示:编写多节点Eureka Server第一步:设置主机名因为是在本机部署两...原创 2019-07-31 17:00:00 · 449 阅读 · 0 评论 -
架构运维篇(三):Centos7/Linux安装部署Nginx+多Tomcat负载均衡入门实践
上一篇 架构运维篇(二):Centos7/Linux安装部署Tomcat环境简介这一篇是结合上两篇已经安装完成的jdk和tomcat环境上继续的,本篇完成安装部署Nginx+多Tomcat负载均衡,比较简单上手的入门实践 。版本说明jdk :jdk1.8.0_172tomcat :apache-tomcat-8.5.30nginx :nginx-1.13.11 (版本相对来说不是很老...原创 2018-12-29 11:54:30 · 570 阅读 · 0 评论 -
架构运维篇(二):Centos7/Linux安装部署Tomcat环境
上一篇 架构运维篇(一):Centos7/Linux安装jdk环境简介这一篇是结合上一篇已经安装完成的jdk环境上继续的,本篇完成安装并部署Tomcat,相对比较简单 。版本说明jdk :jdk1.8.0_172tomcat :apache-tomcat-8.5.30第一步:下载Tomcat官方网站:https://tomcat.apache.org/download-80.cg...原创 2018-12-29 11:52:16 · 774 阅读 · 0 评论