k8s考试项目搭建

一、新建nfs服务器(192.168.1.44)
1.基础配置(IP地址防火墙等)
2.配置时间同步
[root@localhost ~]# yum -y install ntpdate.x86_64 
[root@localhost ~]# ntpdate time2.aliyun.com
27 Sep 10:28:08 ntpdate[1634]: adjust time server 203.107.6.88 offset 0.014965 sec
[root@localhost ~]# crontab -e                   //设置计划任务
* 3 * * * /sbin/ntpdate time2.aliyun.com

3.安装nfs服务应用
[root@localhost ~]# yum -y install rpcbind nfs-utils

4.配置文件
[root@localhost ~]# echo "/root/pes    *(rw,sync)" >> /etc/exports
[root@localhost ~]# cat /etc/exports
/root/pes   *(rw.sync)

5.准备pes资源目录(部署考试系统项目)
6.启动服务
[root@localhost ~]# systemctl start rpcbind.service nfs-server.service                      //启动
[root@localhost ~]# systemctl enable rpcbind.service nfs-server.service                   //设置开机启动
Created symlink from /etc/systemd/system/multi-user.target.wants/nfs-server.service to /usr/lib/systemd/system/nfs-server.service.

7.验证
[root@localhost ~]# showmount -e localhost                  //这样代表成功
Export list for localhost:
/root/pes *

二、部署前端
1.创建web-deployment.yaml资源清单文件
[root@k8s-master ~]# mkdir pes-k8s
[root@k8s-master ~]# cd pes-k8s
[root@k8s-master pes-k8s]# vim web-deployment.yaml 
apiVersion: apps/v1
kind: Deployment
metadata:
  name:  web-deployment
  namespace: default
  labels:
    app:  web-deployment
spec:
  selector:
    matchLabels:
      app: web-deployment
  replicas: 3
  strategy:
    rollingUpdate:
      maxSurge: 25%
      maxUnavailable: 25%
    type: RollingUpdate
  template:
    metadata:
      labels:
        app:  web-deployment
    spec:
      containers:
      - name:  nginxlatest
        image:  docker.io/library/nginx:latest
        imagePullPolicy: Never
        resources:
          requests:
            cpu: 100m
            memory: 100Mi
          limits:
            cpu: 100m
            memory: 100Mi
        ports:
        - containerPort:  80
          name:  nginxport
        volumeMounts:
        - name: localtime
          mountPath: /usr/share/nginx/html
      volumes:
        - name: localtime
          nfs:
            server: 192.168.1.44
            path: /root/pes/web/dist
      restartPolicy: Always

[root@k8s-master pes-k8s]# kubectl create -f web-deployment.yaml 
deployment.apps/web-deployment created
[root@k8s-master pes-k8s]# kubectl get po -owide
NAME                              READY   STATUS    RESTARTS       AGE   IP               NODE        NOMINATED NODE   READINESS GATES
cluster-test-66bb44bd88-nk46t     1/1     Running   76 (21m ago)   14d   172.16.169.179   k8s-node2   <none>           <none>
web-deployment-7bff5ff45c-45rz6   1/1     Running   0              13m   172.16.169.186   k8s-node2   <none>           <none>
web-deployment-7bff5ff45c-nlq2s   1/1     Running   0              13m   172.16.36.76     k8s-node1   <none>           <none>
web-deployment-7bff5ff45c-whkd2   1/1     Running   0              13m   172.16.169.185   k8s-node2   <none>           <none>

2.访问测试
[root@k8s-master pes-k8s]# curl 172.16.169.186
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8">
    <link rel="icon" href="/favicon.ico">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Vite App</title>
    <script type="module" crossorigin src="/assets/index-C4kAShR5.js"></script>
    <link rel="stylesheet" crossorigin href="/assets/index-CSz7ARPP.css">
  </head>
  <body>
    <div id="app"></div>
  </body>
</html>

三、部署Java后台
1.自定义Java容器
(1)把nfs主机的下的pes/java目录传到k8s-master主机
[root@localhost ~]# scp -r pes/java root@192.168.1.110:/root/

