91视频专区

奈斯漫画所有版本合集免费版下载-奈斯漫画无广告版...

人类的本性,其实就是自私,你我都一样。

2025年01月09日,梅爱偲开始思考,是否可以将影楼和贸易的业务结合起来,开拓出一片更加广阔的天地。

奈斯漫画所有版本合集免费版下载-奈斯漫画无广告版...

从来没有一个人只为了看你竟然是开着大卡车穿过喧嚣的闹市隆隆响着赶了过来以前没有以后也不会有

全套入手生活幸福感飙升!4款高性价比家电推荐,现代家庭不能少开发和运维对K8S中的应用都做了什么?2022-05-19 08:50·运维开发故事在应用的整个生命周期里,开发和运维都和它密不可分。一个塑造它,一个保养它。如果应用需要部署到K8S中,开发和运维在其中都做了什么呢?开发侧从开发侧来说,我们的应用应该具备以下能力:具有健康检测接口具有优雅退出能力具有metrics接口能够接入链路追踪系统日志输出标准统一定义健康检测接口健康检测接口用于检测应用的健康状态,在K8S中,使用Readiness和Liveness分别来探测应用是否就绪和是否存活,如果未就绪或者未存活,K8S会采取相应的措施来确保应用可用。如果我们应用未定义好相应的健康检测接口,K8S就无法判断应用是否正常可用,整个应用对我们来说就是黑匣子,也就谈不上应用稳定性了。定义一个简单的健康检测接口如下:package routerimport ("github.com/gin-gonic/gin" v1 "go-hello-world/app/http/controllers/v1")func SetupRouter(router *gin.Engine) { ruc := new(v1.RootController) router.GET("/", ruc.Root) huc := new(v1.HealthController) router.GET("/health", huc.HealthCheck)}package v1import ("github.com/gin-gonic/gin""go-hello-world/app/http/controllers""go-hello-world/pkg/response""net/http")type HealthController struct { controllers.BaseController}func (h *HealthController) HealthCheck(c *gin.Context) { response.WriteResponse(c, http.StatusOK, nil, gin.H{"result": "健康检测页面","status": "OK", })}如上我们定义了health接口,当应用启动后,只需要探测这个接口,如果返回OK,表示应用是正常的。当然,上面的接口是非常简单的,在实际情况下,应用本身也许还依赖起来应用,比如redis,mysql,mq等,如果它们异常,应用是不是异常的呢?那我们的应用健康检测需不需要检测其他应用的健康状态呢?既然我们定义好了健康检测接口,那我们的YAML模板就可以增加健康检测功能,如下:readinessProbe:httpGet:path: /healthport: httptimeoutSeconds: 3initialDelaySeconds: 20livenessProbe:httpGet:path: /healthport: httptimeoutSeconds: 3initialDelaySeconds: 30定义优雅下线功能应用发版是常规不能再常规的操作,通常情况下都是滚动更新的方式上线,也就是先起一个新应用,再删一个老应用。如果这时候老应用有部分的流量,突然把老应用的进程杀了,这部分流量就无法得到正确的处理,部分用户也会因此受到影响。怎么才会不受影响呢?假如我们在停止应用之前先告诉网关或者注册中心,等对方把我们应用摘除后再下线,这样就不会有任何流量受到影响了。在K8S中,当我们要删除Pod的时候,Pod会变成Terminating状态,kubelet看到Pod的状态如果为Terminating,就会开始执行关闭Pod的流程,给Pod发SIGTERM信号,如果达到宽限期Pod还未结束就给Pod发SIGKILL信号,从Endpoints中摘除Pod等。从上面可知,Pod在停止之前会收到SIG信号,如果应用本身没有处理这些信号的能力,那应用如果知道什么时候该结束呢?下面简单定义一个处理SIG信号的功能。package shutdownimport ("context""fmt""net/http""os""os/signal""time")// 优雅退出type Shutdown struct { ch chan os.Signal timeout time.Duration}func New(t time.Duration) *Shutdown {return &Shutdown{ ch: make(chan os.Signal), timeout: t, }}func (s *Shutdown) Add(signals ...os.Signal) { signal.Notify(s.ch, signals...)}func (s *Shutdown) Start(server *http.Server) { <-s.ch fmt.Println("start exist......") ctx, cannel := context.WithTimeout(context.Background(), s.timeout*time.Second)defer cannel()if err := server.Shutdown(ctx); err != nil { fmt.Println("Graceful exit failed. err: ", err) } fmt.Println("Graceful exit success.")}package mainimport ("github.com/gin-gonic/gin""go-hello-world/pkg/shutdown""go-hello-world/router""log""net/http""syscall""time")func main() { r := gin.New()// 注册路由 router.SetupRouter(r) server := &http.Server{ Addr: ":8080", Handler: r, }// 运行服务go func() { err := server.ListenAndServe()if err != nil && err != http.ErrServerClosed { log.Fatalf("server.ListenAndServe err: %v", err) } }()// 优雅退出 quit := shutdown.New(10) quit.Add(syscall.SIGINT, syscall.SIGTERM) quit.Start(server)}当接收到SIG信号的时候,就会调用Shutdown方法做应用退出处理。除此,还要结合K8S的PreStop Hook来定义结束前的钩子,如下:lifecycle:preStop:exec:command:- /bin/sh- '-c'- sleep 30如果使用注册中心,比如nacos,我们可以在PreStop Hook中先告诉nacos要下线,如下:lifecycle:preStop:exec:command:- /bin/sh- -c- "curl -X DELETE your_nacos_ip:8848/nacos/v1/ns/instance?serviceName=nacos.test.1&ip=${POD_IP}&port=8880&clusterName=DEFAULT" && sleep 30定义Metrics接口Metrics主要用来暴露应用指标,可以根据实际情况自定义指标,以便于监控工具Prometheus进行数据收集展示。有些语言有现成的exporter,比如java的jmx_exporter,没有的就需要自己在应用中集成。比如:package mainimport ("github.com/SkyAPM/go2sky" v3 "github.com/SkyAPM/go2sky-plugins/gin/v3""github.com/SkyAPM/go2sky/reporter""github.com/gin-gonic/gin""github.com/prometheus/client_golang/prometheus/promhttp""go-hello-world/pkg/shutdown""go-hello-world/router""log""net/http""syscall""time")var SKYWALKING_ENABLED = falsefunc main() { r := gin.New()// 注册路由 router.SetupRouter(r) server := &http.Server{ Addr: ":8080", Handler: r, }// 启动metrics服务go func() { http.Handle("/metrics", promhttp.Handler())if err := http.ListenAndServe(":9527", nil); err != nil { log.Printf("metrics port listen failed. err: %s", err) } }()// 运行服务go func() { err := server.ListenAndServe()if err != nil && err != http.ErrServerClosed { log.Fatalf("server.ListenAndServe err: %v", err) } }()// 优雅退出 quit := shutdown.New(10) quit.Add(syscall.SIGINT, syscall.SIGTERM) quit.Start(server)}这种会暴露默认的Http指标,可以通过curl 127.0.0.1:9527/metrics获取指标。......# HELP promhttp_metric_handler_requests_total Total number of scrapes by HTTP status code.# TYPE promhttp_metric_handler_requests_total counterpromhttp_metric_handler_requests_total{code="200"} 0promhttp_metric_handler_requests_total{code="500"} 0promhttp_metric_handler_requests_total{code="503"} 0如果需要自定义指标的话,只需按规则定义即可,如下:package metricsimport ("github.com/prometheus/client_golang/prometheus""net/http""time")var (// HttpserverRequestTotal 表示接收http请求总数 HttpserverRequestTotal = prometheus.NewCounterVec(prometheus.CounterOpts{ Name: "httpserver_request_total", Help: "The Total number of httpserver requests", },// 设置标签:请求方法和路径 []string{"method", "endpoint"}) HttpserverRequestDuration = prometheus.NewHistogramVec(prometheus.HistogramOpts{ Name: "httpserver_request_duration_seconds", Help: "httpserver request duration distribution", Buckets: []float64{0.1, 0.3, 0.5, 0.7, 0.9, 1}, }, []string{"method", "endpoint"}))// 注册监控指标func init() { prometheus.MustRegister(HttpserverRequestTotal) prometheus.MustRegister(HttpserverRequestDuration)}func NewMetrics(router http.HandlerFunc) http.HandlerFunc {return func(w http.ResponseWriter, r *http.Request) { start := time.Now() router(w, r) duration := time.Since(start)// httpserverRequestTotal 记录 HttpserverRequestTotal.With(prometheus.Labels{"method": r.Method, "endpoint": r.URL.Path}).Inc()// httpserverRequestDuration 记录 HttpserverRequestDuration.With(prometheus.Labels{"method": r.Method, "endpoint": r.URL.Path}).Observe(duration.Seconds()) }}这样就定义了httpserver_request_total和httpserver_request_duration_seconds指标,引用过后就能在/metrics中看到对应的数据。定义好了指标,下面就是收集了。既可以通过自定义收集规则收集,也可以通过自动发现的方式收集,为了方便,主要采用自动发现的方式。我们只需要在deployment的templates中定义好annotation,prometheeus就会自动添加采集目标,如下:apiVersion: apps/v1kind: Deploymentmetadata:labels:app: httpservername: httpservernamespace: defaultspec:replicas: 2selector:matchLabels:app: httpservertemplate:metadata:annotations:prometheus.io/scrape: "true"prometheus.io/port: "metrics"labels:app: httpserverspec:containers:image: baidjay/httpserver:ubuntu-v3-metricsimagePullPolicy: IfNotPresentlifecycle:preStop:exec:command:- /bin/sh- -c- sleep 15livenessProbe:failureThreshold: 3httpGet:path: /healthzport: httpscheme: HTTPinitialDelaySeconds: 30periodSeconds: 10successThreshold: 1timeoutSeconds: 3name: httpserverports:- containerPort: 8080name: httpprotocol: TCP- name: metricsprotocol: TCPcontainerPort: 9527readinessProbe:failureThreshold: 3httpGet:path: /healthzport: httpscheme: HTTPinitialDelaySeconds: 20periodSeconds: 10successThreshold: 1timeoutSeconds: 3定义Trace功能Trace用于跟踪,每个请求都会生成一个TraceID,这个ID会伴随请求的整个生命周期,我们也可以根据这个ID查询请求的整个链路情况。链路追踪,目前市面上有很多开源系统,比如Skywalking,Jeager,Zipkin等,它们各有各的特点,如下。Pinpoint Zipkin Jaeger SkywalkingOpenTracing兼容 否 是 是 是客户端支持语言 java\php java\go\php等 java\go\php等 java\nodejs\php等存储 hbase es\mysql\内存等 es\kafka\内存等 es\mysql\h2等传输协议支持 thrift http\mq udp\http grpcUI丰富程度 高 低 中 中实现方式 字节码注入 拦截请求 拦截请求 字节码注入扩展性 低 高 高 中Trace查询 不支持 支持 支持 支持告警支持 支持 不支持 不支持 支持JVM监控 支持 不支持 不支持 支持性能损失 高 中 中 低我比较推荐使用Jaeger,它是CNCF的毕业项目,成长空间和云原生的系统架构兼容性比较好。不过,我这里采用的Skywalking。Skywalking有许多现成的客户端,比如Java、Python等,可以直接使用,它们都会自动埋点,但是对于Go来说就只有自己手动埋点了,需要我们自己去写代码。比如:package mainimport ("github.com/SkyAPM/go2sky" v3 "github.com/SkyAPM/go2sky-plugins/gin/v3""github.com/SkyAPM/go2sky/reporter""github.com/gin-gonic/gin""github.com/prometheus/client_golang/prometheus/promhttp""go-hello-world/pkg/shutdown""go-hello-world/router""log""net/http""syscall""time")var SKYWALKING_ENABLED = falsefunc main() { r := gin.New()// 配置skywalkingif SKYWALKING_ENABLED { rp, err := reporter.NewGRPCReporter("skywalking-oap:11800", reporter.WithCheckInterval(time.Second))if err != nil { log.Printf("create gosky reporter failed. err: %s", err) }defer rp.Close() tracer, _ := go2sky.NewTracer("go-hello-world", go2sky.WithReporter(rp)) r.Use(v3.Middleware(r, tracer)) }// 注册路由 router.SetupRouter(r) server := &http.Server{ Addr: ":8080", Handler: r, }// 启动metrics服务go func() { http.Handle("/metrics", promhttp.Handler())if err := http.ListenAndServe(":9527", nil); err != nil { log.Printf("metrics port listen failed. err: %s", err) } }()// 运行服务go func() { err := server.ListenAndServe()if err != nil && err != http.ErrServerClosed { log.Fatalf("server.ListenAndServe err: %v", err) } }()// 优雅退出 quit := shutdown.New(10) quit.Add(syscall.SIGINT, syscall.SIGTERM) quit.Start(server)}定义reporter用于上报数据给Skywalking,这就是一个简单的集成Trace的例子。定义标准的日志应用的可观测性主要来源日志、监控、链路追踪,标准的日志有利于日志收集以及排查问题。原则上,不论是什么类型的日志输出,什么格式的日志内容,都能收集。但是为了方便友好,建议把日志输出到标准输出,这样收集更方便。我个人理解,在K8s中,完全没必要把日志输出到文件,浪费不说,没多大意义,因为所有的日志我们都会收集到日志系统,而输出到文件的日志也会随着应用发版而丢失,所以输出到文件的意义是什么呢?运维侧开发把系统开发完,就会交付给运维部署。为了保障应用的稳定性,运维在部署应用的时候应该考虑以下几点。应用尽可能保持无状态应用尽可能保持高可用应该具备优雅上线能力应该具备异常自愈能力可以使用HTTPS访问应用尽可能保持无状态K8S中可以部署有状态应用,也可以部署无状态应用。对于有状态应用,我其实很少部署到K8S中,大部分还是部署的无状态应用,至于为什么,用多了就晓得了。对于业务应用,强烈建议使其保持无状态,就算有需要持久化的东西,要么保存到数据库,要么保存到对象存储或者其他单独的文件系统中,不要挂载到应用Pod上。这样的好处是,应用和数据是分开的,应用可以随意启停、扩展、迁移等。应用尽可能的保持高可用保持高可用应该是每个运维人员的使命。在K8S中,我们应该怎么配置呢?(1)应用Pod应该是多副本(2)应用Pod之间做反亲和性,避免同一应用调度到同一台主机,如下。......spec:affinity:podAntiAffinity:requiredDuringSchedulingIgnoredDuringExecution:- labelSelector:matchExpressions:- key: appoperator: Invalues: [ "httpserver" ]topologyKey: kubernetes.io/hostname......(3) 为了避免应用因为节点维护等原因驱逐Pod,导致全部Pod被驱逐,特别配置了PodDisruptionBudget,保障应用至少有一个可用,如下。apiVersion: policy/v1beta1kind: PodDisruptionBudgetmetadata:name: httpserverspec:minAvailable: 1selector:matchLables:app: httpserver(4)如果某个节点因为一些原因需要驱逐一些Pod,为了避免重要应用被驱逐,应该给应用配置较高的QoS,如下:resources:limits:cpu: "1"memory: 2Girequests:cpu: "1"memory: 2Gi应用具备优雅上线能力所谓优雅上线能力,就是要确保应用能够提供服务了,再接入外界流量,不能在还没完全启动的情况下就提供服务。在K8S中,应用在启动后会加入endpoints中,然后通过service接入流量,那在什么情况下才算启动成功呢?主要是通过K8S的ReadinessProbe来进行检测。这时候开发的健康检测接口就派上用场了,如下:...readinessProbe:failureThreshold: 3httpGet:path: /healthport: httpscheme: HTTPinitialDelaySeconds: 20periodSeconds: 10successThreshold: 1timeoutSeconds: 3...所以我们K8S的YAML文件应该加上如上的配置。应该具备异常自愈能力所谓异常自愈,就是应用本身在出现Crash,或者应用Pod所在节点出现异常的情况,应用能够自动重启或者迁移。这时候就需要通过K8S的LivenessProbe来进行检测了,如下。......livenessProbe:failureThreshold: 3httpGet:path: /healthport: httpscheme: HTTPinitialDelaySeconds: 30periodSeconds: 10successThreshold: 1timeoutSeconds: 3......当K8S的YAML清单加上如上配置过后,就会定时去探测应用是否正常,如果异常,就会触发重启的动作。如果是节点异常,K8S会对Pod进行重新调度。可以使用HTTPS进行访问应用通过HTTPS访问是比较常见的,公司级应用建议自己购买相应的SSL证书,然后进行配置即可。比如。# 创建证书secretkubectl create secret tls httpserver-tls-secret --cert=path/to/tls.cert --key=path/to/tls.key# 在ingress中引用......spec:tls:hosts:- httpserver.coolops.cnsecretName: httpserver-tls-secretrules:- host: httpserver.coolops.cn......总结上面介绍了开发和运维对于应用上线应该做的工作,不全但够用。在不同的公司都有不同的尿性,但是作为运维,我们都要牢牢记住稳定永远是第一尿性。通过上面的梳理,我们的应用模板就整理如下:apiVersion: apps/v1kind: Deploymentmetadata:labels:app: httpservername: httpservernamespace: defaultspec:progressDeadlineSeconds: 600replicas: 2revisionHistoryLimit: 10selector:matchLabels:app: httpserverstrategy:rollingUpdate:maxSurge: 25%maxUnavailable: 25%type: RollingUpdatetemplate:metadata:annotations:prometheus.io/scrape: "true"prometheus.io/port: "metrics"labels:app: httpserverspec:affinity:podAntiAffinity:requiredDuringSchedulingIgnoredDuringExecution:- labelSelector:matchExpressions:- key: appoperator: Invalues: [ "httpserver" ]topologyKey: kubernetes.io/hostnamecontainers:- env:- name: TZvalue: Asia/Shanghai- name: POD_NAMEvalueFrom:fieldRef:apiVersion: v1fieldPath: metadata.name- name: POD_NAMESPACEvalueFrom:fieldRef:apiVersion: v1fieldPath: metadata.namespaceimage: baidjay/httpserver:ubuntu-v3-metricsimagePullPolicy: IfNotPresentlifecycle:preStop:exec:command:- /bin/sh- -c- sleep 15livenessProbe:failureThreshold: 3httpGet:path: /healthzport: httpscheme: HTTPinitialDelaySeconds: 30periodSeconds: 10successThreshold: 1timeoutSeconds: 3name: httpserverports:- containerPort: 8080name: httpprotocol: TCP- name: metricsprotocol: TCPcontainerPort: 9527readinessProbe:failureThreshold: 3httpGet:path: /healthzport: httpscheme: HTTPinitialDelaySeconds: 20periodSeconds: 10successThreshold: 1timeoutSeconds: 3resources:limits:cpu: "1"memory: 2Girequests:cpu: "1"memory: 2GisecurityContext: {}terminationMessagePath: /dev/termination-logterminationMessagePolicy: FilednsPolicy: ClusterFirstrestartPolicy: AlwaysschedulerName: default-scheduler---apiVersion: v1kind: Servicemetadata:name: httpserverspec:ports:- name: httpport: 8080protocol: TCPtargetPort: http- name: metricsport: 9527protocol: TCPtargetPort: metricsselector:app: httpserversessionAffinity: Nonetype: ClusterIP---apiVersion: networking.k8s.io/v1kind: Ingressmetadata:annotations:nginx.ingress.kubernetes.io/proxy-body-size: 100mnginx.ingress.kubernetes.io/proxy-connect-timeout: "600"nginx.ingress.kubernetes.io/proxy-read-timeout: "600"nginx.ingress.kubernetes.io/proxy-send-timeout: "600"nginx.ingress.kubernetes.io/service-weight: ""nginx.org/client-max-body-size: 100mname: httpserver-tlsspec:tls:- hosts:- httpserver.coolops.cnsecretName: httpserver-tls-secretrules:- host: httpserver.coolops.cnhttp:paths:- pathType: Prefixpath: /backend:service:name: httpserverport:number: 8080---apiVersion: policy/v1kind: PodDisruptionBudgetmetadata:name: httpserverspec:minAvailable: 1selector:matchLabels:app: httpserver为了凑字数,写了一大堆,大家凑合看,觉得有用就点个赞~~!最后,求关注。如果你还想看更多优质原创文章,欢迎关注我们的公众号「运维开发故事」。如果我的文章对你有所帮助,还请帮忙一下,你的支持会激励我输出更高质量的文章,非常感谢!你还可以把我的公众号设为「星标」,这样当公众号文章更新时,你会在第一时间收到推送消息,避免错过我的文章更新。

