自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

祈雨v的博客

种一棵树最好的时间是十年前,其次是现在

  • 博客(233)
  • 资源 (20)
  • 收藏
  • 关注

原创 博客迁移声明

博客迁移到:https://wakzz.cn当然CSDN还会作为备份不定时更新博客。

2020-04-11 12:53:04 124

原创 Groovy加载类导致OOM分析

现象项目中需要使用动态规则引擎,因此对热门的Groovy进行了调研。但早先就对Groovy会有OOM的问题有所耳闻,因此调研的时候特地关注了高频率使用Groovy加载类的场景,结果果然与预期一直稳定复现OOM故障。分析复现场景GroovyClassLoader loader = new GroovyClassLoader();for (int i = 0; ; i++) { String source = "" + "public class CustomAppli

2021-11-21 20:55:55 409

原创 ERROR日志打印导致CPU满载

描述开发环境对一台测试节点进行压测时,由于参数配置错误导致请求没有业务处理直接报错。随即停止压测后登录测试机器排查日志,以外发现虽然已经没有请求到该节点,但应用依然在打印错误日志,并且看日志时间是在打印几分钟前请求的日志。第一反应是异步打印的日志出现堆积,于是查看了该应用所在节点的物理资源,发现CPU已经满荷载,以及JVM触发了多次Full GC和OOM。分析复现该节点重启后,以50TPS的速率故意发起错误请求的压测,果然稳定复现CPU满载的问题,因此盲猜是因为CPU满载导致异步日志打印速率慢,生

2021-09-30 21:48:27 340 1

原创 记OceanBase死锁超时

背景线上环境大促活动期间内容平台偶发数据库连接报错,报错信息为 com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure ,初步以为是数据库的其他租户给数据库服务器压力大,导致服务端异常断开了内容平台的数据库连接,因此把这个异常当做数据库服务器不稳定直接忽略了。但后续大促活动已经过去,依然偶发会报同样的异常,这才意识到该异常也许不是数据库服务器不稳定导致。分析问题排查查看应用监控和错误日志

2021-08-28 15:21:49 81

原创 应用发版期间服务响应超时

描述负责的应用正式环境发版期间,下游应用调用服务告警,查看监控发现这个时间段内偶发下游调用查询接口超时,服务耗时波动如下图:并且当应用的所有节点服务发布完成后,偶发的接口超时告警自动恢复,因此盲猜是服务发布时的抖动导致该问题,于是有以下几个猜测:服务注册发现流程问题:节点下线后未及时从注册中心剔除下线节点,导致下游调用到了下线节点服务注册发现流程问题:节点上线后先在注册中心注册节点,再开放服务端口,导致中间的时间差服务无响应资源初始化问题:节点上线后资源未初始化完成,下游调用服务后资源首次初始

2021-07-31 16:49:38 58

原创 系统优化复盘一二三

背景2020年下半年的某个周五下午,作为主开发的我请假出去摸鱼了,然后下午四点左右突然的服务器报警不约而至,各个应用大量报错显示网络超时。人在外,只能拜托其他同事帮忙排查问题了,同事排查后发现是Nginx服务器的CPU满载导致的服务不可用,并于半小时后恢复正常。回到公司后自己排查发现,确实是Nginx服务器故障了,故障期间Nginx服务器的带宽几乎打满,CPU长达半小时的时间内100%荷载。为了进一步分析问题原因,就把故障期间的Nginx日志扒下来解析分析统计,发现是大量的前端请求营销活动的H5页面,

2021-04-27 15:22:31 108

原创 The user specified as a definer does not exist

描述mysql管理员给调用方创建了一个名为test的用户,并授权了指定host,效果如下:mysql> select user,host from mysql.user where user = 'test';+------+------------+| user | host |+------+------------+| test | 172.17.0.2 || test | 172.17.0.3 |+------+------------+2 rows in set

2021-03-27 15:02:46 70 1

原创 Kong网关初探

安装Kong安装文档Kong开源版不提供dashboard支持,只有Kong企业版才有该功能。但有第三方控制台Konga同样可以友好地管理Kong Admin API对象,快速安装如下:docker run -d -p 1337:1337 \--name konga \--network=kong-net \-e DB_ADAPTER=postgres \-e DB_HOST=kong-database \-e DB_PORT=5432 \-e DB_USER=kong \

2021-03-27 15:02:16 429

原创 API网关选型调研

需求稳定性、社区活跃: 一个开源工具的选型,性能是次要的,真正首要的是工具稳定可靠且开源社区持续维护控制台简单友好监控: 监控数据准实时,且清晰友好地展示指定时间区间的多维度数据(RPS、带宽流量、响应时间、HTTP状态码)路由匹配规则: 事实上域名匹配+路径匹配+方法匹配已经基本够用,如果需要灰度发布就再需要个Header匹配,其他再多再精细的匹配规则也仅仅是锦上添花鉴权认证: 绑定在路由维度上的鉴权认证,常用的鉴权方式有HMAC、Basic,另外需要对每个认证用户做权限控制,未授权的路由禁止

2021-03-27 15:00:03 135

原创 CPU火焰图常用工具

CPU火焰图关于性能分析On-CPU火焰图: 基于线程在CPU执行上耗时采样,可以直观地查看线程花费在CPU上的时间分布Off-CPU火焰图: 基于线程在CPU等待(I/O、锁、中断等原因)上耗时采样,可以直观地查看线程花费在阻塞上的时间分布一篇关于off-cpu火焰图的入门引导性文章:offcpuanalysisOff-CPU analysis is complementary to CPU analysis, so that 100% of thread time can be unde

2021-02-27 16:31:05 215

原创 配置中心选型调研

背景为了方便应用程序配置文件的管理,决定使用市面上流行的配置中心作为实现方案,由于配置中心的备选方案很多,我们需要结合目前项目的实际情况来进行技术选型目前市面上流行的配置中心DisconfSpring-cloud-configCtrip apolloDisconfNacosConfigMap目前系统的现状编程语言:Java、Golang;以 Golang 为主,Java 为辅,大部分应用已经从Java切换成了 Golang ,但由于历史原因,部分项目组和少量的项目使用的是 Java

2021-02-27 16:27:06 189 1

原创 root操作Nginx导致用户组错误

问题某年某月某日临近中午,用户突然反应系统出了问题,微信小程序的几个界面加载异常,不能正常访问。紧急排查发现,后端应用有大量的如下错误日志,错误信息SSL peer shut down incorrectly字面上看上去是HTTPS请求Nginx后SSL握手错误,于是再去查看Nginx的日志。Error while extracting response for type [class java.lang.String] and content type [application/json;charse

2021-02-27 16:26:15 123

原创 FastJSON字段智能匹配踩坑

背景2021年第一天早上,客户突然投诉说系统的一个功能出了问题,紧急排查后发现后端系统确实出了bug,原因为前端传输的JSON报文,后端反序列化成JavaBean后部分字段的值丢失了。查看git提交历史记录,前端和后端近期并未对该功能的接口字段做任何修改,联想到上个版本升级了后端的FastJSON的版本,怀疑是后端系统对FastJSON升级导致的问题。复现@Datastatic class Label { @JSONField(name = "label_id") private Intege

2021-01-01 23:08:31 363

原创 Nacos初探

背景前一段时间某个商户做营销活动,某个营销H5页面在短时间内高频率的访问,导致了生产环境的Nginx服务器的CPU直接被流量打满,在长达半小时的时间范围内,Nginx服务器的流量相对于平时流量的最高峰翻了5倍达到了150M的宽带速度,而CPU也同样直接100%满荷载。Nginx在此期间对外部请求处理不及时出现了大量的请求超时,因此引发了一系列的生产事故。事后对故障分析发现CPU满载、流量打满的主要原因如下:被频繁访问的H5页面的静态资源文件全部在Nginx上,商户做营销活动时H5页面的频繁访问导

2020-12-31 13:14:17 496 1

原创 记一次Nginx服务器CPU100%故障

描述周五请假外出,突然收到监控报警提示Nginx服务器的CPU使用率100%,另外用户也反应服务不可用,同事登录服务器后发现Nginx的进程的CPU使用率100%,且后端应用有大量的服务调用网络超时。由于Nginx的访问日志并没有被收集到日志分析的Elasticsearch中,所以无法第一时间通过日志分析来统计出访问异常的资源。故障发生半小时后,服务器自动恢复正常,后端应用也不再有网络超时报错了,云服务器的CPU监控和网络监控如下图:分析看到Nginx应用占用CPU100%时,第一反应是Ng

2020-11-29 20:29:52 2104

原创 基于券系统分库分表的思考

场景公司线上环境券系统的用户券码表目前是单表,虽然知道业务增长很快,数据量应该已经很大了。但是由于需求排期很紧,sql查询也没有出现性能瓶颈,也就一直没有给该表安排上分库分表的架构优化。直到上周某业务需求上线,需要给该表加索引,才发现该表已经增长到不得不进行分库分表的地步了。准备加索引时,习惯性看了一下表数据量,单表磁盘占用20G,总记录5000万条,吓得不敢加索引了,生怕mysql因为给这张表搞索引时宕机了。但需求业务要上线,不得不硬着头皮给用户券码表加索引,结果果然在线翻车。索引变更语句执行后,由

2020-09-30 09:32:47 128

原创 limit不参与SQL成本计算致索引失效

描述测试环境对某应用进行压测时,QPS突然陡降,监控显示mysql的CPU荷载跑满且有大量的慢查询。于是查看慢查询sql,发现该sql理论上不应该出现慢查询。简化后的SQL:select * from test_table where a = 0 and b = 0 limit 1在a字段和b字段已经建立了联合索引后,mysql执行该sql时却选择了其他的错误索引导致了慢sql。复现CREATE TABLE `test_table` ( `id` int(11) NOT NULL AUTO_IN

2020-09-30 09:31:06 271

原创 Linux常用性能监控命令

CPUuser(通常缩写为us),代表用户态CPU时间。不包括下面的nice时间,但包括了guest时间nice(通常缩写为ni),代表低优先级用户态CPU时间,也就是进程的nice值被调整为1-19之间时的CPU时间。nice可取值范围是-20 到19,数值越大,优先级反而越低system(通常缩写为 sys),代表内核态CPU时间idle(通常缩写为 id),代表空闲时间。它不包括等待I/O 的时间(iowait)iowait(通常缩写为 wa),代表等待I/O的CPU时间irq(通常缩写

2020-08-29 15:24:30 536

原创 golang低版本http2偶现400

描述项目组在对某个Golang应用进行压测时,在请求TPS较高的时间段,偶现发起HTTP请求外部系统错误,被请求的外部系统为Nginx代理的另一个Golang应用。查看Nginx日志时发现,Golang客户端请求报错时,Nginx日志显示该报错请求被返回400状态码,如下所示:将Nginx日志中压测期间所有返回400状态码的日志过滤出来,可见该错误稳定每几秒复现一两次,如下所示:问题定位起初认为是外部系统应用因为压测压力过大导致拒绝访问错误而返回的400状态码,但是经排查发现被调用的外部系统并

2020-08-29 15:22:46 271

原创 hostname in certificate didn‘t match

描述某服务商对接公司的在阿里云配置的API网关时,对方开发沟通说我们公司的HTTPS有问题,请求接口后报如下错误:javax.net.ssl.SSLException: hostname in certificate didn't match: <马赛克.com> != <*.alicloudapi.com> OR <*.alicloudapi.com> OR <alicloudapi.com>看到错误信息,第一反应是HTTPS证书有问题,所以HTTP

2020-07-25 16:38:49 3083

原创 常见对称加密原理以及应用

加密算法所谓对称加密算法,通过密钥将明文加密成密文,并且再通过同一个密钥将密文解密成明文,相对于非对称加密算法速度快效率高,对于明文文本越长效率优势越大。常见的对称加密算法有AES、DES、3DES等,其中DES由于密钥长度低容易被暴力破解,因此安全性相对较低已经不推荐使用。而3DES则是DES的升级版,安全性有所提升,但依然不如AES,因此推荐安全性更高的AES加密算法。算法算法类型密钥长度分组长度安全性AES块密码算法128/192/256比特128比特安全

2020-07-25 16:36:03 1704

原创 tcp_tw_recycle引起的TCP握手失败

背景测试环境的一台Nginx服务器,最近一直被前端同事吐槽网络有问题,经常出现访问HTTP请求时超时,哪怕是静态文件也经常超时。刚开始以为是公司网络抽风了,也就没放在心上,但持续了一个星期,而且复现率很高,这才反应过来应该不是网络的锅。于是在请求客户端与Nginx服务器上均作了抓包。本地客户端抓包结果如下图1,请求Nginx服务器TCP握手时超时。结果似乎很明朗,客户端TCP握手的SYN请求丢包导致多次重试,直到重试超时而TCP握手失败。看上去似乎就是网络问题,但这复现率也太高了,于是在服务器上也做了

2020-07-25 16:33:14 787 2

原创 记一次mysql执行DDL导致锁表

背景线上某数据库意外发现缺少索引,并且该表的数据量很少,只有几万条记录而已,因此很随意地尝试给该表添加索引。原本预期该表的记录很少,添加索引的耗时应该很短,结果却直接导致该表被锁,所有该表的增删改查操作全部阻塞,继而影响到了线上业务。发现锁表后,执行show processlist发现大量线程阻塞,状态显示Waiting for table metadata lock。通过命令终止了DDL线程,该表恢复正常。mysql从5.6版本起支持Online DDL,理论上执行DDL语句不会阻塞诸如INSERT、

2020-06-28 10:17:19 1731 1

原创 mysql磁盘占用查看

磁盘占用分析在没有权限查看mysql所在磁盘时,当监控发现磁盘空间不足时,如何通过mysql的命令查看当前mysql实例的磁盘占用情况。binlogmysql默认不清理binlog日志,当运行一段时间后可能会累计大量的binlog文件。通过如下命令查看当前binlog占用情况,文件大小单位为字节:mysql> show binary logs;+------------------+-----------+| Log_name | File_size |+-------

2020-06-28 10:15:16 1703 1

原创 mysql对text字段update致磁盘增长

描述公司有一张表占用的磁盘空间很大,占用磁盘的主要是该表的一个text类型字段。于是我们打算通过洗数据的方式,先将该表的text值更新成一个长度很短的值,预期更新完后该表的磁盘占用不会变,但是表的数据页会有大量的碎片空间,然后再通过例如命令OPTIMIZE TABLE来回收释放未使用的磁盘空间,最终实现减小该表的磁盘空间占用。但实际操作时,当我们将该表的text值的字段批量更新成更短的值时,通过监控发现该表的磁盘空间迅速增长,与我们预期不符。此时才意识到遇到了mysql的行溢出的场景。复现创建两个带

2020-06-28 10:13:47 438 1

原创 elasticsearch报错index read-only

背景线上服务器的Elasticsearch服务大量报错,查询数据没问题,但是新增或者修改数据时,返回如下错误:{ "error": { "root_cause": [ { "type": "cluster_block_exception", "reason": "blocked by: [FORBIDDEN/12/index read-only / allow delete (api)];" } ], "type": "

2020-05-28 20:17:57 1109

原创 TIME_WAIT与Http的Keep-Alive

背景虽然上一次服务器TIME_WAIT连接过多导致报警后,解决方案初步拟定,但是还有一个疑问:线上的服务器架构是前端 -> nginx -> server的模式,但是nginx服务器并没有触发报警,仅仅后端server服务器触发了报警。况且是一台nginx服务器负载均衡了多台server服务器,当时每台server服务器均触发了6000的连接数阈值,但nginx上仅仅有三千多的连接数。查看连接数命令如下:[nginx@hd2-cil-rs-nginx-01 ~]$ netstat -n |

2020-05-28 20:16:56 332

原创 记一次TIME_WAIT导致连接数报警

背景公司监控报警,提示线上服务器的TCP连接数超过警告阈值。报警的几个机器原先的业务量请求量并不大,所以预设的报警阈值并不高只有6000,突然报警有点措手不及,于是先登录服务器把当前的所有连接情况打印下来统计分析。[webapp@hd2-cil-rs-app-02 ~]$ netstat -natp > tmp[webapp@hd2-cil-rs-app-02 ~]$ wc -l tmp5410 tmp原因分析TCP连接数量暴涨,初步怀疑如下:某应用的数据库连接泄漏,使用后数据库连

2020-05-28 20:14:07 11383

原创 记一次生产事故OOM问题排查

背景线上应用需要进行一个涉及600W数据的操作,之前我们应用从来没有一次性应对这么大量的数据,最多就一次数十万而已。结果,这次600W的数据操作引起了生产事故,直接导致应用不可用长达半小时之久。OOM晚上九点半,监控告警提示线上应用宕机。紧急排查发现应用的的进程已经不在了,怀疑是因为内存占用过多导致被操作系统杀进程了。接着查看操作系统日志,如下,果然发现是因为内存占用高达8G而被系统直接杀进程。[webapp@hd2-cil-rs-app-01 ~]$ dmesg...[38617319.5

2020-05-28 20:11:25 894

原创 redis分布式锁RedissonLock的实现细节

简单使用String key = "key-lock";RLock lock = redisson.getLock(key);lock.lock();try { // TODO} catch (Exception e){ log.error(e.getMessage(), e);} finally { lock.unlock();}String key =...

2020-04-27 16:48:39 3184

原创 webservice复杂加密签名(2)java调用

依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-ws</artifactId> <version>1.4.7.RELEASE</version></...

2020-04-20 21:47:41 178 1

原创 webservice复杂加密签名(1)SoapUI

概述WebService本来以为很简单,直到我遇到了万事达的一个对接项目,万事达提供的网关接口是WebService协议,而报文涉及到了WebService的加密,复杂到令人怀疑人生。例如下方两个XML报文,第一个XML报文是加密前的明文报文,而第二个XML报文则是加密签名后的报文。<soapenv:Envelope xmlns:soapenv="http://schemas.xmlso...

2020-04-07 21:05:36 958

原创 利用中间人拦截实现APP内H5窜改

背景公司与某银行合作,由我公司开发一个H5页面嵌入到该银行的官方APP中,业务场景为用户在H5中定位获取附近商户门店,然后用户在H5上领优惠券然后去线下门店核销优惠券。当我们开发进度过半时,尽管一催再催,银行方面却一直迟迟未将测试环境APP提供给我们。由于担心如果银行方面在临近交付时才提供测试环境APP,会影响到H5在APP中的兼容性测试,于是我提出了使用该银行生产环境的APP来做兼容性测试。...

2020-04-06 20:43:16 763

原创 mysql延时关联

描述mysql有种sql优化方式,叫延时关联,即通过使用覆盖索引查询返回需要的主键,再根据主键关联原表获得需要的数据,尤其在大分页查询的场景下,可以提高查询效率。例如下面两行SQL查询语句,在使用覆盖索引的大分页查询场景下,第二条的执行速度要远远快于第一条SQL。select * from table where xxx limit a,b;select * from table wher...

2020-04-04 20:49:34 838

原创 MySQL表字符集不同导致关联查询索引失效

概述mysql在多表之间做关联查询时,需要注意各个表的字符集是否一致。如果在字符集不一致的场景下做关联查询,会出现关联字段即使有索引,但却索引失效的问题。复现建表语句,创建两个字符集不同的表,如下:CREATE TABLE `school` ( `id` int(11) NOT NULL AUTO_INCREMENT, `school_code` varchar(255) DEFA...

2020-03-19 15:21:55 574

原创 通过SSH隧道远程办公

原理SSH不仅可以用于远程主机登录,还可以作为代理转发,也就是SSH隧道。具体场景如下图,客户端可以SSH登录到外网服务器,外网服务器与内网服务器可以网络连接,但客户端与内网服务器无法网络连接。此时就可以通过SSH隧道,将客户端的请求通过外网服务器代理转发到内网服务器,再将请求返回给客户端,实现客户端与内网服务器的网络交互。操作1、建立SSH隧道建立SSH隧道可以通过XShell或者直...

2020-02-25 11:49:58 252

原创 数据落盘方案

应用对已存在的文件更新时需要写入数据,当数据写入过程中异常中断例如断电,则会出现数据只写入部分的情况。在这种异常场景下,在应用恢复后对丢失数据的恢复以及避免数据写入未完全导致文件损坏均需要应用保证。数据储存单元对于硬盘来说,最小的数据储存单元是扇区,一般为512个字节(现在开始流行4096个字节);而对于操作系统来说,以扇区为读写单位太小效率太慢,所以操作系统以块为数据的读写单位。由此可见,扇...

2020-01-11 14:14:09 2360

原创 BeanDefinitionRegistryPostProcessor扩展

通过BeanDefinitionRegistryPostProcessor扩展能实现额外的很多功能,例如实现将一个接口动态代理,并将该代理对象在spring容器初始化完成前注册到spring容器中。实现可以通过@Autowired等注释或其他方法从spring容器中获取该代理对象。代理工厂import lombok.extern.slf4j.Slf4j;import java.lang.r...

2020-01-05 15:26:52 190

原创 mysql空间索引

空间索引示例CREATE TABLE `shop_info` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'id', `shop_name` varchar(64) NOT NULL COMMENT '门店名称', `geom_point` geometry NOT NULL COMMENT '经纬度', PRIMARY KEY ...

2019-12-07 11:04:48 1820 2

原创 spring循环依赖过程解析

spring解决循环依赖spring在创建和依赖注入单例对象时,通过三级缓存的设计,可以解决大多数的循环依赖问题,但是基于三级缓存的解决方案,对于部分场景还是无法解决循环依赖的问题,会由spring抛出异常。spring的三级缓存由singletonObjects、earlySingletonObjects、singletonFactories组成:singletonObjects:保存初...

2019-11-09 15:35:44 402 2

java2c工具

java对象与c结构体数据相互转换的实现工具(java),以及实现demo

2017-12-05

国密算法SADK-3.2.1.3.jar

代码调用方式见 https://blog.csdn.net/sz85850597/article/details/100770794 SM2 非对称加密,基于ECC。 SM3 消息摘要,可以用MD5作为对比理解。 SM4 对称加密,密钥长度和分组长度均为128位。

2019-09-12

libfastcommon-1.36

FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等

2017-09-29

rabbitmq-server-3.6.14-1.el7.noarch.rpm

MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法。

2018-03-22

mysql-5.7.20.tar.gz

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品

2018-03-15

java2c工具(修复)

java对象与c结构体数据相互转换的实现工具(java),以及使用demo

2018-01-07

erlang-19.0.4-1.el7.centos.x86_64.rpm

Erlang是一种通用的面向并发的编程语言,它由瑞典电信设备制造商爱立信所辖的CS-Lab开发,目的是创造一种可以应对大规模并发活动的编程语言和运行环境。

2018-03-22

boost_1_59_0.tar.gz

Boost库是一个可移植、提供源代码的C++库,作为标准库的后备,是C++标准化进程的开发引擎之一。

2018-03-15

fastdfs-5.12

FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等

2017-09-29

动态代理接口并注册到spring容器

实现将一个接口动态代理,并将该代理对象在spring容器初始化完成前注册到spring容器中。实现可以通过@Autowired等注释或其他方法从spring容器中获取该代理对象

2017-12-26

lucene、solr中文分词器

lucene默认自带的分词器对中文支持并不好,所以对于中文索引的分词器,建议使用第三方开源的中文分词器

2017-10-02

jdk-8u161-windows-x64.exe

Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。

2018-04-11

vconsole错误

记一次前端JSON序列化问题排查,cdn文件夹下为此次JSON错误时cdn返回的错误版本js文件,github文件夹下为github上正确的js文件

2019-01-12

mysql5.7.20及boost依赖.zip

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品

2019-11-30

Xshell绿色破解版

Xshell 是一个强大的安全终端模拟软件,它支持SSH1, SSH2, 以及Microsoft Windows 平台的TELNET 协议。

2018-03-13

mysql-5.6.31.tar.gz

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品

2017-09-29

site-1.8.20.zip

SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS

2017-09-29

nginx-1.12.0.tar.gz

Nginx 是俄罗斯人编写的十分轻量级的 HTTP 服务器,Nginx,它的发音为“engine X”,是一个高性能的HTTP和反向代理服务器,同时也是一个 IMAP/POP3/SMTP 代理服务器

2017-09-29

redis-3.2.8.tar.gz

Redis 教程 REmote DIctionary Server(Redis) 是一个由Salvatore Sanfilippo写的key-value存储系统

2017-09-29

mysql-5.6.31

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品

2017-09-29

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除