(2)查看java目录是否传过来
[root@k8s-master pes-k8s]# ls ~
anaconda-ks.cfg  java                 mysql.tar         nginx.1.25.0.tar  tdr
busybox.tar      k8s-ha-install       new.yaml          nginx.tar         token
centos.tar       kubeadm-config.yaml  nginx.1.20.0.tar  pes-k8s           wordpress.tar
haproxy.tar      mariadb.tar          nginx.1.21.0.tar  pods
[root@k8s-master pes-k8s]# cd ~/java/
[root@k8s-master java]# ls
Dockerfile  jdk  src  start.sh

(3)创建Java镜像
[root@k8s-master java]# systemctl start docker.service 
[root@k8s-master java]# docker build -t java:v0 ./                          //使用Dockerfile创建镜像


[root@k8s-master java]# docker images                  //查看
REPOSITORY   TAG       IMAGE ID       CREATED         SIZE
java         v0        5c0a07c9bcfb   2 minutes ago   592MB
wordpress    latest    e6e656a22e5a   2 weeks ago     699MB
haproxy      latest    a782c02b8259   3 weeks ago     103MB
mariadb      latest    09f5b532c2ef   3 weeks ago     414MB
nginx        alpine    c7b4f26a7d93   6 weeks ago     43.2MB
nginx        latest    39286ab8a5e1   6 weeks ago     188MB
mysql        5.7.44    5107333e08a8   9 months ago    501MB
nginx        1.25.0    7d3c40f240e1   15 months ago   143MB
busybox      latest    6fd955f66c23   16 months ago   4.26MB
centos       latest    5d0da3dc9764   3 years ago     231MB
nginx        1.21.0    4f380adfc10f   3 years ago     133MB
nginx        1.20.0    7ab27dbbfbdf   3 years ago     133MB

(4)打包上传到k8s-node节点上
[root@k8s-master java]# docker save -o java.tar java:v0                   //打包
[root@k8s-master java]# scp java.tar root@192.168.1.22:~                   //上传node1节点
java.tar                                                             100%  572MB  25.2MB/s   00:22    
[root@k8s-master java]# scp java.tar root@192.168.1.33:~                   //上传node2节点
java.tar                                                             100%  572MB  22.9MB/s   00:24   

(5)去node1和node2导入镜像
[root@k8s-node1 ~]# ctr -n k8s.io images import java.tar --platform linux/amd64
unpacking docker.io/library/java:v0 (sha256:a3fe9b7e8ff3f56cf95e4d35c0206237c3aeea3ebf10817d99523509c0a59fbc)...done
[root@k8s-node2 ~]# ctr -n k8s.io images import java.tar --platform linux/amd64
unpacking docker.io/library/java:v0 (sha256:a3fe9b7e8ff3f56cf95e4d35c0206237c3aeea3ebf10817d99523509c0a59fbc)...done
[root@k8s-node1 ~]# crictl images|grep java                     //查看
docker.io/library/java                                           v0                  5c0a07c9bcfb3       599MB
[root@k8s-node2 ~]# crictl images|grep java
docker.io/library/java                                           v0                  5c0a07c9bcfb3       599MB

2.创建java-deployment.yaml资源清单文件
[root@k8s-master java]# cd
[root@k8s-master ~]# cd pes-k8s/ 
[root@k8s-master pes-k8s]# vim java-deployment.yaml 
apiVersion: apps/v1
kind: Deployment
metadata:
  name:  java-deployment
  namespace: default
  labels:
    app:  java-deployment
spec:
  selector:
    matchLabels:
      app: java-deployment
  replicas: 3
  strategy:
    rollingUpdate:
      maxSurge: 25%
      maxUnavailable: 25%
    type: RollingUpdate
  template:
    metadata:
      labels:
        app:  java-deployment
    spec:
      # initContainers:
        # Init containers are exactly like regular containers, except:
          # - Init containers always run to completion.
          # - Each init container must complete successfully before the next one starts.
      containers:
      - name:  java
        image:  docker.io/library/java:v0
        imagePullPolicy: Never
        resources:
          requests:
            cpu: 100m
            memory: 100Mi
          limits:
            cpu: 100m
            memory: 300Mi                          #这里得多给点

        ports:
        - containerPort:  8080
          name:  javaport
        volumeMounts:
        - name: localtime
          mountPath: /java/src
      volumes:
        - name: localtime
          nfs:
            server: 192.168.1.44
            path: /root/pes/java/src
      restartPolicy: Always

