自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

阿拉斯加大闸蟹的博客

https://github.com/singgel/

  • 博客(316)
  • 资源 (56)
  • 收藏
  • 关注

原创 大闸蟹的架构师之路-基础架构组篇

本仓库更多是关于团队层面的视角,把控技术演进(为什么要做这件事)和流程规范(做事的边界和风险),不涉及单项深度,单项。

2022-09-20 20:33:48 2640

原创 Prometheus基于Consul的 Redis 多实例监控方案

在redis_exporter issues中也有人做了针对不同密码不同redis实例采集的Docker镜像, 但这种方案无论在prometheus展示中还是在consul中都会明文暴漏redis实例密码,有需要的可以自己查看[2]操作,但是维护文件对运维确实也是苦难的,可自动化程度低且复杂。的配置文件中,这样维护起来比较难,需要频繁的修改配置文件。在同一级目录下) 的动态发现,虽然不需要再频繁修改的。实现动态发现的,这也是今天说的重点,对于基于。其他过多的就不在扩展了,直接进入正题,通过。

2022-09-19 11:30:16 1639

原创 OpenStack网络

虚机的创建和管理是Nova的任务,虚机网络的创建和管理是Neutron的任务,而虚机网卡,作为连接虚机和虚机网络的桥梁,其创建和管理则同时涉及了Nova和Neutron。VPC代表了不同的租户,vpc隔离了租户,每个租户的子网之间也是隔离的。通过vxlan封装物理机中的使用vlan划分的虚拟机,可以将一个vpc中的vlan信息发送到另一个vpc中,从而达到不同vpc的主机的二层通信。它的北向有自己的RESTAPI,它在中间有自己的业务逻辑层,它有自己的DB,有自己的用于进程间通讯的消息机制。...

2022-07-22 14:57:33 1784 1

原创 并发设计演进和在多语言设计模式里的思路特性

文章目录CSP简述CSP form wiki并发问题并发方案并发实现之-actor模型并发实现之-Goroutineactor模型与goroutine对照Goroutine实现实现简述Goroutine调度机制Goroutine优缺点实操ChannelGolang syncContextRace题外话Rust非均匀内存访问调度器(Non-uniform memory access,NUMA架构)CSP简述CSP form wikiCommunicating sequential processes翻

2022-04-27 14:48:19 2602

原创 APISIX网关在雪球生产实践

雪球,聪明的投资者都在这里 - 4300万投资者都在用的投资社区,沪深港美全球市场实时行情,股票基金债券免费资讯,与投资高手实战交流。背景雪球为用户提供稳定的投资实时资讯,内部对于沪深港美全球市场实时行情进行了双活改造,其中涉及到架构升级问题,而跨机房的用户鉴权是其中重要的一环。现有的鉴权方式是通过客户端 SDK 集成,由基础组件完成 RPC 的调用、缓存、解析、处理等一系列的 Token 校验流程。而在双活架构下,跨机房时延的存在使得既有的校验模式,对已有的 SLA 产生重大影响,同时还需升级鉴权模

2022-01-26 14:41:04 3949

原创 统一推送平台搭建与优化

前言需求背景雪球近几年来用户量和产品线激增。为了更加贴切的迎合公司业务发展和用户个性化需求,实现以下目标:满足用户对信息把控的时效性增加用户终端机型的覆盖率提升用户满意度和产品体验雪球统一推送平台应运而生,推送作为 APP 运营中一个关键渠道,通过对它的合理运用,可以很好的促进目标实现。目前已在:关注发帖、回复评论、股价提醒、个股公告、组合调仓等多个业务场景服务用户,同时帮助运营人员将7*24小时资讯、行情速递等精选内容第一时间投递到目标用户。产品设计雪球早期自建推送是基于自建长连接和第

2021-12-28 14:40:23 2392

原创 关于内容更新声明

2021-10-24 即日起博客内容迁移至新的博客社区提供更好的阅读体验和文字排版slogan:一个帮助开发者成长的社区

2021-10-27 10:02:46 1903 1

原创 雪球基础架构梳理