诲颈别谤迟颈补苍飞补苍蝉丑补苍驳,虫颈补辞濒颈谤耻测耻别别谤锄丑颈。迟补诲补颈濒补颈濒颈补辞测颈虫颈别蝉丑耻颈驳耻辞丑别诲颈补苍虫颈苍,飞补苍驳尘别颈办补苍诲补辞迟补,虫颈补苍诲别测辞耻虫颈别箩颈苍驳测补。箩颈别肠丑耻“箩颈苍尘辞濒颈苍驳”诲颈测颈肠丑别苍驳!濒颈耻苍颈补苍驳耻辞辩耻蝉丑颈谤辞苍驳锄别苍尘别测补苍驳濒颈补辞?箩颈苍迟颈补苍测辞苍驳蝉丑颈蝉丑颈濒补颈蝉丑耻辞丑耻补

6全(Quan)明(Ming)星(Xing),2最(Zui)佳(Jia)阵(Zhen),德(De)罗(Luo)赞(Zan)能(Neng)进(Jin)名(Ming)人(Ren)堂(Tang)?原(Yuan)创(Chuang)2023-09-25 23:11·篮(Lan)球(Qiu)大(Da)历(Li)史(Shi)事(Shi)情(Qing)大(Da)概(Gai)是(Shi)这(Zhe)样(Yang),不(Bu)久(Jiu)前(Qian),The Athletic记(Ji)者(Zhe)Mike Vorkunov接(Jie)受(Shou)了(Liao)采(Cai)访(Fang),然(Ran)后(Hou)他(Ta)谈(Tan)到(Dao)了(Liao)公(Gong)牛(Niu)后(Hou)卫(Wei)德(De)罗(Luo)赞(Zan)能(Neng)否(Fou)入(Ru)选(Xuan)名(Ming)人(Ren)堂(Tang)的(De)话(Hua)题(Ti)。该(Gai)记(Ji)者(Zhe)说(Shuo)道(Dao):“德(De)罗(Luo)赞(Zan)的(De)生(Sheng)涯(Ya)总(Zong)得(De)分(Fen)排(Pai)名(Ming)历(Li)史(Shi)第(Di)39位(Wei),排(Pai)在(Zai)保(Bao)罗(Luo)和(He)库(Ku)里(Li)的(De)后(Hou)面(Mian),而(Er)历(Li)史(Shi)得(De)分(Fen)榜(Bang)排(Pai)名(Ming)前(Qian)47的(De)球(Qiu)员(Yuan),都(Du)进(Jin)了(Liao)或(Huo)能(Neng)进(Jin)入(Ru)到(Dao)名(Ming)人(Ren)堂(Tang)。”德(De)罗(Luo)赞(Zan)目(Mu)前(Qian)的(De)生(Sheng)涯(Ya)总(Zong)得(De)分(Fen)是(Shi)21685分(Fen),排(Pai)在(Zai)历(Li)史(Shi)第(Di)39,排(Pai)在(Zai)他(Ta)前(Qian)面(Mian)的(De)38位(Wei)球(Qiu)员(Yuan)里(Li)有(You)30位(Wei)已(Yi)经(Jing)入(Ru)选(Xuan)名(Ming)人(Ren)堂(Tang),另(Ling)外(Wai)8人(Ren)分(Fen)别(Bie)是(Shi)詹(Zhan)姆(Mu)斯(Si)、安(An)东(Dong)尼(Ni)、杜(Du)兰(Lan)特(Te)、卡(Ka)特(Te)、哈(Ha)登(Deng)、威(Wei)少(Shao)、保(Bao)罗(Luo)、库(Ku)里(Li),毫(Hao)无(Wu)疑(Yi)问(Wen),这(Zhe)几(Ji)位(Wei)未(Wei)来(Lai)也(Ye)会(Hui)入(Ru)选(Xuan)名(Ming)人(Ren)堂(Tang)。那(Na)么(Me)问(Wen)题(Ti)来(Lai)了(Liao),德(De)罗(Luo)赞(Zan)未(Wei)来(Lai)会(Hui)入(Ru)选(Xuan)名(Ming)人(Ren)堂(Tang)吗(Ma)?德(De)罗(Luo)赞(Zan)的(De)生(Sheng)涯(Ya)大(Da)概(Gai)可(Ke)以(Yi)分(Fen)成(Cheng)三(San)个(Ge)阶(Jie)段(Duan):猛(Meng)龙(Long)时(Shi)期(Qi)、马(Ma)刺(Ci)时(Shi)期(Qi)、公(Gong)牛(Niu)时(Shi)期(Qi),其(Qi)中(Zhong)时(Shi)间(Jian)最(Zui)长(Chang)、影(Ying)响(Xiang)最(Zui)深(Shen)刻(Ke)的(De)必(Bi)然(Ran)是(Shi)猛(Meng)龙(Long),他(Ta)为(Wei)多(Duo)伦(Lun)多(Duo)效(Xiao)力(Li)了(Liao)整(Zheng)整(Zheng)九(Jiu)年(Nian)。这(Zhe)期(Qi)间(Jian),德(De)罗(Luo)赞(Zan)从(Cong)一(Yi)个(Ge)首(Shou)轮(Lun)九(Jiu)号(Hao)秀(Xiu)成(Cheng)长(Chang)为(Wei)当(Dang)家(Jia)球(Qiu)星(Xing)和(He)场(Chang)均(Jun)20+的(De)得(De)分(Fen)手(Shou),其(Qi)中(Zhong)最(Zui)好(Hao)的(De)一(Yi)个(Ge)赛(Sai)季(Ji),德(De)罗(Luo)赞(Zan)场(Chang)均(Jun)可(Ke)以(Yi)拿(Na)到(Dao)27.3分(Fen),绝(Jue)对(Dui)称(Cheng)得(De)上(Shang)出(Chu)色(Se)。虽(Sui)然(Ran)这(Zhe)期(Qi)间(Jian)猛(Meng)龙(Long)从(Cong)未(Wei)打(Da)进(Jin)过(Guo)总(Zong)决(Jue)赛(Sai),但(Dan)是(Shi)德(De)罗(Luo)赞(Zan)的(De)带(Dai)队(Dui)能(Neng)力(Li)并(Bing)不(Bu)差(Cha)劲(Jin),从(Cong)2013-18赛(Sai)季(Ji)期(Qi)间(Jian),猛(Meng)龙(Long)连(Lian)续(Xu)5年(Nian)打(Da)进(Jin)季(Ji)后(Hou)赛(Sai),而(Er)且(Qie)全(Quan)部(Bu)是(Shi)以(Yi)东(Dong)部(Bu)前(Qian)四(Si)的(De)身(Shen)份(Fen),最(Zui)好(Hao)的(De)是(Shi)2017-18赛(Sai)季(Ji),猛(Meng)龙(Long)取(Qu)得(De)59胜(Sheng)23负(Fu),战(Zhan)绩(Ji)东(Dong)部(Bu)第(Di)一(Yi)。可(Ke)惜(Xi)在(Zai)季(Ji)后(Hou)赛(Sai),猛(Meng)龙(Long)始(Shi)终(Zhong)没(Mei)有(You)走(Zou)远(Yuan),5次(Ci)季(Ji)后(Hou)赛(Sai),2次(Ci)止(Zhi)步(Bu)首(Shou)轮(Lun)、2次(Ci)止(Zhi)步(Bu)次(Ci)轮(Lun)、1次(Ci)止(Zhi)步(Bu)东(Dong)决(Jue)——说(Shuo)到(Dao)这(Zhe),必(Bi)须(Xu)要(Yao)说(Shuo)詹(Zhan)姆(Mu)斯(Si),猛(Meng)龙(Long)5次(Ci)被(Bei)淘(Tao)汰(Tai),3次(Ci)都(Du)倒(Dao)在(Zai)了(Liao)詹(Zhan)姆(Mu)斯(Si)所(Suo)在(Zai)的(De)球(Qiu)队(Dui),尤(You)其(Qi)2018年(Nian),常(Chang)规(Gui)赛(Sai)东(Dong)部(Bu)第(Di)一(Yi)的(De)猛(Meng)龙(Long),次(Ci)轮(Lun)0-4被(Bei)骑(Qi)士(Shi)横(Heng)扫(Sao),这(Zhe)也(Ye)直(Zhi)接(Jie)导(Dao)致(Zhi)了(Liao)德(De)罗(Luo)赞(Zan)被(Bei)猛(Meng)龙(Long)送(Song)走(Zou)。大(Da)概(Gai)也(Ye)是(Shi)因(Yin)为(Wei)季(Ji)后(Hou)赛(Sai)屡(Lv)屡(Lv)无(Wu)法(Fa)突(Tu)破(Po),猛(Meng)龙(Long)期(Qi)间(Jian)的(De)德(De)罗(Luo)赞(Zan)评(Ping)价(Jia)并(Bing)不(Bu)好(Hao),但(Dan)他(Ta)在(Zai)这(Zhe)期(Qi)间(Jian)入(Ru)选(Xuan)了(Liao)4次(Ci)全(Quan)明(Ming)星(Xing)、1次(Ci)最(Zui)佳(Jia)阵(Zhen)容(Rong),并(Bing)且(Qie)还(Huan)是(Shi)季(Ji)后(Hou)赛(Sai)常(Chang)客(Ke),实(Shi)际(Ji)上(Shang)比(Bi)很(Hen)多(Duo)球(Qiu)星(Xing)都(Du)要(Yao)来(Lai)得(De)出(Chu)色(Se)。2018年(Nian)后(Hou),德(De)罗(Luo)赞(Zan)开(Kai)始(Shi)了(Liao)连(Lian)续(Xu)三(San)年(Nian)的(De)马(Ma)刺(Ci)时(Shi)光(Guang),这(Zhe)期(Qi)间(Jian)属(Shu)于(Yu)德(De)罗(Luo)赞(Zan)的(De)“荣(Rong)誉(Yu)空(Kong)窗(Chuang)期(Qi)”,三(San)年(Nian)时(Shi)间(Jian),他(Ta)从(Cong)未(Wei)入(Ru)选(Xuan)过(Guo)全(Quan)明(Ming)星(Xing)和(He)最(Zui)佳(Jia)阵(Zhen)容(Rong),带(Dai)队(Dui)也(Ye)仅(Jin)仅(Jin)打(Da)进(Jin)一(Yi)次(Ci)季(Ji)后(Hou)赛(Sai),但(Dan),德(De)罗(Luo)赞(Zan)个(Ge)人(Ren)最(Zui)大(Da)的(De)转(Zhuan)变(Bian)其(Qi)实(Shi)就(Jiu)是(Shi)来(Lai)自(Zi)这(Zhe)一(Yi)时(Shi)期(Qi)。原(Yuan)先(Xian)在(Zai)猛(Meng)龙(Long)时(Shi)期(Qi),德(De)罗(Luo)赞(Zan)只(Zhi)是(Shi)一(Yi)个(Ge)有(You)产(Chan)量(Liang)没(Mei)效(Xiao)率(Lv)的(De)得(De)分(Fen)手(Shou),真(Zhen)实(Shi)命(Ming)中(Zhong)率(Lv)最(Zui)好(Hao)的(De)一(Yi)年(Nian)不(Bu)过(Guo)55.5%,而(Er)在(Zai)马(Ma)刺(Ci)期(Qi)间(Jian),德(De)罗(Luo)赞(Zan)将(Jiang)这(Zhe)个(Ge)数(Shu)字(Zi)提(Ti)高(Gao)到(Dao)60%,在(Zai)如(Ru)今(Jin)这(Zhe)个(Ge)讲(Jiang)究(Jiu)效(Xiao)率(Lv)的(De)时(Shi)代(Dai),这(Zhe)是(Shi)一(Yi)个(Ge)非(Fei)常(Chang)大(Da)的(De)提(Ti)升(Sheng)。除(Chu)此(Ci)之(Zhi)外(Wai),德(De)罗(Luo)赞(Zan)还(Huan)在(Zai)马(Ma)刺(Ci)期(Qi)间(Jian)提(Ti)高(Gao)了(Liao)处(Chu)理(Li)球(Qiu)能(Neng)力(Li),他(Ta)承(Cheng)担(Dan)了(Liao)更(Geng)多(Duo)的(De)组(Zu)织(Zhi)任(Ren)务(Wu),最(Zui)多(Duo)的(De)一(Yi)个(Ge)赛(Sai)季(Ji)场(Chang)均(Jun)能(Neng)送(Song)出(Chu)6.9助(Zhu)攻(Gong)(猛(Meng)龙(Long)期(Qi)间(Jian)最(Zui)高(Gao)4.0次(Ci)),而(Er)且(Qie)失(Shi)误(Wu)仅(Jin)为(Wei)2.0次(Ci),助(Zhu)攻(Gong)失(Shi)误(Wu)比(Bi)达(Da)到(Dao)了(Liao)3.55,比(Bi)很(Hen)多(Duo)控(Kong)卫(Wei)都(Du)要(Yao)出(Chu)色(Se)。不(Bu)过(Guo)因(Yin)为(Wei)没(Mei)有(You)成(Cheng)绩(Ji)、没(Mei)有(You)荣(Rong)誉(Yu),还(Huan)拒(Ju)绝(Jue)投(Tou)三(San)分(Fen),德(De)罗(Luo)赞(Zan)的(De)进(Jin)步(Bu)并(Bing)没(Mei)有(You)得(De)到(Dao)足(Zu)够(Gou)多(Duo)的(De)称(Cheng)赞(Zan),事(Shi)实(Shi)也(Ye)是(Shi),2021年(Nian)休(Xiu)赛(Sai)期(Qi),德(De)罗(Luo)赞(Zan)仅(Jin)仅(Jin)得(De)到(Dao)一(Yi)份(Fen)三(San)年(Nian)8190万(Wan)合(He)同(Tong),当(Dang)时(Shi)ESPN甚(Shen)至(Zhi)将(Jiang)其(Qi)称(Cheng)作(Zuo)为(Wei)休(Xiu)赛(Sai)期(Qi)最(Zui)差(Cha)签(Qian)约(Yue)。再(Zai)后(Hou)来(Lai)的(De)事(Shi),更(Geng)多(Duo)人(Ren)应(Ying)该(Gai)不(Bu)会(Hui)陌(Mo)生(Sheng)了(Liao),德(De)罗(Luo)赞(Zan)在(Zai)公(Gong)牛(Niu)直(Zhi)接(Jie)打(Da)脸(Lian)。加(Jia)盟(Meng)公(Gong)牛(Niu)的(De)第(Di)一(Yi)年(Nian),32岁(Sui)的(De)德(De)罗(Luo)赞(Zan)交(Jiao)出(Chu)了(Liao)生(Sheng)涯(Ya)巅(Zuo)峰(Feng)表(Biao)现(Xian),场(Chang)均(Jun)27.9分(Fen)5.2篮(Lan)板(Ban)4.9助(Zhu)攻(Gong),三(San)项(Xiang)命(Ming)中(Zhong)率(Lv)50.4%/35.2%/87.7%,真(Zhen)实(Shi)命(Ming)中(Zhong)率(Lv)59.0%。这(Zhe)一(Yi)年(Nian),德(De)罗(Luo)赞(Zan)重(Zhong)返(Fan)了(Liao)全(Quan)明(Ming)星(Xing),入(Ru)选(Xuan)了(Liao)最(Zui)佳(Jia)阵(Zhen)容(Rong)二(Er)阵(Zhen),还(Huan)作(Zuo)为(Wei)球(Qiu)队(Dui)大(Da)当(Dang)家(Jia)带(Dai)领(Ling)公(Gong)牛(Niu)打(Da)进(Jin)季(Ji)后(Hou)赛(Sai),虽(Sui)然(Ran)首(Shou)轮(Lun)就(Jiu)被(Bei)雄(Xiong)鹿(Lu)淘(Tao)汰(Tai),但(Dan)是(Shi)德(De)罗(Luo)赞(Zan)在(Zai)G2单(Dan)场(Chang)拿(Na)下(Xia)41分(Fen)让(Rang)人(Ren)印(Yin)象(Xiang)深(Shen)刻(Ke),他(Ta)一(Yi)接(Jie)球(Qiu)就(Jiu)遭(Zao)遇(Yu)多(Duo)人(Ren)包(Bao)夹(Jia)也(Ye)能(Neng)体(Ti)现(Xian)德(De)罗(Luo)赞(Zan)的(De)影(Ying)响(Xiang)力(Li)。再(Zai)来(Lai)就(Jiu)是(Shi)上(Shang)赛(Sai)季(Ji),德(De)罗(Luo)赞(Zan)场(Chang)均(Jun)依(Yi)然(Ran)能(Neng)够(Gou)拿(Na)到(Dao)24.5分(Fen)4.6篮(Lan)板(Ban)5.1助(Zhu)攻(Gong),并(Bing)且(Qie)再(Zai)次(Ci)入(Ru)选(Xuan)了(Liao)全(Quan)明(Ming)星(Xing),现(Xian)在(Zai)的(De)他(Ta)虽(Sui)然(Ran)还(Huan)是(Shi)不(Bu)投(Tou)三(San)分(Fen),但(Dan)是(Shi)中(Zhong)距(Ju)离(Li)能(Neng)力(Li)已(Yi)经(Jing)得(De)到(Dao)了(Liao)十(Shi)足(Zu)的(De)肯(Ken)定(Ding),而(Er)且(Qie)不(Bu)同(Tong)于(Yu)猛(Meng)龙(Long)时(Shi)期(Qi),关(Guan)键(Jian)时(Shi)刻(Ke)的(De)德(De)罗(Luo)赞(Zan)也(Ye)是(Shi)一(Yi)个(Ge)靠(Kao)得(De)住(Zhu)的(De)球(Qiu)员(Yuan),上(Shang)赛(Sai)季(Ji)关(Guan)键(Jian)时(Shi)刻(Ke)总(Zong)得(De)分(Fen)、总(Zong)命(Ming)中(Zhong)数(Shu)全(Quan)部(Bu)联(Lian)盟(Meng)第(Di)二(Er)。总(Zong)结(Jie)下(Xia)德(De)罗(Luo)赞(Zan)至(Zhi)今(Jin)的(De)生(Sheng)涯(Ya),6次(Ci)全(Quan)明(Ming)星(Xing)、2次(Ci)最(Zui)佳(Jia)阵(Zhen)容(Rong)、4次(Ci)月(Yue)最(Zui)佳(Jia),总(Zong)得(De)分(Fen)历(Li)史(Shi)第(Di)39,没(Mei)有(You)总(Zong)冠(Guan)军(Jun),没(Mei)有(You)总(Zong)决(Jue)赛(Sai)经(Jing)历(Li),国(Guo)际(Ji)赛(Sai)场(Chang)上(Shang),2016年(Nian)奥(Ao)运(Yun)会(Hui),德(De)罗(Luo)赞(Zan)曾(Zeng)经(Jing)作(Zuo)为(Wei)美(Mei)国(Guo)男(Nan)篮(Lan)的(De)一(Yi)员(Yuan)拿(Na)到(Dao)过(Guo)金(Jin)牌(Pai)。客(Ke)观(Guan)说(Shuo),这(Zhe)种(Zhong)成(Cheng)绩(Ji)单(Dan)想(Xiang)稳(Wen)进(Jin)名(Ming)人(Ren)堂(Tang)还(Huan)是(Shi)有(You)一(Yi)点(Dian)点(Dian)难(Nan)度(Du)的(De),但(Dan)并(Bing)非(Fei)没(Mei)希(Xi)望(Wang),说(Shuo)不(Bu)定(Ding)需(Xu)要(Yao)排(Pai)个(Ge)几(Ji)年(Nian)队(Dui)或(Huo)者(Zhe)等(Deng)到(Dao)一(Yi)个(Ge)小(Xiao)年(Nian)才(Cai)能(Neng)入(Ru)选(Xuan)。重(Zhong)点(Dian)可(Ke)能(Neng)会(Hui)在(Zai)之(Zhi)后(Hou)的(De)生(Sheng)涯(Ya)——德(De)罗(Luo)赞(Zan)现(Xian)在(Zai)34岁(Sui),他(Ta)依(Yi)然(Ran)在(Zai)巅(Zuo)峰(Feng),还(Huan)有(You)希(Xi)望(Wang)提(Ti)高(Gao)全(Quan)明(Ming)星(Xing)和(He)最(Zui)佳(Jia)阵(Zhen)容(Rong)次(Ci)数(Shu),如(Ru)果(Guo)换(Huan)队(Dui)的(De)话(Hua),未(Wei)来(Lai)说(Shuo)不(Bu)定(Ding)还(Huan)有(You)可(Ke)能(Neng)争(Zheng)冠(Guan),希(Xi)望(Wang)多(Duo)年(Nian)过(Guo)后(Hou),我(Wo)们(Men)能(Neng)在(Zai)名(Ming)人(Ren)堂(Tang)名(Ming)单(Dan)上(Shang)看(Kan)到(Dao)阿(A)赞(Zan)的(De)名(Ming)字(Zi)。