[root@k8s-master pes-k8s]# kubectl create -f java-deployment.yaml 
deployment.apps/java-deployment created
[root@k8s-master pes-k8s]# kubectl get po -owide
NAME                               READY   STATUS    RESTARTS       AGE    IP               NODE        NOMINATED NODE   READINESS GATES
cluster-test-66bb44bd88-nk46t      1/1     Running   80 (12m ago)   14d    172.16.169.179   k8s-node2   <none>           <none>
java-deployment-7948cbb74b-bgq2s   1/1     Running   0              109s   172.16.169.132   k8s-node2   <none>           <none>
java-deployment-7948cbb74b-bnsr9   1/1     Running   0              109s   172.16.169.137   k8s-node2   <none>           <none>
java-deployment-7948cbb74b-hz7s6   1/1     Running   0              109s   172.16.36.94     k8s-node1   <none>           <none>
web-deployment-7bff5ff45c-45rz6    1/1     Running   0              4h5m   172.16.169.186   k8s-node2   <none>           <none>
web-deployment-7bff5ff45c-nlq2s    1/1     Running   0              4h5m   172.16.36.76     k8s-node1   <none>           <none>
web-deployment-7bff5ff45c-whkd2    1/1     Running   0              4h5m   172.16.169.185   k8s-node2   <none>           <none>

注意:压缩包在解压过程中可能出现问题,比如权限丢失


给相应的权限即可

3.访问测试
[root@k8s-master pes-k8s]# curl 172.16.169.132:8080                    //这样表示成功
{"code":20002,"msg":"账号不存在或密码错误"}[root@k8s-master pes-k8s]# 


四、部署数据库
1.部署mysql-deployment.yaml文件
[root@k8s-master pes-k8s]# vim mysql-deployment.yaml 
apiVersion: apps/v1
kind: Deployment
metadata:
  name:  mysql-deploy
  namespace: default
  labels:
    app:  mysql-deploy
spec:
  selector:
    matchLabels:
      app: mysql-deploy
  replicas: 1
  strategy:
    rollingUpdate:
      maxSurge: 25%
      maxUnavailable: 25%
    type: RollingUpdate
  template:
    metadata:
      labels:
        app:  mysql-deploy
    spec:
      # initContainers:
        # Init containers are exactly like regular containers, except:
          # - Init containers always run to completion.
          # - Each init container must complete successfully before the next one starts.
      containers:
      - name:  mysql-deployment
        image:  docker.io/library/mysql:5.7.44
        imagePullPolicy: Never
        resources:
          requests:
            cpu: 100m
            memory: 100Mi
          limits:
            cpu: 100m
            memory: 200Mi

        ports:
        - containerPort:  3306
          name:  mysql-deploy
        volumeMounts:
        - name: localtime
          mountPath: /var/lib/mysql
      volumes:
        - name: localtime
          nfs:
            server: 192.168.1.44
            path: /root/pes/mysql/data
      restartPolicy: Always
[root@k8s-master pes-k8s]# kubectl create -f mysql-deployment.yaml 
deployment.apps/mysql-deploy created
[root@k8s-master pes-k8s]# kubectl get po               //这里发现mysql没创建成功,这是由于权限不够
NAME                               READY   STATUS             RESTARTS       AGE
cluster-test-66bb44bd88-nk46t      1/1     Running            80 (30m ago)   14d
java-deployment-7948cbb74b-bgq2s   1/1     Running            0              20m
java-deployment-7948cbb74b-bnsr9   1/1     Running            0              20m
java-deployment-7948cbb74b-hz7s6   1/1     Running            0              20m
mysql-deploy-77776fd66f-4fd5r      0/1     CrashLoopBackOff   2 (20s ago)    45s
web-deployment-7bff5ff45c-45rz6    1/1     Running            0              4h23m
web-deployment-7bff5ff45c-nlq2s    1/1     Running            0              4h23m
web-deployment-7bff5ff45c-whkd2    1/1     Running            0              4h23m