服务发现为什么不要把ZooKeeper用于服务发现为什么不要把ZooKeeper用于服务发现_java的平凡之路-CSDN博客问题:在ZooKeeper中,网络分区中的客户端节点无法到达Quorum时,就会与ZooKeeper失去联系,从而也就无法使用其服务发现机制。因此,在用于服务发现时,ZooKeeper无法很好地处理网络分区问题。作为一个协调服务,这没问题。但对于服务发现来说,信息中可能包含错误要好于没有信息。虽然可以通过客户端缓存和其它技术弥补这种缺陷,像Pinterest和Airbn.

2021-10-19 16:25:46 2444

原创 服务网关-apisix实践搭建

摘自温铭:一个微服务 API 网关具备了多项网关功能,就可以让用户的服务只关心业务本身,而和业务实现无关的功能,比如服务发现、服务熔断、身份认证、限流限速、统计、性能分析等,就可以在独立的网关层面来解决。从这个角度来看,API 网关既可以替代 Nginx 的所有功能,来处理南北向的流量,也可以完成 Istio 控制面和 Envoy 数据面的角色,来处理东西向的流量。安装流程:apisix安装# 添加 OpenResty 源wget -qO -https://openresty.or.

2021-10-19 10:06:13 2574

原创 服务网关-apisix、envoy实践前期

Apisix Linkerd Envoy对比 初衷:1.治理东西流量eg:gPRC基于uid灰度,分流2.grpc的服务注册、发现eg:替代现有的zookeeper注册中心背景:为什么不选择客户端负载均衡方式?使用gRPC客户端负载均衡器,该负载均衡器被嵌入到gRPC客户端库中。这样,每个客户端微服务都可以执行自己的负载均衡。但是,最终的客户非常脆弱,需要大量的自定义代码来提供任何形式的弹性,指标或..

2021-10-18 14:30:52 2960

原创 lucene的FST

关于Lucene的词典FST深入剖析 | 申艳超-博客

2021-10-09 10:54:55 2373

原创 服务MySQL压测线程池问题分析​

一、问题5-15号晚上对 fundx-web prod 环境的整体集群做了一次压力测试,期间有数次数据库错误报警,如下:1. org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is java.sql.SQLException: wait millis 508, active 33, maxActive 100,creating .

2021-09-28 10:30:25 3238

原创 netty数据流堆外内存排查