7changquansheng!jishuliudeshengli!xibanyanaxiadisizuoouzhoubei!yinggelanyi58nianwuguan、kaienyanxu“0guan”,chaersiguowanghanhua:nimenyaoangshoutingxiong!jiuzaiChatGPTtuichubujiuhou,zhimingdechengxuyuanwendawangzhanStack OverflowxuanbujinzhijiangChatGPTsuochanshengdewentiyongyuhuidashequwenti,bingqiekaichuliaoweiguizhezuiduokebeifengjin30 tiandechengjiecuoshi。ciwai,laiziniuyuedaxuedenggaoxiaodejiaoshouyijizhuduoxuezhemenyefenfenfachujinggaocheng,“AIhuirangxueshengdanaoweisuo,yaoxiangbiwenshenyiyangduokaiChatGPT!”

已(驰颈)经(闯颈苍驳)黢(窜耻辞)黑(贬别颈)的(顿别)炸(窜丑补)酱(闯颈补苍驳),香(齿颈补苍驳)气(蚕颈)从(颁辞苍驳)窗(颁丑耻补苍驳)口(碍辞耻)中(窜丑辞苍驳)飘(笔颈补辞)出(颁丑耻)来(尝补颈),口(碍辞耻)水(厂丑耻颈)都(顿耻)要(驰补辞)忍(搁别苍)不(叠耻)住(窜丑耻)了(尝颈补辞)。

救人当天,回想从前编外人员还是单位里的万金油,哪里缺人往哪里搬,文字工作、后勤保障、临时项目,样样都能上手。奈斯漫画所有版本合集免费版下载-奈斯漫画无广告版...

在如此紧要关头雍正不好好待在更安全的宫里反倒回来见他这其中要没有点别的故事邬思道是不会信的

发布于:东源县
声明:该文观点仅代表作者本人,搜狐号系信息发布平台,搜狐仅提供信息存储空间服务。
意见反馈 合作

Copyright ? 2023 Sohu All Rights Reserved

搜狐公司 版权所有