2.到nfs主机
[root@localhost ~]# vim /etc/exports
/root/pes    *(rw,sync,no_root_squash)
[root@localhost ~]# systemctl restart nfs.service             //重启

3.回到k8s-master
[root@k8s-master pes-k8s]# kubectl delete -f mysql-deployment.yaml         //先删
deployment.apps "mysql-deploy" deleted
[root@k8s-master pes-k8s]# kubectl create -f mysql-deployment.yaml           //再创
deployment.apps/mysql-deploy created
[root@k8s-master pes-k8s]# kubectl get po 
NAME                               READY   STATUS    RESTARTS       AGE
cluster-test-66bb44bd88-nk46t      1/1     Running   80 (37m ago)   14d
java-deployment-7948cbb74b-bgq2s   1/1     Running   0              26m
java-deployment-7948cbb74b-bnsr9   1/1     Running   0              26m
java-deployment-7948cbb74b-hz7s6   1/1     Running   0              26m
mysql-deploy-77776fd66f-gr9l6      1/1     Running   0              4s
web-deployment-7bff5ff45c-45rz6    1/1     Running   0              4h30m
web-deployment-7bff5ff45c-nlq2s    1/1     Running   0              4h30m
web-deployment-7bff5ff45c-whkd2    1/1     Running   0              4h30m

4.访问测试
[root@k8s-master pes-k8s]# kubectl get po -owide       //查看IP
NAME                               READY   STATUS    RESTARTS       AGE     IP               NODE        NOMINATED NODE   READINESS GATES
cluster-test-66bb44bd88-nk46t      1/1     Running   80 (42m ago)   14d     172.16.169.179   k8s-node2   <none>           <none>
java-deployment-7948cbb74b-bgq2s   1/1     Running   0              32m     172.16.169.132   k8s-node2   <none>           <none>
java-deployment-7948cbb74b-bnsr9   1/1     Running   0              32m     172.16.169.137   k8s-node2   <none>           <none>
java-deployment-7948cbb74b-hz7s6   1/1     Running   0              32m     172.16.36.94     k8s-node1   <none>           <none>
mysql-deploy-77776fd66f-gr9l6      1/1     Running   0              5m32s   172.16.36.85     k8s-node1   <none>           <none>
web-deployment-7bff5ff45c-45rz6    1/1     Running   0              4h35m   172.16.169.186   k8s-node2   <none>           <none>
web-deployment-7bff5ff45c-nlq2s    1/1     Running   0              4h35m   172.16.36.76     k8s-node1   <none>           <none>
web-deployment-7bff5ff45c-whkd2    1/1     Running   0              4h35m   172.16.169.185   k8s-node2   <none>           <none>
[root@k8s-master pes-k8s]# mysql -h 172.16.36.85 -uzhangmin -pzhangmin             //访问,主机必须得有mysql客户端

五、部署对应的service(代理,负载均衡)
[root@k8s-master ~]# kubectl get po --show-labels        //查看标签
NAME                               READY   STATUS    RESTARTS         AGE     LABELS
cluster-test-66bb44bd88-nk46t      1/1     Running   82 (5m54s ago)   14d     app=cluster-test,pod-template-hash=66bb44bd88
java-deployment-7948cbb74b-bgq2s   1/1     Running   1 (5m54s ago)    84m     app=java-deployment,pod-template-hash=7948cbb74b
java-deployment-7948cbb74b-bnsr9   1/1     Running   1 (5m54s ago)    84m     app=java-deployment,pod-template-hash=7948cbb74b
java-deployment-7948cbb74b-hz7s6   1/1     Running   1 (6m7s ago)     84m     app=java-deployment,pod-template-hash=7948cbb74b
mysql-deploy-77776fd66f-gr9l6      1/1     Running   1 (6m7s ago)     58m     app=mysql-deploy,pod-template-hash=77776fd66f
web-deployment-7bff5ff45c-45rz6    1/1     Running   1 (5m54s ago)    5h28m   app=web-deployment,pod-template-hash=7bff5ff45c
web-deployment-7bff5ff45c-nlq2s    1/1     Running   1 (6m7s ago)     5h28m   app=web-deployment,pod-template-hash=7bff5ff45c
web-deployment-7bff5ff45c-whkd2    1/1     Running   1 (5m54s ago)    5h28m   app=web-deployment,pod-template-hash=7bff5ff45c