背景行情服务每次在开盘与收盘期间的堆外内存都会上涨,并且需要周期性手动重启,影响到服务的稳定性排查过程1.堆外内存的计算标准此matrix(used_direct_memory)计算标准由netty统一进行计算,因此可以初步判断是由于netty分配的堆外内存导致内存上涨,并非直接有也直接调用Unsafe分配堆外内存import io.netty.util.internal.PlatformDependent; public DirectMemoryMonitor() {

2021-09-28 10:25:20 3328

原创 Redis 4集群failover后客户端未感知拓扑变化排查

排查结论23:18分,30.1这台机器出现异常,其在30.2上的Slave Redis服务检测到后提出升主请求并获得通过,成为Master; 23:18至23:34之间,Redis client端对于Redis Server的连接检测并未异常,没有触发拓扑更新,因而对于Redis Server访问异常; 23:34,SRE重启30.1,此时 Redis Client检测到连接断开,触发拓扑更新,Redis访问正常。解决方案当前触发Redis Client更新拓扑的方式有两种:1. 向服务端..

2021-09-17 18:35:45 3621

原创 雪球中间件技术分享

zookeeper: 命名服务:在分布式环境下,经常需要对应用/服务进行统一命名,便于识别不同服务 配置管理:分布式环境下,对配置文件修改后,希望能够快速同步到各个节点上。(apollo) 集群管理:分布式环境中,可根据节点实时状态做出一些调整。 分布式锁:控制锁的时序。各个客户端在某个Znode下创建临时Znode,这个类型必须为CreateMode.EPHEMERAL_SEQUENTIAL,这样该Znode可掌握全局访问时序。 分布式队列:当一个队列的成员都聚齐时......

2021-08-17 18:02:57 4375

原创 微信公众号高质量技术贴-提炼总结

微信公众号高质量技术贴过滤掉对自己感觉没有技术相关性的,或者是那种水贴对内容进行归类整理阅读完写下自己的读后感LINUX从无盘启动看 Linux 启动原理“只读内存”(ROM)----“基本输入输出系统”(BIOS)----“硬件自检”(POST)----“启动顺序”(Boot Sequence)上电自检----UEFI 固件被加载----加载 UEFI 应用----启动内核及 initramfs/sbin/init----/etc/inittab----etc/rcN.dLi

2021-07-22 15:05:24 2913 2

原创 JDK8升级JDK9 HTT2 TLS问题解决之路(艰辛)

背景描述s公告服务是雪球行情的公告抓取服务,主要负责从相关网站抓取A股、港股、美股公告,调用接口发贴。数据抓取是在该业务场景是行情数据的入口,影响以后的的处理逻辑。因此,通过代理池+proxy的方式接入网络代理,规避前期发现的因为单个代理频繁请求导致IP被封的问题。但是在接入后发现网络请求的可用性并没有提高,因此进一步排查问题,找到问题提的根本原因。问题描述在未使用代理的情况下,请求结果返回http的403错误码 在使用代理的情况下,请求反馈的http的403错误码的代理应该降低。返回403错

2021-07-21 16:58:28 3283

原创 日志平台-ES性能优化

一些旧的工具Ø elastic-hq:性能分析Ø cerebro:索引管理、settingsØ whatson:segment分析Ø es cat apiES慢日志https://www.elastic.co/guide/en/elasticsearch/reference/current/index-modules-slowlog.html合理的控制indexhttps://www.elastic.co/guide/en/elasticsearch/reference/cu

2021-07-12 15:01:42 2984

原创 ES数据迁移

移除数据节点移除node前可以先exclude要移除的nodel cluster:cluster.routing.allocation.exclude._name : node1l Index:index.routing.allocation.exclude._name: node1index.routing.allocation.require.node_type: hot技巧:以上参数可根据_ip、_host等来进行配置 以上参数可实现hot-warn目标:迁移替换sto

2021-07-12 15:00:26 2957

原创 日志平台-ES架构设计

remote clusterhttps://www.elastic.co/guide/en/elasticsearch/reference/current/modules-remote-clusters.html冷热架构(等机器资源申请到位的时候)https://www.elastic.co/cn/blog/implementing-hot-warm-cold-in-elasticsearch-with-index-lifecycle-managementES Client Node什么

2021-07-12 14:32:29 2838

原创 日志平台-Index的管理

当前使用的是shell的定时任务 Mapping配置 索引生命周期 index配置 ILM的管理 index管理 方法 1: 使用在索引名称上带上时间的方法管理索引(这个是目前采用的方式) 方法 2: 使用 Rollover 管理索引 方法 3: 使用 ILM(Index Lifecycle Management ) 管理索引(这个使用跟graylog一样,就是被抛弃的原因之一,索引的名字目前在系统中是具有意义的) shard的管理 按照保留期限进行索引 每个索引和分

2021-07-12 14:26:14 2769

原创 Nginx架构

Nginx架构> master进程主要用来管理worker进程,具体包括如下4个主要功能:> 1)接受来自外界的信号。其中master循环中的各项标志位就对应着各种信号,如:ngx_quit代表QUIT信号,表示优雅的关闭整个服务。> 2)向各个worker进程发送信。比如ngx_noaccept代表WINCH信号,表示所有子进程不再接受处理新的连接,由master向所有的子进程发送QUIT信号量。> 3)监控worker进程的运行状态。比如ngx_reap代表...

2021-07-09 15:06:38 2703

原创 TSDB数据库

TSDB(Time Series Database)时序列数据库,我们可以简单的理解为一个优化后用来处理时间序列数据的软件,并且数据中的数组是由时间进行索引的。为什么需要时序数据库:试想一下:Tesla 自动驾驶、华尔街自动交易算法、智能家居、能够实现日内闪电般运抵的交通网络和纽约市警察局发布的开放数据,它们都有哪些共同点?一方面,它们预示着我们的世界正以曲速般变化,我们捕获和解析的数...

2021-07-09 14:51:39 6217

原创 关于RPC框架封装时ThreadPool的选型和设计

