Service Mesh Istio 从入门到放弃 (三) istio 弹性保障
文章目录
- Request Timeouts
- Retry
- Circuit Breaking
- Fault Injection
- Mirroring
Request Timeouts
- 超时是为了控制服务故障的范围,系统弹性防护的措施之一,为了模拟这个现象,接下来需要给demo应用做一些修改
- 指定请求到reviews服务的v2版本,因为只有v2版本会调用ratings服务
- 然后给ratings服务注入一个2s的延迟
- 最后给请求reviews服务的路由加一个0.5s的超时
1.指定请求到reviews服务为v2版本,这样再请求页面只会看到黑色的星星
kubectl apply -f - <<EOF
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:name: reviews
spec:hosts:- reviewshttp:- route:- destination:host: reviewssubset: v2
EOF
2.给ratings服务注入一个2s的延迟,这样在刷新/productpage页面时会等待两秒才有内容
kubectl apply -f - <<EOF
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:name: ratings
spec:hosts:- ratingshttp:- fault:delay:percent: 100fixedDelay: 2sroute:- destination:host: ratingssubset: v1
EOF
3.给reviews服务增加一个0.5s的超时,这样再刷新页面就提示服务不可用了
kubectl apply -f - <<EOF
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:name: reviews
spec:hosts:- reviewshttp:- route:- destination:host: reviewssubset: v2timeout: 0.5s
EOF
Retry
- 重试是为了避免网络抖动导致请求的失败
- 为了模拟这个情况,需要
- 取消reveiws服务超时的配置
- 给ratings服务添加一个5s的延迟,同时配置1s的超时重试
1.取消reviews服务的超时配置
kubectl apply -f - <<EOF
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:name: reviews
spec:hosts:- reviewshttp:- route:- destination:host: reviewssubset: v2
EOF
2.给ratings服务添加一个5s的延迟,同时配置1s的超时重试
kubectl apply -f - <<EOF
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:name: ratings
spec:hosts:- ratingshttp:- fault:delay:percent: 100fixedDelay: 5sroute:- destination:host: ratingssubset: v1retries:attempts: 2perTryTimeout: 1s
EOF
3.打开ratings服务sidecar的log来看看请求,发现有两次请求,这样就证明重试配置起作用了
kubectl logs -f ratings-v1-5d4f4b45bf-5sjw4 -c istio-proxy[2020-09-07T13:20:14.753Z] "GET /ratings/0 HTTP/1.1" 200 - "-" "-" 0 48 4 2 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.1 Safari/605.1.15" "43419be2-8404-9410-b30c-451860d84689" "ratings:9080" "127.0.0.1:9080" inbound|9080|http|ratings.default.svc.cluster.local 127.0.0.1:47484 10.244.1.42:9080 10.244.1.39:40632 outbound_.9080_.v1_.ratings.default.svc.cluster.local default
[2020-09-07T13:20:17.781Z] "GET /ratings/0 HTTP/1.1" 200 - "-" "-" 0 48 2 2 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.1 Safari/605.1.15" "43419be2-8404-9410-b30c-451860d84689" "ratings:9080" "127.0.0.1:9080" inbound|9080|http|ratings.default.svc.cluster.local 127.0.0.1:47484 10.244.1.42:9080 10.244.1.39:40634 outbound_.9080_.v1_.ratings.default.svc.cluster.local default
Circuit Breaking
-
istio能针对连接、请求和异常检测去配置熔断,它是保障微服务弹性的重要手段之一,能够保证微服务级联雪崩,导致整个系统崩溃
-
为了展示熔断的特性,需要
- 部署一个httpbin服务
- 并为httpbin服务添加熔断配置
- 部署一个负载测试工具fortio来出发服务的熔断
1.部署一个httpbin服务
root@kube1:~/istio/istio-1.5.1# kubectl apply -f samples/httpbin/httpbin.yaml
serviceaccount/httpbin created
service/httpbin created
deployment.apps/httpbin created
2.为这个服务添加熔断配置
kubectl apply -f - <<EOF
apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:name: httpbin
spec:host: httpbintrafficPolicy:connectionPool:tcp:maxConnections: 1http:http1MaxPendingRequests: 1maxRequestsPerConnection: 1outlierDetection:consecutiveErrors: 1interval: 1sbaseEjectionTime: 3mmaxEjectionPercent: 100
EOF
- 连接池配置
- maxConnections tcp的最大连接数是1
- maxRequestsPerConnection tcp连接上的最大http请求数是1
- http1MaxPendingRequests 最大的http最大被阻挡的请求数是1
- 异常探测
- consecutiveErrors触发熔断的失败次数是1
- 熔断的间隔时间
- baseEjectionTime 基础驱逐时间 是3min,默认是30s,驱逐时间根据这个属性会乘一个被熔断驱逐次数,实现一个指数级退避策略,也就是当你错误次数越来越多,熔断探测的间隔时间会越来越长
- maxEjectionPercent 最大有多少比例的服务实例被熔断驱逐出去
3.验证熔断配置是否生效
root@kube1:~/istio/istio-1.5.1# kubectl describe dr httpbin
Name: httpbin
Namespace: default
Labels: <none>
Annotations: kubectl.kubernetes.io/last-applied-configuration:{"apiVersion":"networking.istio.io/v1alpha3","kind":"DestinationRule","metadata":{"annotations":{},"name":"httpbin","namespace":"default"}...
API Version: networking.istio.io/v1beta1
Kind: DestinationRule
Metadata:Creation Timestamp: 2020-09-07T13:45:57ZGeneration: 1Resource Version: 4347907Self Link: /apis/networking.istio.io/v1beta1/namespaces/default/destinationrules/httpbinUID: 1c270ce5-be8e-437a-81ba-77797db148ea
Spec:Host: httpbinTraffic Policy:Connection Pool:Http:http1MaxPendingRequests: 1Max Requests Per Connection: 1Tcp:Max Connections: 1Outlier Detection:Base Ejection Time: 3mConsecutive Errors: 1Interval: 1sMax Ejection Percent: 100
Events: <none>
4.部署一个流量测试工具fortio
root@kube1:~/istio/istio-1.5.1# kubectl apply -f samples/httpbin/sample-client/fortio-deploy.yaml
service/fortio created
deployment.apps/fortio-deploy created
5.登录pod,使用fortio工具 来调用httpbin 触发一次请求,可以看到响应结果
root@kube1:~/istio/istio-1.5.1# export FORTIO_POD=$(kubectl get pods -lapp=fortio -o 'jsonpath={.items[0].metadata.name}')root@kube1:~/istio/istio-1.5.1# kubectl exec "$FORTIO_POD" -c fortio -- /usr/bin/fortio curl -quiet http://httpbin:8000/g
HTTP/1.1 200 OK
server: envoy
date: Mon, 07 Sep 2020 14:02:24 GMT
content-type: application/json
content-length: 586
access-control-allow-origin: *
access-control-allow-credentials: true
x-envoy-upstream-service-time: 17{"args": {},"headers": {"Content-Length": "0","Host": "httpbin:8000","User-Agent": "fortio.org/fortio-1.6.8","X-B3-Parentspanid": "d964f49dc1381ad1","X-B3-Sampled": "1","X-B3-Spanid": "f251aa8ed27b094a","X-B3-Traceid": "684683095322c746d964f49dc1381ad1","X-Forwarded-Client-Cert": "By=spiffe://cluster.local/ns/default/sa/httpbin;Hash=01cc58646a677f556d03ba08ae4bb4bf77784d1e6874e46d4965b4ef9a52a5da;Subject=\"\";URI=spiffe://cluster.local/ns/default/sa/default"},"origin": "127.0.0.1","url": "http://httpbin:8000/get"
}
6.因为之前的熔断配置是maxConnections: 1 和 http1MaxPendingRequests: 1,这些配置意味着如果连接和请求同时超过一个,就会发生熔断错误,所以下面的命令同时使用2个连接(-c 2) 和发送20个请求(-n 20)
kubectl exec "$FORTIO_POD" -c fortio -- /usr/bin/fortio load -c 2 -qps 0 -n 20 -loglevel Warning http://httpbin:8000/get14:05:39 I logger.go:115> Log level is now 3 Warning (was 2 Info)
Fortio 1.6.8 running at 0 queries per second, 8->8 procs, for 20 calls: http://httpbin:8000/get
Starting at max qps with 2 thread(s) [gomax 8] for exactly 20 calls (10 per thread + 0)
14:05:39 W http_client.go:698> Parsed non ok code 503 (HTTP/1.1 503)
14:05:39 W http_client.go:698> Parsed non ok code 503 (HTTP/1.1 503)
14:05:39 W http_client.go:698> Parsed non ok code 503 (HTTP/1.1 503)
14:05:39 W http_client.go:698> Parsed non ok code 503 (HTTP/1.1 503)
14:05:39 W http_client.go:698> Parsed non ok code 503 (HTTP/1.1 503)
14:05:39 W http_client.go:698> Parsed non ok code 503 (HTTP/1.1 503)
14:05:39 W http_client.go:698> Parsed non ok code 503 (HTTP/1.1 503)
14:05:39 W http_client.go:698> Parsed non ok code 503 (HTTP/1.1 503)
Ended after 811.898072ms : 20 calls. qps=24.634
Aggregated Function Time : count 20 avg 0.057826079 +/- 0.06969 min 0.000387521 max 0.221833788 sum 1.15652158
# range, mid point, percentile, count
>= 0.000387521 <= 0.001 , 0.000693761 , 25.00, 5
> 0.002 <= 0.003 , 0.0025 , 30.00, 1
> 0.003 <= 0.004 , 0.0035 , 35.00, 1
> 0.008 <= 0.009 , 0.0085 , 40.00, 1
> 0.016 <= 0.018 , 0.017 , 45.00, 1
> 0.025 <= 0.03 , 0.0275 , 55.00, 2
> 0.03 <= 0.035 , 0.0325 , 60.00, 1
> 0.045 <= 0.05 , 0.0475 , 70.00, 2
> 0.09 <= 0.1 , 0.095 , 75.00, 1
> 0.12 <= 0.14 , 0.13 , 80.00, 1
> 0.14 <= 0.16 , 0.15 , 85.00, 1
> 0.16 <= 0.18 , 0.17 , 95.00, 2
> 0.2 <= 0.221834 , 0.210917 , 100.00, 1
# target 50% 0.0275
# target 75% 0.1
# target 90% 0.17
# target 99% 0.217467
# target 99.9% 0.221397
Sockets used: 9 (for perfect keepalive, would be 2)
Jitter: false
Code 200 : 12 (60.0 %)
Code 503 : 8 (40.0 %)
Response Header Sizes : count 20 avg 138.85 +/- 113.4 min 0 max 232 sum 2777
Response Body/Total Sizes : count 20 avg 586.85 +/- 282.4 min 241 max 818 sum 11737
All done 20 calls (plus 0 warmup) 57.826 ms avg, 24.6 qps
上面的统计结果显示60%的请求通过了,40%的请求返回503被熔断了
Code 200 : 12 (60.0 %)
Code 503 : 8 (40.0 %)
7.把并发连接数提到3进行测试
kubectl exec "$FORTIO_POD" -c fortio -- /usr/bin/fortio load -c 3 -qps 0 -n 30 -loglevel Warning http://httpbin:8000/get14:07:32 I logger.go:115> Log level is now 3 Warning (was 2 Info)
Fortio 1.6.8 running at 0 queries per second, 8->8 procs, for 30 calls: http://httpbin:8000/get
Starting at max qps with 3 thread(s) [gomax 8] for exactly 30 calls (10 per thread + 0)
14:07:32 W http_client.go:698> Parsed non ok code 503 (HTTP/1.1 503)
14:07:32 W http_client.go:698> Parsed non ok code 503 (HTTP/1.1 503)
14:07:32 W http_client.go:698> Parsed non ok code 503 (HTTP/1.1 503)
14:07:32 W http_client.go:698> Parsed non ok code 503 (HTTP/1.1 503)
14:07:32 W http_client.go:698> Parsed non ok code 503 (HTTP/1.1 503)
14:07:32 W http_client.go:698> Parsed non ok code 503 (HTTP/1.1 503)
14:07:32 W http_client.go:698> Parsed non ok code 503 (HTTP/1.1 503)
14:07:32 W http_client.go:698> Parsed non ok code 503 (HTTP/1.1 503)
14:07:32 W http_client.go:698> Parsed non ok code 503 (HTTP/1.1 503)
14:07:32 W http_client.go:698> Parsed non ok code 503 (HTTP/1.1 503)
14:07:32 W http_client.go:698> Parsed non ok code 503 (HTTP/1.1 503)
14:07:32 W http_client.go:698> Parsed non ok code 503 (HTTP/1.1 503)
14:07:32 W http_client.go:698> Parsed non ok code 503 (HTTP/1.1 503)
14:07:32 W http_client.go:698> Parsed non ok code 503 (HTTP/1.1 503)
14:07:32 W http_client.go:698> Parsed non ok code 503 (HTTP/1.1 503)
14:07:32 W http_client.go:698> Parsed non ok code 503 (HTTP/1.1 503)
14:07:32 W http_client.go:698> Parsed non ok code 503 (HTTP/1.1 503)
14:07:32 W http_client.go:698> Parsed non ok code 503 (HTTP/1.1 503)
14:07:32 W http_client.go:698> Parsed non ok code 503 (HTTP/1.1 503)
14:07:32 W http_client.go:698> Parsed non ok code 503 (HTTP/1.1 503)
14:07:32 W http_client.go:698> Parsed non ok code 503 (HTTP/1.1 503)
14:07:32 W http_client.go:698> Parsed non ok code 503 (HTTP/1.1 503)
14:07:32 W http_client.go:698> Parsed non ok code 503 (HTTP/1.1 503)
14:07:32 W http_client.go:698> Parsed non ok code 503 (HTTP/1.1 503)
14:07:32 W http_client.go:698> Parsed non ok code 503 (HTTP/1.1 503)
14:07:32 W http_client.go:698> Parsed non ok code 503 (HTTP/1.1 503)
14:07:32 W http_client.go:698> Parsed non ok code 503 (HTTP/1.1 503)
14:07:32 W http_client.go:698> Parsed non ok code 503 (HTTP/1.1 503)
Ended after 28.717189ms : 30 calls. qps=1044.7
Aggregated Function Time : count 30 avg 0.0024530259 +/- 0.005584 min 0.00031694 max 0.022741939 sum 0.073590778
# range, mid point, percentile, count
>= 0.00031694 <= 0.001 , 0.00065847 , 86.67, 26
> 0.001 <= 0.002 , 0.0015 , 90.00, 1
> 0.012 <= 0.014 , 0.013 , 93.33, 1
> 0.02 <= 0.0227419 , 0.021371 , 100.00, 2
# target 50% 0.000699454
# target 75% 0.000904372
# target 90% 0.002
# target 99% 0.0223306
# target 99.9% 0.0227008
Sockets used: 28 (for perfect keepalive, would be 3)
Jitter: false
Code 200 : 2 (6.7 %)
Code 503 : 28 (93.3 %)
Response Header Sizes : count 30 avg 15.4 +/- 57.62 min 0 max 231 sum 462
Response Body/Total Sizes : count 30 avg 210.13333 +/- 165.5 min 153 max 817 sum 6304
All done 30 calls (plus 0 warmup) 2.453 ms avg, 1044.7 qps
成功率进一步降低,失败率进一步升高
Code 200 : 2 (6.7 %)
Code 503 : 28 (93.3 %)
9.通过下面的命令可以看一下被熔断的具体情况的聚合数据,httpbin.default.svc.cluster.local.upstream_rq_pending_overflow 展示的就是具体被熔断的次数是11
kubectl exec "$FORTIO_POD" -c istio-proxy -- pilot-agent request GET stats | grep httpbin | grep pendingcluster.outbound|8000||httpbin.default.svc.cluster.local.circuit_breakers.default.rq_pending_open: 0
cluster.outbound|8000||httpbin.default.svc.cluster.local.circuit_breakers.high.rq_pending_open: 0
cluster.outbound|8000||httpbin.default.svc.cluster.local.upstream_rq_pending_active: 0
cluster.outbound|8000||httpbin.default.svc.cluster.local.upstream_rq_pending_failure_eject: 0
cluster.outbound|8000||httpbin.default.svc.cluster.local.upstream_rq_pending_overflow: 11
cluster.outbound|8000||httpbin.default.svc.cluster.local.upstream_rq_pending_total: 16
Fault Injection
- 如果能够主动模拟一些故障情景的发生,通过观察系统在这种情况下的表现,再进行对应优化修改,那么当真正的故障发生时,就可以做到心中有数,游刃有余
- 在模拟超时重试的时候,我们其实已经给ratings服务注入了一个超时的故障,这里不再赘述
- 接下来我们模拟一个终止(abort)类型的故障
1.首先需要恢复服务的正常路由配置,然后添加路由配置,让登录名为jason的用户访问v2版本的reviews服务
,让其他用户访问v1版本的reviews服务
kubectl apply -f samples/bookinfo/networking/virtual-service-all-v1.yaml
kubectl apply -f samples/bookinfo/networking/virtual-service-reviews-test-v2.yaml
2.为v2版本reviews服务注入一个100%的流量返回500错误的abort故障
kubectl apply -f samples/bookinfo/networking/virtual-service-ratings-test-abort.yaml
3.然后用jason用户登录,刷新页面就可以看到Ratings service is currently unavailable的提示信息
总结一下,可以注入的故障有两种超时(delay)和终止(abort),他们的配置如下:
apiVersion: networking.istio.io/v1beta1
kind: VirtualService
...
spec:hosts:- ratingshttp:- fault:delay:fixedDelay: 7spercentage:value: 50- fault:abort:httpStatus: 500percentage:value: 50match:- headers:end-user:exact: jasonroute:- destination:host: ratingssubset: v1- route:- destination:host: ratingssubset: v1
Mirroring
- 流量镜像功能主要是为了模拟线上的流量,来解决一些在测试环境无法复现的问题
1.首先需要部署v1、v2两个版本的httpbin服务
- httpbin-v1:
cat <<EOF | istioctl kube-inject -f - | kubectl create -f -
apiVersion: apps/v1
kind: Deployment
metadata:name: httpbin-v1
spec:replicas: 1selector:matchLabels:app: httpbinversion: v1template:metadata:labels:app: httpbinversion: v1spec:containers:- image: docker.io/kennethreitz/httpbinimagePullPolicy: IfNotPresentname: httpbincommand: ["gunicorn", "--access-logfile", "-", "-b", "0.0.0.0:80", "httpbin:app"]ports:- containerPort: 80
EOF
- httpbin-v2:
cat <<EOF | istioctl kube-inject -f - | kubectl create -f -
apiVersion: apps/v1
kind: Deployment
metadata:name: httpbin-v2
spec:replicas: 1selector:matchLabels:app: httpbinversion: v2template:metadata:labels:app: httpbinversion: v2spec:containers:- image: docker.io/kennethreitz/httpbinimagePullPolicy: IfNotPresentname: httpbincommand: ["gunicorn", "--access-logfile", "-", "-b", "0.0.0.0:80", "httpbin:app"]ports:- containerPort: 80
EOF
2.为这两个服务创建可访问的service
kubectl create -f - <<EOF
apiVersion: v1
kind: Service
metadata:name: httpbinlabels:app: httpbin
spec:ports:- name: httpport: 8000targetPort: 80selector:app: httpbin
EOF
3.为httpbin定义路由,将其指向v1版本
kubectl apply -f - <<EOF
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:name: httpbin
spec:hosts:- httpbinhttp:- route:- destination:host: httpbinsubset: v1weight: 100
---
apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:name: httpbin
spec:host: httpbinsubsets:- name: v1labels:version: v1- name: v2labels:version: v2
EOF
4.发一个请求测试一下,可以看到header信息,说明请求成功了
root@kube1:~/istio/istio-1.5.1# export SLEEP_POD=$(kubectl get pod -l app=sleep -o jsonpath={.items..metadata.name})
root@kube1:~/istio/istio-1.5.1# kubectl exec "${SLEEP_POD}" -c sleep -- curl -s http://httpbin:8000/headers
{"headers": {"Accept": "*/*","Content-Length": "0","Host": "httpbin:8000","User-Agent": "curl/7.69.1","X-B3-Parentspanid": "917d1f30c9d691cd","X-B3-Sampled": "1","X-B3-Spanid": "1a7987c2578d6687","X-B3-Traceid": "107cc7e533b09efb917d1f30c9d691cd","X-Forwarded-Client-Cert": "By=spiffe://cluster.local/ns/default/sa/default;Hash=4c1074a241f191c1d6732cccb583a46dcfbf882813693a6211ec5b417c59d865;Subject=\"\";URI=spiffe://cluster.local/ns/default/sa/sleep"}
}
5.为了观测后面v2会产生镜像流量,我们打开两个终端分别观看v1和v2产生的请求log
root@kube1:~/istio/istio-1.5.1# kubectl logs -f httpbin-v1-d879b9568-qtffc -c httpbin
[2020-09-08 01:52:10 +0000] [1] [INFO] Starting gunicorn 19.9.0
[2020-09-08 01:52:10 +0000] [1] [INFO] Listening at: http://0.0.0.0:80 (1)
[2020-09-08 01:52:10 +0000] [1] [INFO] Using worker: sync
[2020-09-08 01:52:10 +0000] [8] [INFO] Booting worker with pid: 8
127.0.0.1 - - [08/Sep/2020:02:05:08 +0000] "GET /headers HTTP/1.1" 200 516 "-" "curl/7.69.1"root@kube1:~/istio/istio-1.5.1# kubectl logs -f httpbin-v2-69bcdd6f7c-c78ld -c httpbin
[2020-09-08 01:52:16 +0000] [1] [INFO] Starting gunicorn 19.9.0
[2020-09-08 01:52:16 +0000] [1] [INFO] Listening at: http://0.0.0.0:80 (1)
[2020-09-08 01:52:16 +0000] [1] [INFO] Using worker: sync
[2020-09-08 01:52:16 +0000] [9] [INFO] Booting worker with pid: 9
6.为httpbin-v2 添加流量镜像的配置
kubectl apply -f - <<EOF
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:name: httpbin
spec:hosts:- httpbinhttp:- route:- destination:host: httpbinsubset: v1weight: 100mirror:host: httpbinsubset: v2mirror_percent: 100
EOF
7.为v1发送一个请求
root@kube1:~# kubectl exec sleep-6bdb595bcb-xktfl -c sleep -- curl -s http://httpbin:8000/headers
{"headers": {"Accept": "*/*","Content-Length": "0","Host": "httpbin:8000","User-Agent": "curl/7.69.1","X-B3-Parentspanid": "cbe3361fec2e1656","X-B3-Sampled": "1","X-B3-Spanid": "d8ae3fbe573ce08d","X-B3-Traceid": "c7b6073fc8111651cbe3361fec2e1656","X-Forwarded-Client-Cert": "By=spiffe://cluster.local/ns/default/sa/httpbin;Hash=4c1074a241f191c1d6732cccb583a46dcfbf882813693a6211ec5b417c59d865;Subject=\"\";URI=spiffe://cluster.local/ns/default/sa/sleep"}
}
然后在v1和v2的终端里就会看到对应的log
root@kube1:~# kubectl logs -f httpbin-v1-d879b9568-qtffc -c httpbin
[2020-09-08 01:52:10 +0000] [1] [INFO] Starting gunicorn 19.9.0
[2020-09-08 01:52:10 +0000] [1] [INFO] Listening at: http://0.0.0.0:80 (1)
[2020-09-08 01:52:10 +0000] [1] [INFO] Using worker: sync
[2020-09-08 01:52:10 +0000] [8] [INFO] Booting worker with pid: 8127.0.0.1 - - [08/Sep/2020:02:22:47 +0000] "GET /headers HTTP/1.1" 200 516 "-" "curl/7.69.1"
root@kube1:~/istio/istio-1.5.1# kubectl logs -f httpbin-v2-69bcdd6f7c-c78ld -c httpbin
[2020-09-08 01:52:16 +0000] [1] [INFO] Starting gunicorn 19.9.0
[2020-09-08 01:52:16 +0000] [1] [INFO] Listening at: http://0.0.0.0:80 (1)
[2020-09-08 01:52:16 +0000] [1] [INFO] Using worker: sync
[2020-09-08 01:52:16 +0000] [9] [INFO] Booting worker with pid: 9127.0.0.1 - - [08/Sep/2020:02:22:47 +0000] "GET /headers HTTP/1.1" 200 556 "-" "curl/7.69.1"
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
相关文章
- 连接DB2数据库问题:java.lang.NoClassDefFoundError
解决方法: 临时变量设置:set JAVA_HOME=D:\develop\JDK\bin set PATH=%JAVA_HOME%\bin 修改项目Java Compiler 版本 选择jdk7.0,就可以解决。...
2024/4/21 11:16:12 - codeforces1367D 思维模拟
1367D 1800 题意:给你一段字符串,你可以从中选取字母,然后一个长度为n的数组,每个数字表示对于某个字符串s来说,为大于当前字母的位置为i,abs(当前位置-i)之和,问你s的字符串,保证s存在 思路:对于s从最大的字母开始计算,因为最大即贡献肯定是0,然后计算这个字母对…...
2024/4/6 19:23:57 - openMVS-- Resrtuction Mesh (原理及代码解读)
【论文阅读】openMVS-- Resrtuction Mesh (原理及代码解读)1、 pre-process2、Resrtuction mesh2.1、 DT – `Incrementally`2.1.1、insert 3D point (包含alpha_vis(P)的计算)2.1.2、finite\infinite face\DT(DT-s_weight)2.2、 weight【weight_vis && weight_qua…...
2024/5/4 16:56:05 - Unity 关于shader variant 变体
https://docs.unity3d.com/ScriptReference/ShaderVariantCollection.html https://docs.unity3d.com/Manual/OptimizingShaderLoadTime.htmlshader variants shader变体 在写shader的时候,会写一些小段代码,通过关键字去开启或者关闭它们,当Unity去编译他们的时候,会根据关…...
2024/3/29 11:22:08 - P3397 地毯 【差分】
题目背景 此题约为NOIP提高组Day2T1难度。 题目描述 在 nnn\times nnn 的格子上有 mmm 个地毯。 给出这些地毯的信息,问每个点被多少个地毯覆盖。 输入格式 第一行,两个正整数 n,mn,mn,m。意义如题所述。 接下来 mmm 行,每行两个坐标 (x1,y1)(x_1,y_1)(x1,y1) 和 (x2,y2…...
2024/4/21 16:25:19 - 黄金价格预测:如何将时序数据处理成监督学习数据
背景概述今天介绍下如何将时序数据处理成监督学习可用的训练样本。比较典型的场景是黄金的原始数据,一般黄金走势数据是由两个字段组成,分别是时间字段和价格字段。走势图如下:顺便安利一个黄金数据的下载网址:https://fred.stlouisfed.org/series/GOLDAMGBD228NLBM数据滑动…...
2024/3/15 5:05:23 - 排序算法-Java
冒泡排序 冒泡排序的基本思想是:对比相邻的元素值,如果满足条件就交换元素值,把较小的元素值移动到数组前面,把大的元素值移动到数组后面(也就是交换两个元素的位置),这样数组元素就像气泡一样从底部上升到顶部。 冒泡排序的算法比较简单,排序的结果稳定,但时间效率不…...
2024/3/15 0:15:10 - Python 学习:基本数据类型数字和字符串
一、数字 1、数据类型:整形:int 浮点型:float2、获取数据类型:typeeg:type(1)3、进制二进制:0b开头 八进制:0o开头 十六进制:0x开头4、进制转换转为二进制:bin() ;eg:bin(0x11) 转为八进制:oct();eg:oct(0b11) 转为十进制:int();eg:int(0x10) 转为十六进制:hex(…...
2024/4/27 8:18:42 - Linux部署Tomcat
一、配置环境变量二、上传Tomcat文件到服务器并解压三、修改tomcat端口四、启动Tomcat五、关闭Tomcat...
2024/3/15 2:22:21 - js 格式化日期yyyy-MM-dd hh:mm:ss
js 格式化日期yyyy-MM-dd hh:mm:ssfunction formatDate(objDate,fmt) { var o = {"M+" : objDate.getMonth()+1, //月份"d+" : objDate.getDate(), //日"h+" : objDate.getHours()%12 == 0 ? 12 : objDate.getHours()%12, //小时"H+"…...
2024/4/11 22:00:11 - Android查看apk的签名信息
第一步:将apk解压第二步:找到META-INF 下的.RSA文件第三步:在控制台上输入命令: keytool -printcert -file xxx.RSA回车,即可查看签名文件.将.RSA文件拖入到-file后面,即可查看...
2024/5/4 14:09:54 - 右键文件夹出现使用vscode打开(win10)
1、把以下代码复制到记事本,然后另存为后缀名为".reg"的文件。 Windows Registry Editor Version 5.00[HKEY_CLASSES_ROOT\*\shell\VSCode]@="Open with Code""Icon"="D:\\user\\Microsoft VS Code\\Code.exe"[HKEY_CLASSES_ROOT\*\s…...
2024/3/15 3:17:06 - 01 学习前注意事项和学习方式
文章目录1. 教程面向群体2. 学完之后达到什么水平3. 学完后能做什么4. 学习心态5. 学习方法 这些年随着互联网的发展,很多人不管是为了爱好还是赚钱,都想要拥有编程这种技能。但是在很多人卡在入门这块迟迟不得要领,于是便出现了这个教程。 这个教程是为了让初学者在一个比较…...
2024/4/6 7:54:27 - javac不是内部或外部命令,也不是可运行的程序 或批处理文件的细节问题
C:\Program Files\Java\jdk1.8.0_131\bin...
2024/5/4 18:07:41 - 进程与线程基础知识
进程是资源(CPU、内存等)分配的基本单位,线程是CPU调度和分配的基本单位(程序执行的最小单位)。 线程是进程的一个执行流,进程其实是不能用来运行代码的,真正运行代码的是进程里的线程。 多进程更健壮,性能更好,但系统资源开销大,多进程通讯因为需要跨越进程边界,不…...
2024/4/15 16:32:32 - tensorflow和pytorch中的tensor变量的值如何打印输出
tensorflow...
2024/4/17 2:16:38 - FLUX-TMS-物流整体解决方案 附下载地址
TMS是TransportationManagementSystem的英文缩写,意为运输管理系统。在管理软件中,以英文缩写命名的系统名称并不鲜见,TMS大部分只作为一个管理系统中的其中一个子系统来运用,主要在物流管理系统中,其主要功能是对物流环节中的运输环节的具体管理,包括车辆管理,在运途中…...
2024/3/28 5:59:09 - Mysql常见问题汇总
Mysql常见问题汇总本文主要涉及一些mysql常见问题,便于巩固基础知识。...
2024/3/17 18:31:29 - 跳转到新页面后可视口没有从顶部开始显示
跳转到新页面后可视口没有从顶部开始显示,解决办法:router.beforeEach((to, from, next) => {/* 进入新页面自动回到页面顶部 */// chromedocument.body.scrollTop = 0// firefoxdocument.documentElement.scrollTop = 0// safariwindow.pageYOffset = 0let userId = loca…...
2024/4/23 21:49:09 - SuMa++: Efficient LiDAR-based Semantic SLAM
文章目录流程介绍语义分割预处理语义里程计面元更新流程介绍在SuMa的基础上,引入了RangeNet++进行语义分割,在对语义分割进行预处理之后,在里程计和面元更新模块,也考虑了语义信息。算法在Kitti的城市数据上相对SuMa有显著提升,在Kitti Odometry数据集上也和State of Art的…...
2024/3/17 17:20:31
最新文章
- JAVA停车场管理系统(不含GUI图形用户界面)
目录 任务要求 具体实现 Parking_Management_System类 Account类 Administrators类 User类 Tool类 任务要求 本代码用于实现一个简单的停车场管理系统,包含数据结构中的栈和队列 栈代表停车场停车的数量,先进后出,因为入口被视为一次只能过…...
2024/5/4 18:48:53 - 梯度消失和梯度爆炸的一些处理方法
在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言,在此感激不尽。 权重和梯度的更新公式如下: w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...
2024/3/20 10:50:27 - 利用Sentinel解决雪崩问题(一)
1、解决雪崩问题的常见方式有四种: 超时处理:设定超时时间,请求超过一定时间没有响应就返回错误信息,不会无休止等待;舱壁模式:限定每个业务能使用的线程数,避免耗尽整个tomcat的资源,因此也叫线程隔离;熔断降级:由断路器统计业务…...
2024/5/1 13:07:43 - 分享一个Python爬虫入门实例(有源码,学习使用)
一、爬虫基础知识 Python爬虫是一种使用Python编程语言实现的自动化获取网页数据的技术。它广泛应用于数据采集、数据分析、网络监测等领域。以下是对Python爬虫的详细介绍: 架构和组成:下载器:负责根据指定的URL下载网页内容,常用的库有Requests和urllib。解析器:用于解…...
2024/5/4 3:49:57 - 416. 分割等和子集问题(动态规划)
题目 题解 class Solution:def canPartition(self, nums: List[int]) -> bool:# badcaseif not nums:return True# 不能被2整除if sum(nums) % 2 ! 0:return False# 状态定义:dp[i][j]表示当背包容量为j,用前i个物品是否正好可以将背包填满ÿ…...
2024/5/4 12:05:22 - 【Java】ExcelWriter自适应宽度工具类(支持中文)
工具类 import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.CellType; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet;/*** Excel工具类** author xiaoming* date 2023/11/17 10:40*/ public class ExcelUti…...
2024/5/4 11:23:32 - Spring cloud负载均衡@LoadBalanced LoadBalancerClient
LoadBalance vs Ribbon 由于Spring cloud2020之后移除了Ribbon,直接使用Spring Cloud LoadBalancer作为客户端负载均衡组件,我们讨论Spring负载均衡以Spring Cloud2020之后版本为主,学习Spring Cloud LoadBalance,暂不讨论Ribbon…...
2024/5/4 14:46:16 - TSINGSEE青犀AI智能分析+视频监控工业园区周界安全防范方案
一、背景需求分析 在工业产业园、化工园或生产制造园区中,周界防范意义重大,对园区的安全起到重要的作用。常规的安防方式是采用人员巡查,人力投入成本大而且效率低。周界一旦被破坏或入侵,会影响园区人员和资产安全,…...
2024/5/3 16:00:51 - VB.net WebBrowser网页元素抓取分析方法
在用WebBrowser编程实现网页操作自动化时,常要分析网页Html,例如网页在加载数据时,常会显示“系统处理中,请稍候..”,我们需要在数据加载完成后才能继续下一步操作,如何抓取这个信息的网页html元素变化&…...
2024/5/4 12:10:13 - 【Objective-C】Objective-C汇总
方法定义 参考:https://www.yiibai.com/objective_c/objective_c_functions.html Objective-C编程语言中方法定义的一般形式如下 - (return_type) method_name:( argumentType1 )argumentName1 joiningArgument2:( argumentType2 )argumentName2 ... joiningArgu…...
2024/5/3 21:22:01 - 【洛谷算法题】P5713-洛谷团队系统【入门2分支结构】
👨💻博客主页:花无缺 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 本文由 花无缺 原创 收录于专栏 【洛谷算法题】 文章目录 【洛谷算法题】P5713-洛谷团队系统【入门2分支结构】🌏题目描述🌏输入格…...
2024/5/3 23:17:01 - 【ES6.0】- 扩展运算符(...)
【ES6.0】- 扩展运算符... 文章目录 【ES6.0】- 扩展运算符...一、概述二、拷贝数组对象三、合并操作四、参数传递五、数组去重六、字符串转字符数组七、NodeList转数组八、解构变量九、打印日志十、总结 一、概述 **扩展运算符(...)**允许一个表达式在期望多个参数࿰…...
2024/5/4 14:46:12 - 摩根看好的前智能硬件头部品牌双11交易数据极度异常!——是模式创新还是饮鸩止渴?
文 | 螳螂观察 作者 | 李燃 双11狂欢已落下帷幕,各大品牌纷纷晒出优异的成绩单,摩根士丹利投资的智能硬件头部品牌凯迪仕也不例外。然而有爆料称,在自媒体平台发布霸榜各大榜单喜讯的凯迪仕智能锁,多个平台数据都表现出极度异常…...
2024/5/4 14:46:11 - Go语言常用命令详解(二)
文章目录 前言常用命令go bug示例参数说明 go doc示例参数说明 go env示例 go fix示例 go fmt示例 go generate示例 总结写在最后 前言 接着上一篇继续介绍Go语言的常用命令 常用命令 以下是一些常用的Go命令,这些命令可以帮助您在Go开发中进行编译、测试、运行和…...
2024/5/4 14:46:11 - 用欧拉路径判断图同构推出reverse合法性:1116T4
http://cplusoj.com/d/senior/p/SS231116D 假设我们要把 a a a 变成 b b b,我们在 a i a_i ai 和 a i 1 a_{i1} ai1 之间连边, b b b 同理,则 a a a 能变成 b b b 的充要条件是两图 A , B A,B A,B 同构。 必要性显然࿰…...
2024/5/4 2:14:16 - 【NGINX--1】基础知识
1、在 Debian/Ubuntu 上安装 NGINX 在 Debian 或 Ubuntu 机器上安装 NGINX 开源版。 更新已配置源的软件包信息,并安装一些有助于配置官方 NGINX 软件包仓库的软件包: apt-get update apt install -y curl gnupg2 ca-certificates lsb-release debian-…...
2024/5/3 16:23:03 - Hive默认分割符、存储格式与数据压缩
目录 1、Hive默认分割符2、Hive存储格式3、Hive数据压缩 1、Hive默认分割符 Hive创建表时指定的行受限(ROW FORMAT)配置标准HQL为: ... ROW FORMAT DELIMITED FIELDS TERMINATED BY \u0001 COLLECTION ITEMS TERMINATED BY , MAP KEYS TERMI…...
2024/5/4 12:39:12 - 【论文阅读】MAG:一种用于航天器遥测数据中有效异常检测的新方法
文章目录 摘要1 引言2 问题描述3 拟议框架4 所提出方法的细节A.数据预处理B.变量相关分析C.MAG模型D.异常分数 5 实验A.数据集和性能指标B.实验设置与平台C.结果和比较 6 结论 摘要 异常检测是保证航天器稳定性的关键。在航天器运行过程中,传感器和控制器产生大量周…...
2024/5/4 13:16:06 - --max-old-space-size=8192报错
vue项目运行时,如果经常运行慢,崩溃停止服务,报如下错误 FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory 因为在 Node 中,通过JavaScript使用内存时只能使用部分内存(64位系统&…...
2024/5/4 16:48:41 - 基于深度学习的恶意软件检测
恶意软件是指恶意软件犯罪者用来感染个人计算机或整个组织的网络的软件。 它利用目标系统漏洞,例如可以被劫持的合法软件(例如浏览器或 Web 应用程序插件)中的错误。 恶意软件渗透可能会造成灾难性的后果,包括数据被盗、勒索或网…...
2024/5/4 14:46:05 - JS原型对象prototype
让我简单的为大家介绍一下原型对象prototype吧! 使用原型实现方法共享 1.构造函数通过原型分配的函数是所有对象所 共享的。 2.JavaScript 规定,每一个构造函数都有一个 prototype 属性,指向另一个对象,所以我们也称为原型对象…...
2024/5/4 2:00:16 - C++中只能有一个实例的单例类
C中只能有一个实例的单例类 前面讨论的 President 类很不错,但存在一个缺陷:无法禁止通过实例化多个对象来创建多名总统: President One, Two, Three; 由于复制构造函数是私有的,其中每个对象都是不可复制的,但您的目…...
2024/5/3 22:03:11 - python django 小程序图书借阅源码
开发工具: PyCharm,mysql5.7,微信开发者工具 技术说明: python django html 小程序 功能介绍: 用户端: 登录注册(含授权登录) 首页显示搜索图书,轮播图࿰…...
2024/5/4 9:07:39 - 电子学会C/C++编程等级考试2022年03月(一级)真题解析
C/C++等级考试(1~8级)全部真题・点这里 第1题:双精度浮点数的输入输出 输入一个双精度浮点数,保留8位小数,输出这个浮点数。 时间限制:1000 内存限制:65536输入 只有一行,一个双精度浮点数。输出 一行,保留8位小数的浮点数。样例输入 3.1415926535798932样例输出 3.1…...
2024/5/4 14:46:02 - 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...
解析如下:1、长按电脑电源键直至关机,然后再按一次电源健重启电脑,按F8健进入安全模式2、安全模式下进入Windows系统桌面后,按住“winR”打开运行窗口,输入“services.msc”打开服务设置3、在服务界面,选中…...
2022/11/19 21:17:18 - 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。
%读入6幅图像(每一幅图像的大小是564*564) f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...
2022/11/19 21:17:16 - 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...
win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面,在等待界面中我们需要等待操作结束才能关机,虽然这比较麻烦,但是对系统进行配置和升级…...
2022/11/19 21:17:15 - 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...
有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows,请勿关闭计算机”的提示,要过很久才能进入系统,有的用户甚至几个小时也无法进入,下面就教大家这个问题的解决方法。第一种方法:我们首先在左下角的“开始…...
2022/11/19 21:17:14 - win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...
置信有很多用户都跟小编一样遇到过这样的问题,电脑时发现开机屏幕显现“正在配置Windows Update,请勿关机”(如下图所示),而且还需求等大约5分钟才干进入系统。这是怎样回事呢?一切都是正常操作的,为什么开时机呈现“正…...
2022/11/19 21:17:13 - 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...
Win7系统开机启动时总是出现“配置Windows请勿关机”的提示,没过几秒后电脑自动重启,每次开机都这样无法进入系统,此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一:开机按下F8,在出现的Windows高级启动选…...
2022/11/19 21:17:12 - 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...
有不少windows10系统用户反映说碰到这样一个情况,就是电脑提示正在准备windows请勿关闭计算机,碰到这样的问题该怎么解决呢,现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法:1、2、依次…...
2022/11/19 21:17:11 - 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...
今天和大家分享一下win7系统重装了Win7旗舰版系统后,每次关机的时候桌面上都会显示一个“配置Windows Update的界面,提示请勿关闭计算机”,每次停留好几分钟才能正常关机,导致什么情况引起的呢?出现配置Windows Update…...
2022/11/19 21:17:10 - 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...
只能是等着,别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚,只能是考虑备份数据后重装系统了。解决来方案一:管理员运行cmd:net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...
2022/11/19 21:17:09 - 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?
原标题:电脑提示“配置Windows Update请勿关闭计算机”怎么办?win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢?一般的方…...
2022/11/19 21:17:08 - 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...
关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!关机提示 windows7 正在配…...
2022/11/19 21:17:05 - 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...
钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...
2022/11/19 21:17:05 - 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...
前几天班里有位学生电脑(windows 7系统)出问题了,具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面,长时间没反应,无法进入系统。这个问题原来帮其他同学也解决过,网上搜了不少资料&#x…...
2022/11/19 21:17:04 - 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...
本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法,并在最后教给你1种保护系统安全的好方法,一起来看看!电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中,添加了1个新功能在“磁…...
2022/11/19 21:17:03 - 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...
许多用户在长期不使用电脑的时候,开启电脑发现电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机。。.这要怎么办呢?下面小编就带着大家一起看看吧!如果能够正常进入系统,建议您暂时移…...
2022/11/19 21:17:02 - 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...
配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!配置windows update失败 还原更改 请勿关闭计算机&#x…...
2022/11/19 21:17:01 - 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...
不知道大家有没有遇到过这样的一个问题,就是我们的win7系统在关机的时候,总是喜欢显示“准备配置windows,请勿关机”这样的一个页面,没有什么大碍,但是如果一直等着的话就要两个小时甚至更久都关不了机,非常…...
2022/11/19 21:17:00 - 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...
当电脑出现正在准备配置windows请勿关闭计算机时,一般是您正对windows进行升级,但是这个要是长时间没有反应,我们不能再傻等下去了。可能是电脑出了别的问题了,来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...
2022/11/19 21:16:59 - 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...
我们使用电脑的过程中有时会遇到这种情况,当我们打开电脑之后,发现一直停留在一个界面:“配置Windows Update失败,还原更改请勿关闭计算机”,等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢࿰…...
2022/11/19 21:16:58 - 如何在iPhone上关闭“请勿打扰”
Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...
2022/11/19 21:16:57