1.部署web-deployment的service
[root@k8s-master pes-k8s]# vim web-service.yaml 
apiVersion: v1
kind: Service
metadata:
  name: web-service
  namespace: default
spec:
  selector:
    app: web-deployment
  type: NodePort
  sessionAffinity: None
  sessionAffinityConfig:
    clientIP:
      timeoutSeconds: 10800
  ports:
  - name: webport
    protocol: TCP
    port: 80
    targetPort: 80
    nodePort: 32000
[root@k8s-master pes-k8s]# kubectl create -f web-service.yaml
service/web-service created
[root@k8s-master pes-k8s]# kubectl get svc                            //查看svc
NAME          TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)        AGE
kubernetes    ClusterIP   10.96.0.1    <none>        443/TCP        14d
web-service   NodePort    10.96.3.80   <none>        80:32000/TCP   74s

2.浏览器访问192.168.1.110:32000


3.宿主机做hosts劫持
C:\Windows\System32\drivers\etc


4.部署java-deployment的service
[root@k8s-master pes-k8s]# vim java-service.yaml 
apiVersion: v1
kind: Service
metadata:
  name: javaservice
  namespace: default
spec:
  selector:
    app: java-deployment
  type: NodePort
  sessionAffinity: None
  sessionAffinityConfig:
    clientIP:
      timeoutSeconds: 10800
  ports:
  - name: javaport
    protocol: TCP
    port: 8080
    targetPort:  8080
    nodePort: 32100
[root@k8s-master pes-k8s]# kubectl create -f java-service.yaml 
service/javaservice created
[root@k8s-master pes-k8s]# kubectl get svc                    //查看svc
NAME          TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)          AGE
javaservice   NodePort    10.96.71.251   <none>        8080:32100/TCP   91s
kubernetes    ClusterIP   10.96.0.1      <none>        443/TCP          14d
web-service   NodePort    10.96.3.80     <none>        80:32000/TCP     13m

5.外部访问测试

这里请求不到,因为请求的是8080端口,而java服务是32100端口,可以使用代理(haproxy,ipvs,nginx等),也可以改变java服务请求的端口,改为32100(不建议)

6.改变请求java服务的端口(nfs主机)
[root@localhost ~]# cd pes/web/dist/assets/
[root@localhost assets]# for fn in $(ls *.js); do echo $fn; cat $fn|grep 8080; done //查找里面哪个文件有8080
[root@localhost assets]# vim index-8SnX15u9.js                 //将8080改为32100


7.访问测试

此时能够在外部访问web应用和java应用,发现500错误,查看java的日志文件,发现链接不到数据库
[root@k8s-master pes-k8s]# kubectl logs java-deployment-7948cbb74b-hz7s6 


8查看java配置文件(nfs主机)
[root@localhost ~]# cat pes/java/src/application.properties

9.部署mysql-deployment的service
[root@k8s-master pes-k8s]# vim mysql-service.yaml 
apiVersion: v1
kind: Service
metadata:
  name: hap                           #这里必须是hap,和java的配置文件保持一致
  namespace: default
spec:
  selector:
    app: mysql-deploy
  type: ClusterIP
  sessionAffinity: None
  sessionAffinityConfig:
    clientIP:
      timeoutSeconds: 10800
  ports:
  - name: mysqlport
    protocol: TCP
    port: 3306
    targetPort: 3306
[root@k8s-master pes-k8s]# kubectl create -f mysql-service.yaml 
service/hap created
[root@k8s-master pes-k8s]# kubectl get svc
NAME          TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)          AGE
hap           ClusterIP   10.96.171.17   <none>        3306/TCP         76s
javaservice   NodePort    10.96.71.251   <none>        8080:32100/TCP   75m
kubernetes    ClusterIP   10.96.0.1      <none>        443/TCP          14d
web-service   NodePort    10.96.3.80     <none>        80:32000/TCP     87m