Tomcat的: Dubbo的: grpc官方默认的: xueqiu-spring的:Tomcat的:https://tomcat.apache.org/tomcat-9.0-doc/config/http.html name 描述 maxThreads: 最大并发数,默认设置 200,一般建议在 500 ~ 800,根据硬件设施和业务来判断 The maximum number of request proce

2021-06-23 17:35:31 3009

原创 Elasticsearch扩容文档

最终步骤0.SRE配置物理机环境,准备SSD磁盘,同步docker镜像1.在rolling上启动节点(检查是否正常启动,max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144] 如果出现此错误,则需要SRE改下ulimit参数。2.如启动成功,则将 新加的 ip 加入 host 映射中nodes.es.snowballfinance.com,之后在 kibana...

2021-06-16 11:10:11 3390

原创 高效的Redis数据删除方式转至元数据结尾

DEL 和 UNLINK区别?同步还是异步?使用DEL命令会触发「同步删除」,如果Key是一个有很多元素的复杂类型,这个过程可能会堵塞一下Redis服务自身,从而影响用户的访问。使用UNLINK命令,Redis服务会先计算删除Key的成本,从而更智能地做出「同步删除」或「异步删除」的选择。成本计算:对于list,hash,set,zset的对象类型,如果长度大于64(由宏LAZYFREE_THRESHOLD定义),才会采用异步删除的手段,从当前db先释放该key,再由另外一个线程做异步删除。

2021-06-16 10:51:12 3229

原创 netty实战

基本使用同步请求:private static final String DESTINATION_ADDRESS = "https://github.com/soulrelay";OkHttpClient client = new OkHttpClient.Builder().build();Request request = new Request.Builder() .url(DESTINATION_ADDRESS) .build();Response r

2021-06-16 10:48:07 4849

原创 OkHttp3线程池相关之Dispatcher中的ExecutorService

基本使用同步请求:private static final String DESTINATION_ADDRESS = "https://github.com/soulrelay";OkHttpClient client = new OkHttpClient.Builder().build();Request request = new Request.Builder() .url(DESTINATION_ADDRESS) .build();Response r

2021-06-16 10:31:19 3574

原创 lettuce redis SDK监控

前提介绍如果已经使用了redis sdk雪球的SDK组件,已经集成实现了实现原理英文原声文档,简单易懂,而且这种metric模式,是趋势https://github.com/lettuce-io/lettuce-core/wiki/Command-Latency-Metrics代码实现添加监控注意commandLatencyCollector方法 privatevoidbuildRedisClusterClient() { if(r...

2021-06-15 17:55:29 3631

原创 Prometheus个性化语法

基础查询:Graphite--查看CPU使用率aliasByNode(container.message-platform-service.production.*.*.cpu.total, 4)prometheus--查看系统CPU使用率system_cpu_usage{instance="$instance",application="xueqiu-push"}范围查询:目前用不到,不做讲解偏移查询:graphite没有,目前没有找到相应的语...

2021-06-15 17:54:48 3680

原创 threadPool 线程池监控

Redis连接池不够用?这个问题回答见:lettuce 共享连接xueqiu-toolbox-spring提供了spring中Executor类型bean的默认监控:集成监控Executor的线程池参数<!-- 版本从50开始:0.0.50 --><dependency> <groupId>com.xueqiu.infra.toolbox</groupId> <artifactId>xueqiu-toolb.

2021-06-15 17:53:39 5367 1

zookeeper 监控

zookeeper监控指标zk_version 版本zk_avg_latency 平均 响应延迟zk_max_latency 最大 响应延迟zk_min_latency 最小 响应延迟zk_packets_received 收包数zk_packets_sent 发包数zk_num_alive_connections 活跃连接数zk_outstanding_requests 堆积请求数zk_server_state 主从状态zk_znode_count znode 数zk_watch_

2021-06-15 17:52:48 3540

原创 jmc&jcmd

采集jfr数据的脚本使用直接:bash dump_event_jfr.sh 1h后面是时间#!/bin/bash# dump jfr下载到本地# touch dump_event_jfr.sh ; chmod u+x dump_event_jfr.sh ; vim dump_event_jfr.sh# nohup bash dump_event_jfr.sh 1h &recordMinute=10mif [[ -n "$1" ]]; then recordMinute=$1.

2021-06-15 11:12:08 3482

原创 Audacity合成音频的软件