六、访问测试
[root@k8s-master pes-k8s]# mysql -h172.16.36.84 -uzhangmin -pzhangmin         //在mysql中获取账号密码
>select * from project_exam_system.user;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1557357.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

从零开始构建:Python自定义脚本自动化你的日常任务

从零开始构建&#xff1a;Python自定义脚本自动化你的日常任务 Python 作为一种简洁且功能强大的编程语言&#xff0c;被广泛应用于各种自动化任务中。通过编写 Python 脚本&#xff0c;你可以轻松地将日常重复性工作自动化&#xff0c;例如文件操作、数据处理、网络爬虫、系统…

第五届智能设计国际会议(ICID 2024)

文章目录 一、会议详情二、重要信息三、大会介绍四、出席嘉宾五、征稿主题六、咨询 一、会议详情 二、重要信息 大会官网&#xff1a;https://ais.cn/u/vEbMBz提交检索&#xff1a;EI Compendex、IEEE Xplore、Scopus大会时间&#xff1a;2024年10月25-27日大会地点&#xff1…

【高效转换神器】MaxToCAD插件:一键将3dMax三维模型秒变Autocad二维平面图

3dMax转CAD平面图插件MaxToCAD是一款功能强大的工具&#xff0c;它能够将3dMax中的三维模型快速转换为Autocad可识别的二维平面图。以下是对该插件的详细介绍&#xff1a; 一、功能概述 MaxToCAD插件允许用户轻松地将3dMax中的三维对象转换为CAD软件中的二维图形。这对于需要…

有限差分法 - 拉普拉斯算子 (Part 1)

Finite difference method - Laplacian part 1 — ROCm Blogs (amd.com) 2022年11月14日, Justin Chang, Rajat Arora, Thomas Gibson, Sean Miller, Ossian O’Reilly撰写。 有限差分法是一种在计算物理中常用的网格离散化方法&#xff0c;广泛应用于从地球物理&#xff08;天…

比亚迪「召回」热销车!谁担责

作为整车关键的安全件&#xff0c;底盘系统是支持行车安全与舒适的基石。相比于主、被动安全系统&#xff0c;底盘系统的故障&#xff0c;更容易直接导致事故风险的急剧上升。 9月29日&#xff0c;比亚迪发布召回公告&#xff0c;召回2023年2月4日至2023年12月26日期间生产的部…

遗传算法与深度学习实战(16)——神经网络超参数优化

遗传算法与深度学习实战&#xff08;16&#xff09;——神经网络超参数优化 0. 前言1. 深度学习基础1.1 传统机器学习1.2 深度学习 2. 神经网络超参数调整2.1 超参数调整策略2.2 超参数调整对神经网络影响 3. 超参数调整规则小结系列链接 0. 前言 我们已经学习了多种形式的进化…

添加菜品到购物车