合成音频的软件使用的是Audacity,免费开源,网上教程也多操作简单:项目:https://audacity.onl/源码:https://github.com/audacity/audacity

2021-06-07 10:44:04 3516

原创 集成监控Executor的线程池参数

实现方式采用spring的bean后置装载的接口代码: publicclassExecutorMetricWapperimplementsBeanPostProcessor { @Override publicObject postProcessAfterInitialization(Object bean, String beanName)throwsBeansException { if((beanins...

2021-05-31 13:51:28 3934

原创 日志平台-统一日志平台ELK管理

ElasticSearch术语概念 ES的集群管理 Index的管理

2021-05-31 13:45:46 4059

原创 6-日志平台-日志流监控

日志采集: 流程 要做的事情 日志规范 固定字段定义 日志格式 日志采集 落盘规则 滚动策略 采集方法 日志传输 消息队列 消费方式 Topic规范 保存时间 日志切分 采样 过滤 自定格式 日志检索 索引分割 分片设置 检索优化 权限设置 保存时间 日志流监控 采集异常 传输异常 检索异常 不合规范 监控报警 ...

2021-05-31 13:43:39 3853

原创 5-日志平台-日志检索

5.日志检索转至元数据结尾由贺矿省创建, 最后修改于2021-05-08转至元数据起始日志采集: 流程 要做的事情 日志规范 固定字段定义 日志格式 日志采集 落盘规则 滚动策略 采集方法 日志传输 消息队列 消费方式 Topic规范 保存时间 日志切分 采样 过滤 自定格式 日志检索 索引分割 分片设置 检索优化 权限设置 保存时间 日志流监控 采集异常 传输异常 检索异常 不合...

2021-05-31 13:42:08 3870

原创 4-日志平台-日志切分

日志采集: 流程 要做的事情 日志规范 固定字段定义 日志格式 日志采集 落盘规则 滚动策略 采集方法 日志传输 消息队列 消费方式 Topic规范 保存时间 日志切分 采样 过滤 自定格式 日志检索 索引分割 分片设置 检索优化 权限设置 保存时间 日志流监控 采集异常 传输异常 检索异常 不合规范 监控报警 不同的日志落地规则: Java应用日志logStash落ES 之前...

2021-05-17 20:53:12 4045

原创 3-日志平台-日志传输

日志采集: 流程 要做的事情 日志规范 固定字段定义 日志格式 日志采集 落盘规则 滚动策略 采集方法 日志传输 消息队列 消费方式 Topic规范 保存时间 日志切分 采样 过滤 自定格式 日志检索 索引分割 分片设置 检索优化 权限设置 保存时间 日志流监控 采集异常 传输异常 检索异常 不合规范 监控报警 各种规范对应的传输要求: Java应用对应的kafka 之前的ka...

2021-05-17 20:49:58 3958

雪球-API服务网关.key

雪球-API服务网关.key

2021-10-21

雪球-校招入职技术必修训-20210714.ppt

雪球-校招入职技术必修训-20210714.ppt

2021-08-18

防Mac睡眠工具Theine320.zip

防Mac睡眠工具Theine320.zip

2021-08-17

雪球行情-双机房-2021-07-29.key

雪球行情-双机房-2021-07-29.key

2021-08-17

雪球内存grpc框架实现简版

雪球内存grpc框架实现简版

2021-08-17

雪球日志平台建设es简介.pptx

雪球日志平台建设es简介.pptx

2021-08-17

雪球-基础组件功能使用.key

雪球-基础组件功能使用.key

2021-08-17

JMeter压测遇到的问题(1).pptx

JMeter压测遇到的问题(1).pptx

2021-08-02

Redis简介.pptx

Redis简介.pptx

2021-07-29

redis监控指标.html

redis监控指标.html

2021-07-29

jmc-8.0.1_osx-x64.tar.gz

jmc-8.0.1_osx-x64.tar.gz

2021-06-15

prometheus use case share.key

prometheus use case share.key

2021-02-24

APM应用&&预研.key

APM应用&&预研.key

2021-02-24

zk 导致gRPC负载不均衡.pdf

zk 导致gRPC负载不均衡.pdf

2021-02-24

从Lucene到Elasticsearch:全文检索实战

从Lucene到Elasticsearch:全文检索实战

2019-03-26

Flume日志收集与MapReduce模式.pdf

Flume日志收集与MapReduce模式.pdf

2019-02-15

securityCTR_Mac

securityCTR_Mac

2019-01-10

MicrosoftRemoteDesktop_10_hks

MicrosoftRemoteDesktop_10_hks.zip

2019-01-10

MicrosoftRemoteDesktop_8

MicrosoftRemoteDesktop_8_hks

2019-01-10

Mac版FileZilla3390

FileZilla3390

2019-01-10

redis-desktop-manager-0.8.3-2550.dmg

redis-desktop-manager-0.8.3-2550.dmg redis-desktop-manager-0.8.3-2550.dmg redis-desktop-manager-0.8.3-2550.dmg

2018-12-25

多媒体信息处理的进展.pdf

多媒体信息处理的进展.pdf

2018-11-27

百面机器学习.pdf

百面机器学习.pdf

2018-11-22

apache-activemq-5.13.1-bin.tar.gz

apache-activemq-5.13.1-bin.tar.gz

2018-10-10

深入解析Spring架构与设计原理.pdf

深入解析Spring架构与设计原理.pdf

2018-08-31

Hadoop技术内幕:深入解析YARN架构设计与实现原理.PDF

Hadoop技术内幕:深入解析YARN架构设计与实现原理.PDF

2018-08-27

Hadoop技术内幕:深入解析MapReduce架构设计与实现原理.pdf

Hadoop技术内幕:深入解析MapReduce架构设计与实现原理.pdf

2018-08-27

Java多线程编程核心技术.pdf

Java多线程编程核心技术.pdf

2018-08-24

《大型网站系统与JAVA中间件实践》

《大型网站系统与JAVA中间件实践》

2018-08-23

深入浅出MyBatis技术原理与实战.pdf

深入浅出MyBatis技术原理与实战.pdf

2018-08-21

图解TCP_IP_第5版.pdf

图解TCP_IP_第5版.pdf 图解TCP_IP_第5版.pdf 图解TCP_IP_第5版.pdf

2018-07-31

JAVA并发编程实践

JAVA并发编程实践 JAVA并发编程实践 JAVA并发编程实践

2018-07-31

J2EE核心模式.pdf

J2EE核心模式.pdf J2EE核心模式.pdf J2EE核心模式.pdf

2018-07-31

head+first+servlets jsp

head+first+servlets jsp head+first+servlets jsp head+first+servlets jsp

2018-07-31

深入理解Java虚拟机[JVM高级特性与最佳实践](周志明)

深入理解Java虚拟机[JVM高级特性与最佳实践](周志明).pdf 深入理解Java虚拟机[JVM高级特性与最佳实践](周志明).pdf

2018-07-31

从PAXOS到ZOOKEEPER分布式一致性原理与实践

从PAXOS到ZOOKEEPER分布式一致性原理与实践.pdf 从PAXOS到ZOOKEEPER分布式一致性原理与实践.pdf

2018-07-31

mac的UE编辑器

UEditor 是一套开源的在线HTML编辑器,主要用于让用户在网站上获得所见即所得编辑效果,开发人员可以用 UEditor 把传统的多行文本输入框(textarea)替换为可视化的富。。。

2018-07-06

mac的网络传输分析工具

Wireshark是免费的网络协议检测程序,支持Unix,Windows。让您经由程序抓取运行的网站的相关资讯,包括每一封包流向及其内容、资讯可依操作系统语系看出,方便查看、监控TCP session动态等等。

2018-07-06

mac数据恢复

EasyRecovery(数据恢复软件)中文破解版是世界著名数据恢复公司 Ontrack 的技术杰作,EasyRecovery(数据恢复软件)中文破解版是一个威力非常强大的硬盘数据恢复工具,能够帮你恢复丢失的数据以及重建文件系统。您只需要按软件提示一步一步操作,就能恢复出你电脑上的文档、表格、图片、音频、视频等宝贵数据,即使你是个电脑新手,也能很快地上手本软件

2018-07-06

WinSw.NET4.rar

nginx安装到windows服务

2018-02-08

空空如也

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

TA关注的人

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