分析 数据库设计 代码开发 三个步骤:判断当前商品是否已经在购物车中如果在购物车中,更新购物车中商品数量如果不在购物车中,添加到购物车controller层 /*** 添加购物车** @return*/@PostMapping("/add")@ApiOperation("添加购物车")public Result add(…

碰撞检测 | 图解视线生成Bresenham算法(附ROS C++/Python/Matlab实现)

目录 0 专栏介绍1 Bresenham算法介绍2 图解Bresenham算法3 算法流程4 仿真实现4.1 ROS C实现4.2 Python实现4.3 Matlab实现 0 专栏介绍 &#x1f525;课设、毕设、创新竞赛必备&#xff01;&#x1f525;本专栏涉及更高阶的运动规划算法轨迹优化实战&#xff0c;包括&#xff…

C语言 | 第十一章 | static 日期函数 数学函数

P 100 变量作用域基本规则 2023/1/9 一、基本介绍 概念&#xff1a;所谓变量作用域&#xff08;Scope&#xff09;&#xff0c;就是指变量的有效范围。 函数内部声明/定义的局部变量&#xff0c;作用域仅限于函数内部。 #include<stdio.h> void sayHello() {char nam…

手机怎样改网络ip地址?内容详尽实用

随着网络技术的发展&#xff0c;更改手机IP地址已成为一种常见需求。本文将详细介绍如何在不同网络环境下更改手机IP地址&#xff0c;包括移动网络和WiFi网络&#xff0c;以及同时适用于两种网络的方法&#xff0c;内容详尽实用&#xff0c;干货满满。 一、适用于移动网络&…

为什么目录站这么多导出链接,却不影响排名?

导出链接就是网站或者页面中有指向别的网站的单向链接&#xff0c;导出链接过多会导致网站的权重流向对方的网站&#xff0c;所以除非您网站内容有极大的参考价值&#xff0c;并且专业性很强&#xff0c;在业界有口皆碑&#xff0c;否则很难让别的站长主动单向链接到您的网站。…

ChatGPT助力文献综述写作:提升效率与写作技巧!

文献综述在论文写作中占有举足轻重的地位。它不仅帮助我们梳理已有的研究成果&#xff0c;还能为自己的研究奠定基础。许多同学在撰写文献综述时常常感到头疼&#xff1a;如何处理海量的信息&#xff1f;如何将不同的观点有条理地整合起来&#xff1f;再加上学术语言的高要求&a…

VSCode运行QT界面

VSCode用久了,感觉Qt Creator的写起代码来还是不如VSCode得心应手,虽然目前还是存在一些问题,先把目前实现的状况做个记录,后续有机会再进一步优化。 当前方式 通过QtCreator创建一个CMake项目,然后使用CMake的方式在VSCode中进行编译。 claude给出的建议 左上角的名字会…

普通人也能看懂的大语言模型入门,不要错过哦

1. 引言 本文旨在为没有计算机科学背景的人士提供关于ChatGPT及类似AI系统&#xff08;GPT-3、GPT-4、Bing Chat、Bard等&#xff09;的工作原理的洞察。ChatGPT是一种聊天机器人——一种基于大型语言模型构建的对话式AI。这些肯定是些专业术语&#xff0c;我们将逐一解析。在…

【汇编语言】寄存器(CPU工作原理)(四)—— “段地址x16 + 偏移地址 = 物理地址”的本质含义以及段的概念和小结

文章目录 前言1. "段地址x16 偏移地址 物理地址"的本质含义2. 段的概念3. 内存单元地址小结结语 前言 &#x1f4cc; 汇编语言是很多相关课程&#xff08;如数据结构、操作系统、微机原理&#xff09;的重要基础。但仅仅从课程的角度出发就太片面了&#xff0c;其实…

react crash course 2024(4) 番外 使用class创建组件

1.创建 import React from reactexport default class Home extends React.Component{render(){return(<button>点我发送一个action</button>)} } 2.使用

《数据结构》学习系列——树(上)

系列文章目录 目录 树的基本概念树的定义树的特点树的相关术语度层数高度路径二叉树定义特点定理满二叉树定义特点完全二叉树定义特点二叉树的存储结构顺序存储结点结构优点缺点 链式存储 结点结构三叉链表表示法算法搜索结点的父结点搜索符合数据域条件的结点删除给定结点及其…

手机IMEI号为空

1、问题描述 售后反馈&#xff0c;几台机器出现无IMEI问题&#xff0c;需要分析确认 2、分析过程 抓取开机日志&#xff0c;发现radio log中&#xff0c;RILD一直处于重启状态。 Line 1589: 12-19 14:44:42.836240 3156 3156 I IMS_RILA: getMtkRadioProxy service d…

javaweb-请求和响应

1.http协议 1.1请求 1.2.响应 常见响应状态码&#xff1a; 状态码大全&#xff1a;https://cloud.tencent.com/developer/chapter/13553 常见的响应头&#xff1a; 2.请求和响应 2.1.请求 2.1.1postman 作用&#xff1a;常用于接口测试 使用&#xff1a;官网安装-->注册…

Java 根据字符生成背景透明的图片

上代码 package com.example.demotest.controller;/*** Author shaolin* Date 2024-10-08 10:11**/import javax.imageio.ImageIO; import java.awt.*; import java.awt.image.BufferedImage; import java.awt.image.ColorModel; import java.awt.image.WritableRaster; impor…