ks集成apollo配置中心zxhy哦

本课讲得是基于配置中心数据库实现

主讲:k8s configmap,apollo

configmap和secret

在K8S中,有两种方式管理资源的配置,分别是configmap和secret,他们的最大区别是:

0.1.2 怎么使用configmap

0.1.3 更新configmap配置的方法

单配置更新法:

多配置更换法:

先将前面部署的3个dubbo服务的POD个数全部调整(scale)为0个,避免在应用configmap过程中可能的报错,也为了节省资源

直接在dashboard上操作即可,

App命名空间--à生产者和消费者都伸缩成0

Dubbo-monitor也设置为0

分测试和生产环境了,将原来3台zk集群连接断开,将zk1,和zk2做成单独的zk使用,zk3关掉

主机名

角色

ip

10.4.7.11

10.4.7.12

先关闭zk集群

#删除11,12节点上zookeeper上的数据和日志

[root@hdss7-12 ~]# rm /data/zookeeper/data/* -rf

[root@hdss7-12 ~]# rm /data/zookeeper/logs/* -rf

#修改配置文件.删除与其他主机通信(11,12主机上)

保留如下这些

tickTime=2000

initLimit=10

syncLimit=5

dataDir=/data/zookeeper/data

dataLogDir=/data/zookeeper/logs

clientPort=2181

重新开启(11,12)

老规矩,资源清单在7.200运维机上统一操作

cd /data/k8s-yaml/dubbo-monitor

创建comfigmap清单

apiVersion: v1

kind: ConfigMap

metadata:

name: dubbo-monitor-cm

namespace: infra

data:

EOF

其实就是把dubbo-monitor配置文件中的内容用configmap语法展示出来了

当然最前面加上了相应的元数据信息

Configmap作为一个卷挂载到了容器里

kind: Deployment

apiVersion: extensions/v1beta1

metadata:

name: dubbo-monitor

namespace: infra

labels:

name: dubbo-monitor

spec:

replicas: 1

selector:

matchLabels:

name: dubbo-monitor

template:

metadata:

labels:

app: dubbo-monitor

name: dubbo-monitor

spec:

containers:

- name: dubbo-monitor

ports:

- containerPort: 8080

protocol: TCP

- containerPort: 20880

protocol: TCP

imagePullPolicy: IfNotPresent

#----------------start---------------------------

volumeMounts:

- name: configmap-volume

mountPath: /dubbo-monitor-simple/conf

volumes:

- name: configmap-volume

configMap: #挂载到了configmap-volume目录上,容器中目录

name: dubbo-monitor-cm

#----------------end-----------------------------

imagePullSecrets:

- name: harbor

restartPolicy: Always

terminationGracePeriodSeconds: 30

securityContext:

runAsUser: 0

schedulerName: default-scheduler

strategy:

type: RollingUpdate

rollingUpdate:

maxUnavailable: 1

maxSurge: 1

revisionHistoryLimit: 7

progressDeadlineSeconds: 600

EOF

Umask使挂载只读

应用资源配置清单

dashboard检查创建结果

在dashboard中查看infra名称空间中的configmap资源

然后检查容器中的配置

kubectl -n infra exec -it dubbo-monitor-5b7cdddbc5-xpft6 bash

# 容器内

....

检查dubbo-monitor页面的注册信息

多配置更新法

# 把资源名字改成dubbo-monitor-cm-pro

dashboard上修改zook地址

更新资源

# 应用新configmap

# 更新deploy

检查配置是否更新

新的pod已经起来了

~]# kubectl -n infra get pod

NAME READY STATUS RESTARTS AGE

dubbo-monitor-c7fbf68b9-7nffj 1/1 Running 0 52s

进去看看是不是应用的新的configmap配置:

kubectl -n infra exec -it dubbo-monitor-5cb756cc6c-xtnrt bash

# 容器内

看下dubbo-monitor的页面:已经是zk2了。

monutPath挂载的问题

我们使用的是mountPath,这个是挂载整个目录,会使容器内的被挂载目录中原有的文件不可见,可以看见我们。

查看我们pod容器启动的命令可以看见原来脚本中的命令已经无法对挂载的目录操作了

如何单独挂载一个配置文件:

只挂载单独一个文件而不是整个目录,需要添加subPath方法

更新配置

#----------------start---------------------------

volumeMounts:#卷挂载动作

- name: configmap-volume

mountPath: /dubbo-monitor-simple/conf

volumes:#声明卷

- name: configmap-volume

configMap:

name: dubbo-monitor-cm

#----------------end-----------------------------

# 调整为

#----------------start---------------------------

volumeMounts:

- name: configmap-volume

mountPath: /dubbo-monitor-simple/conf

- name: configmap-volume

volumes:

- name: configmap-volume

configMap:

name: dubbo-monitor-cm

#----------------end-----------------------------

kubectl -n infra exec -it dubbo-monitor-5cb756cc6c-xtnrt bash

# 容器内操作

bash-4.3# ls -l /var/

total 4

drwxr-xr-x 1 root root 29 Apr 13 2016 cache

-rw-r--r-- 1 root root 459 May

drwxr-xr-x 2 root root 6 Apr 1 2016 empty

.....

Client: dubbo-demo-custom,dubbo-demo-service

Apoll3兄弟:config service,admin service,portal

将dubbo的配置,写到config DB

Portal:web界面,可以在页面修改configdb中的配置数据

Apollo的注册中心

在运维主机200上执行

[root@mfyxw50 ~]# cd /opt/src

[root@mfyxw50 src]# mkdir -p /data/dockerfile/apollo-configservice

注意:MySQL版本应为5.6或以上!

导入GPG-KEY

[root@mfyxw10 ~]# yum makecache

[root@mfyxw10 ~]# yumlistMariaDB-server--show-duplicates

Loadedplugins: fastestmirror

Loadingmirrorspeedsfromcachedhostfile

AvailablePackages

[root@mfyxw10 ~]# yum -y install MariaDB-server

# These groups are read by MariaDB server.

# Use it for options that only the server (but not clients) should see

# this is read by the standalone daemon and embedded servers

[server]

# this is only for the mysqld standalone daemon

[mysqld]

character_set_server = utf8mb4

collation_server = utf8mb4_general_ci

init_connect = "SET NAMES 'utf8mb4'"

# * Galera-related settings

[galera]

# Mandatory settings

#wsrep_on=ON

#wsrep_provider=

#wsrep_cluster_address=

#binlog_format=row

#default_storage_engine=InnoDB

#innodb_autoinc_lock_mode=2

# Allow server to accept connections on all interfaces.

#bind-address=0.0.0.0

# Optional setting

#wsrep_slave_threads=1

#innodb_flush_log_at_trx_commit=0

# this is only for embedded server

[embedded]

# This group is only read by MariaDB servers, not by MySQL.

# If you use the same .cnf file for MySQL and MariaDB,

# you can put MariaDB-only options here

[mariadb]

# This group is only read by MariaDB-10.1 servers.

# If you use the same .cnf file for MariaDB of different versions,

# use this group for options that older servers don't understand

[mariadb-10.1]

EOF

# These groups are read by MariaDB command-line tools

# Use it for options that affect only one utility

[mysql]

default-character-set = utf8mb4

[mysql_upgrade]

[mysqladmin]

[mysqlbinlog]

[mysqlcheck]

[mysqldump]

[mysqlimport]

[mysqlshow]

[mysqlslap]

EOF

[root@mfyxw10 ~]# systemctl enable --now mariadb

[root@hdss7-11 ~]# systemctl start mysql

[root@hdss7-11 ~]# systemctl status mysql

[root@mfyxw10 ~]# netstat -tanlp | grep mysql #查看MariaDB的启动端口

[root@mfyxw10 ~]# mysqladmin -uroot password #设置密码:回车

[root@mfyxw10 ~]# mysql -uroot -p #输入数据库密码登录

MariaDB [(none)]> \s                     #检查字符集

MariaDB [(none)]> drop database test;

MariaDB [(none)]> use mysql;

MariaDB [mysql]> delete from user where user='';

或都使用如下命令对MariaDB数据库初始化设置

[root@mfyxw10 ~]# mysql_secure_installation

[root@mfyxw10 ~]# mysql-uroot-p

MariaDB[(none)]> \s

[root@mfyxw50 ~]# mkdir /data/dockerfile/apollo-portal

# DataSource

EOF

EOF

#!/bin/bash

SERVICE_NAME=apollo-portal

## Adjust log dir if necessary

LOG_DIR=/opt/logs/apollo-portal-server

## Adjust server port if necessary

SERVER_PORT=8080

APOLLO_PORTAL_SERVICE_NAME=\$(hostname -i)

## Adjust memory settings if necessary

#export JAVA_OPTS="-Xms2560m -Xmx2560m -Xss256k -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=384m -XX:NewSize=1536m -XX:MaxNewSize=1536m -XX:SurvivorRatio=8"

## Only uncomment the following when you are using server jvm

#export JAVA_OPTS="\$JAVA_OPTS -server -XX:-ReduceInitialCardMarks"

########### The following is the same for configservice, adminservice, portal ###########

# Find Java

if [[ -n "\$JAVA_HOME" ]] && [[ -x "\$JAVA_HOME/bin/java" ]]; then

javaexe="\$JAVA_HOME/bin/java"

eliftype -p java > /dev/null 2>&1; then

javaexe=\$(type -p java)

elif [[ -x "/usr/bin/java" ]]; then

javaexe="/usr/bin/java"

else

echo"Unable to find Java"

exit 1

fi

if [[ "\$javaexe" ]]; then

version=\$("\$javaexe" -version 2>&1 | awk -F '"''/version/ {print \$2}')

version=\$(echo"\$version" | awk -F. '{printf("%03d%03d",\$1,\$2);}')

# now version is of format 009003 (9.3.x)

if [ \$version -ge 011000 ]; then

elif [ \$version -ge 010000 ]; then

elif [ \$version -ge 009000 ]; then

else

JAVA_OPTS="\$JAVA_OPTS -XX:+UseParNewGC"

JAVA_OPTS="\$JAVA_OPTS -XX:+UseConcMarkSweepGC -XX:+UseCMSCompactAtFullCollection -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=60 -XX:+CMSClassUnloadingEnabled -XX:+CMSParallelRemarkEnabled -XX:CMSFullGCsBeforeCompaction=9 -XX:+CMSClassUnloadingEnabled -XX:+PrintGCDateStamps -XX:+PrintGCApplicationConcurrentTime -XX:+PrintHeapAtGC -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=5 -XX:GCLogFileSize=5M"

fi

fi

printf"\$(date) ==== Starting ==== \n"

cd \`dirname \$0\`/..

chmod 755 \$SERVICE_NAME".jar"

./\$SERVICE_NAME".jar" start

rc=\$?;

if [[ \$rc != 0 ]];

then

exit \$rc;

fi

tail -f /dev/null

EOF

[root@mfyxw50 ~]# cat > /data/dockerfile/apollo-portal/Dockerfile << EOF

ENV VERSION 1.5.1

RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime &&\

echo"Asia/Shanghai" > /etc/timezone

ADD config/ /apollo-portal/config

ADD scripts/ /apollo-portal/scripts

EOF

[root@mfyxw50 ~]# cd /data/dockerfile/apollo-portal

\$TTL 600 ; 10 minutes

;序号请加1,表示比之前版本要新

2020031312 ; serial

10800 ; refresh (3 hours)

900 ; retry (15 minutes)

604800 ; expire (1 week)

86400 ; minimum (1 day)

\$TTL 60 ; 1 minute

dns A 192.168.80.10

harbor A 192.168.80.50 ;添加harbor记录

k8s-yaml A 192.168.80.50

traefik A 192.168.80.100

dashboard A 192.168.80.100

zk1 A 192.168.80.10

zk2 A 192.168.80.20

zk3 A 192.168.80.30

jenkins A 192.168.80.100

dubbo-monitor A 192.168.80.100

demo A 192.168.80.100

mysql A 192.168.80.10

config A 192.168.80.100

portal A 192.168.80.100

EOF

[root@mfyxw10 ~]# systemctl restart named

192.168.80.100

[root@mfyxw50 ~]# mkdir -p /data/k8s-yaml/apollo-portal

kind:Deployment

apiVersion:extensions/v1beta1

metadata:

name:apollo-portal

namespace:infra

labels:

name:apollo-portal

spec:

replicas:1

selector:

matchLabels:

name:apollo-portal

template:

metadata:

labels:

app:apollo-portal

name:apollo-portal

spec:

volumes:

- name:configmap-volume

configMap:

name:apollo-portal-cm

containers:

- name:apollo-portal

ports:

- containerPort:8080

protocol:TCP

volumeMounts:

- name:configmap-volume

mountPath:/apollo-portal/config

terminationMessagePath:/dev/termination-log

terminationMessagePolicy:File

imagePullPolicy:IfNotPresent

imagePullSecrets:

- name:harbor

restartPolicy:Always

terminationGracePeriodSeconds:30

securityContext:

runAsUser:0

schedulerName:default-scheduler

strategy:

type:RollingUpdate

rollingUpdate:

maxUnavailable:1

maxSurge:1

revisionHistoryLimit:7

progressDeadlineSeconds:600

EOF

kind:Service

apiVersion:v1

metadata:

name:apollo-portal

namespace:infra

spec:

ports:

- protocol:TCP

port:8080

targetPort:8080

selector:

app:apollo-portal

clusterIP:None

type:ClusterIP

sessionAffinity:None

EOF

kind:Ingress

apiVersion:extensions/v1beta1

metadata:

name:apollo-portal

namespace:infra

spec:

rules:

paths:

- path:/

backend:

serviceName:apollo-portal

servicePort:8080

EOF

apiVersion:v1

kind:ConfigMap

metadata:

name:apollo-portal-cm

namespace:infra

data:

# DataSource

appId=100003173

EOF

[root@mfyxw30 ~]#

service/apollo-portal created

[root@mfyxw30 ~]#

[root@mfyxw30 ~]#

configmap/apollo-portal-cm created

[root@mfyxw30 ~]# kubectl get pod -n infra

NAME READY STATUS RESTARTS AGE

apollo-adminservice-5cccf97c64-bhqzb 1/1 Running 16h22m

apollo-configservice-5f6555448-7wxsp 1/1 Running 16h16m

apollo-portal-57bc86966d-jz5vg 1/1 Running 0112s

dubbo-monitor-6676dd74cc-9hghb 1/1 Running 1317d

dubbo-monitor-6676dd74cc-rd86g 1/1 Running 1217d

jenkins-b99776c69-p6skp 1/1 Running 1739d

对应修改了数据库键值如下

添加配置

#zk1是测试环境

#apollo分支编写的参数变量是对应apollo注册的参数

Jenkins-编写拉取参数

kind: Deployment

apiVersion: extensions/v1beta1

metadata:

name: dubbo-demo-service

namespace: app

labels:

name: dubbo-demo-service

spec:

replicas: 1

selector:

matchLabels:

name: dubbo-demo-service

template:

metadata:

labels:

app: dubbo-demo-service

name: dubbo-demo-service

spec:

containers:

- name: dubbo-demo-service

ports:

- containerPort: 20880

protocol: TCP

env:

- name: JAR_BALL

- name: C_OPTS #添加的新环境变量

imagePullPolicy: IfNotPresent

imagePullSecrets:

- name: harbor

restartPolicy: Always

terminationGracePeriodSeconds: 30

securityContext:

runAsUser: 0

schedulerName: default-scheduler

strategy:

type: RollingUpdate

rollingUpdate:

maxUnavailable: 1

maxSurge: 1

revisionHistoryLimit: 7

progressDeadlineSeconds: 600

对应了dubbo-service服务提供者程序中如下2个变量

Register地址代表,服务注册的zk数据库地址,

Port代表,monitor探查dubbo-service服务状态暴露的端口,如果这里改了(dubbo-monitor应当也该改地址)

#相当于以环境变量的方式,在程序启动时中调用.

在Portal的web界面创建项目,写入键值,相当于在dashboard修改了configmap中的配置

Portal会把数据传递给adminservice,adminservice又把数据存到configdb中

注: 可以在程序中实现apollo监听器的方法,实现实时监听apollo配置中心键值变化,实时reload生效,达到pod更新配置的效果

不需要,人为删除pod重启

和dubbo服务提供者一样.重新制作dubbo-web的harbor镜像(将配置环境变量化)

提交,再点一下发布

#开始构建

再次应用.apollo的配置就在pod里的项目生效了

在实际企业环境,应该将测试环境和生产环境放到2个不同的k8s集群,而不是现在这样以名称空间区分

环境

命名空间

应用

测试环境(TEST)

test

apollo-config,apollo-admin,zk1,apolloconfigdb

测试环境(TEST)

test

dubbo-demo-service,dubbo-demo-web

生产环境(PROD)

prod

apollo-config,apollo-admin, apolloconfigdb

生产环境(PROD)

prod

dubbo-demo-service,dubbo-demo-web,zk2

ops环境(infra)--共用

infra

jenkins,dubbo-monitor,apollo-portal

1)首先停掉apollo3兄弟

创建test名称空间

[root@hdss7-21 ~]# kubectl create ns test

namespace/test created

#在test名称空间创建secret资源

查看创建的apolloconfig测试库

#修改数据库连接eruke信息,

#测试库使用的地址改一下

MariaDB [ApolloConfigTestDB]> select * from ServerConfig\G;

MariaDB [(none)]> grant SELECT,DELETE,UPDATE,INSERT on ApolloConfigTestDB.* to "apolloconfig"@"10.4.7.%" identified by "123456";

Query OK, 0 rows affected (0.00 sec)

[root@hdss7-200 k8s-yaml]# mkdir -pv test/{apollo-configservice,apollo-adminservice,dubbo-demo-service,dubbo-demo-consumer}

[root@hdss7-200 apollo-configservice]# pwd

/data/k8s-yaml/test/apollo-configservice

[root@hdss7-200 apollo-configservice]# cp /data/k8s-yaml/apollo-configservice/* .

[root@hdss7-200 apollo-configservice]# ls

修改资源清单中(所有)

1.名称空间改为test

修改资源清单(configmap,dp)

名称空间改成test

Configmap改:

应用资源配置清单:

[root@hdss7-200 dubbo-demo-service]# pwd

/data/k8s-yaml/test/dubbo-demo-service

namespace: test

[root@hdss7-200 dubbo-demo-consumer]# cp /data/k8s-yaml/dubbo-consumer/*.yaml .

namespace: test (ingress,dp,svc)

demo-test A 10.4.7.10

[root@hdss7-11 ~]# systemctl restart named

1)首先停掉apollo3兄弟

创建prod名称空间

[root@hdss7-21 ~]# kubectl create ns prod

namespace/test created

#在prod名称空间创建secret资源

创建生产环境的configdb

#修改数据库连接eruke信息,

#生产库使用的地址改一下

MariaDB [ApolloConfigTestDB]> select * from ServerConfig\G;

MariaDB [(none)]> grant SELECT,DELETE,UPDATE,INSERT on ApolloConfigProdDB.* to "apolloconfig"@"10.4.7.%" identified by "123456";

Query OK, 0 rows affected (0.00 sec)

[root@hdss7-200 k8s-yaml]# mkdir -pv prod/{apollo-configservice,apollo-adminservice,dubbo-demo-service,dubbo-demo-consumer}

[root@hdss7-200 apollo-configservice]# pwd

/data/k8s-yaml/prod/apollo-configservice

[root@hdss7-200 apollo-configservice]# cp /data/k8s-yaml/test/apollo-configservice/* .

[root@hdss7-200 apollo-configservice]# sed -i 's/test/prod/g' ./* #替换成prod

再将连接的数据库地址改掉

名称空间改成prod

Configmap改:

[root@hdss7-200 apollo-adminservice]# cp /data/k8s-yaml/test/apollo-adminservice/* .

[root@hdss7-200 apollo-adminservice]# sed -i 's/test/prod/g' ./* #不要这样改,会把harbor地址改错

手动修改数据库地址,域名

demo-prod A 10.4.7.10

[root@hdss7-11 ~]# systemctl restart named

[root@hdss7-200 dubbo-demo-service]# cp /data/k8s-yaml/test/dubbo-demo-service/*.yaml .

namespace: prod

[root@hdss7-200 dubbo-demo-consumer]# cp /data/k8s-yaml/test/dubbo-demo-consumer/*.yaml .

名称空间

namespace: prod (ingress,dp,svc)

11主机上,mysql

drop database ApolloConfigDB;

MariaDB [ApolloPortalDB]> use ApolloPortalDB;

MariaDB [ApolloPortalDB]> update ServerConfig set value='fat,pro' where Id=1; #可支持的环境列表修改

修改标黄2行

应用cm资源清单

MariaDB [ApolloPortalDB]> use ApolloPortalDB;

MariaDB [ApolloPortalDB]> truncate table AppNamespace;

MariaDB [ApolloPortalDB]> truncate table App;

#检查admin service资源清单,发现harbor地址被替换错了

#如果apollo开启之前,项目创建有问题,需要删除重建

#添加对应环境的参数,添加完后点发布再编辑生产环境

#生产环境参数发布

创建项目

测试环境测试新版镜像,如果正常可以访问

再将生产环境消费者dp资源配置文件使用新版镜像(用测试环境做的镜像包)

1. dubbo的3个组件,提供者,消费者,发现者,他们通信的端口,zk地址需要保证一致性

2. dubbo的3个组件的启动顺序需要注意,monitor需要在后启动,不然在web界面容易发现不了其他2个组件

4. dubbo-monitor网站打不开,一定是zookeeper宕了.

5. 所有的问题都排查过了,发现dashboard上删除掉的dp,在k8s上居然没被删掉

6.启动顺序,zk,portal,数据库,apolloservice,apolloadmin,dubboservice,dubboconsumer

THE END
0.龙蜥8.9OSFailedtoexecute/sbin/initFailedtoexecutefali我们面对的是一个系统启动失败的问题,错误信息是"Failed to execute /sbin/init"和"Failed to execute faliback shell"。这通常意味着系统在启动过程中无法执行关键的初始化进程(init),并且连备用shell也无法启动。我们需要逐步分析可能的原因并提供解决方案。 jvzquC41ygtlw7hufp4og}4cpu}ft8:gl6~s5:6v
1.部署参考命令: sudo /etc/init.d/ssh restart service sshd restart systemctl restart sshd.service systemctl restart sshd 修改执行任务,一个执行操作不能超过ssh连接会话超时时间。 ssh_exchange_identification: read: Connection reset by peer 问题现象 Linux主机任务执行失败,日志信息提示“Failed to connect to thjvzquC41uwvqq{y0jwgxgr3eqo5fp}jtrtotg8j1fud1NIQE3712;>83;>0d:;5cf6b
2.weatherService(天气数据服务)ArkTsAPI参考@ohos.app.ability.application (应用工具类) @ohos.app.ability.ApplicationStateChangeCallback (应用进程状态变化监听器) @ohos.app.ability.AppServiceExtensionAbility (应用后台服务扩展组件) @ohos.app.ability.AtomicServiceOptions (openAtomicService可选参数) @ohos.app.ability.autoFillManager (自动填jvzquC41fg|fnxugt0nvc€jk0eun1ltpuwsft8hp1fud1qftoqtzq|2tghksgwhgu1}fc}mgt/yftneg/}fc}mgtuksxrhg
3.linux内核设备文件初始化失败proce功能: inittab为linux初始化文件系统时init初始化程序用到的配置文件。这个文件负责设置init初始化程序初始化脚本在哪里;每个运行级初始化时运行的命令; 开机、关机、重启对应的命令;各运行级登陆时所运行的命令。 id:runlevels:action:process 其 vargant 初始化centos 初始化 系统启动 运行级别 转载 信息jvzquC41dnuh0>6evq4dqv4vqrod1unpwztfkqjujghfk€jplkgoeqzujknvc|mkdco/j}rn
4.需要你重新打sp6补丁zz龙卷风提示initdevfailed我在网上看了一下,大多数人说这是vc6.0的一个bug。 不过也有人说打过真正的sp6之后就可以解决这个问题了,我看了一下,我装的所谓的龙卷风vc6.0 sp6集成版果然是有问题的, msdev.exe 6.0.8168.2 cl.exe 12.0.8168.0 nmake.exe 6.0.8168.0 MS提供的真正的sp6补丁中的这几个文件版本为: jvzquC41dnuh0lxfp0tfv8q{ejkf29<1ctzjeuj1fgzbkux176=82>9
5.java龙卷风龙卷风在运行应用程序时显示错误500博主在使用Tornado框架时遇到登录页面渲染错误。具体表现为尝试传递额外参数到渲染的模板时出现TypeError异常,涉及Python 2.7环境下Tornado 4.3版本的具体错误追踪。 我这样设置 LoginHandler : class LoginHandler(BaseHandler): defget(self): self.render('admin/login.htmljvzquC41dnuh0lxfp0tfv8|gkzooa<>8;66288ftvkimg8igvcomu86369668>6
6.常用测试工具龙卷风龙卷风工具龙卷风网络工具是一款简单易上手的模拟打流工具,向用户提供了ARP/ICMP/UDP /IGMP/DHCP等协议报文的构造方法,旨意方便用户在勾选对应网卡后,使用该网卡发送对应构造报文,以达到测试设备的目的。 1.2、龙卷风用途 龙卷风工具供测试人员模拟仪表打流,并通过观察流量收发情况分析定位问题 jvzquC41dnuh0lxfp0tfv8|gkzooa=5235:738ftvkimg8igvcomu86485>:8A;
7.LexarNM790NVMEfailstoinitialize|Page2|Linux.orgTree-Forever Oct 10, 2025 General Linux Questions Replies 2 Views 72 Oct 10, 2025 osprey A Help Request: intermittent amdgpu_device_ip_init failed when booting Pop_OS 22.04 ads103 Jul 28, 2024 Linux Audio / Video Replies 4 Views 2K Jul 30, 2024 Brickwizard SharejvzquC41yy}/nrswz0usi8yjtggeu8qgzcx.pv<;2/twon2hckrt/}t/kpoukjqk|g458<671rghg67
8.ARM分论坛帖子清单第891页(amobbs.com阿莫电子技术论坛)收藏本版 (104) |订阅 ARM 今日: 0|主题: 13259|排名: 31 推荐主题 《学ARM和学单片机一样简单》——ARM入门视频教程 初来贵宝地,奉上本人愚作——基于ARM和CPLD的图像系统,一丝不挂,完全开源 工程师创业为什么这么难?!有过创业经历的工程师(或者现在已经升级为老板的过来指点迷津 让我们一起DIY OURjvzquC41yy}/cvtddu4dqv4hqt{n/:554/>:37mvon
9.网心云OEC/OEC因为OEC/OEC-turbo的机器都是有锁机,所以即使是短接刷机,也无法刷无锁机的包。OECT在UBOOT SPL INIT阶段就会对UBOOT,BOOT, FDT分区进行校验,一旦失败就会拒绝启动。意味着直接替代原厂系统是不可能的。至少目前还不行。 有硬件大佬尝试物理意义上更换一个rk3566/rk3568的CPU,并且清空原来的emmc jvzquC41dnuh0lxfp0tfv8OqjpeMgwtp1cxuklqg1fkucrqu13:76?6442
10.嵌入式硬件篇龙芯2k1000串口如何用龙芯开发版串口打印显示确认是否有多个设备同时尝试访问该串口端口。如果有其他程序或设备在占用 /dev/ttyS3 端口,可能会导致冲突。关闭其他可能使用该串口的程序或设备,然后重新测试。 软件方面 权限检查 确保当前用户对 /dev/ttyS3 端口有足够的读写权限。在龙芯系统的终端中,使用命令ls -l /dev/ttyS3查看端口权限。如果权限不足,可通jvzquC41dnuh0lxfp0tfv87523e8;>:86280c{ykenk0fnyckny03==5:;>23
11.配置openGL并且运行第一个程序现在Windows系统的主流编译环境有Visual Studio,Broland C++ Builder,Dev-C++等,它们都是支持OpenGL的。但老师上课选择VC++ 6.0作为学习OpenGL的环境。 void init (void ) { GLenum err = glewInit (); if (err != GLEW_OK ) { exit(-2); } glClearColor (0.0, 0.0, 0.0, 0.0); jvzquC41dnuh0lxfp0tfv8|gkzooa<5774<478ftvkimg8igvcomu8>;2:787<
12.MySQL数据库配置与操作实战my_bool reconnect=1;if(XPOC_ERR_SUCCESS==mysql_options(mysql_conn,MYSQL_OPT_RECONNECT,&reconnect)){x_InfoLog("UM_Mysql_init() function success.");}else{x_ErrorLog("mysql_options() function failed: %s\n",mysql_error(mysql_conn));}/* 连接数据库 */if(!mysql_real_connect(mysql_conn,jvzquC41dnuh0lxfp0tfv8|gkzooa=:53485;8ftvkimg8igvcomu8645;844;>
13.浩瀚天空001原创Nginx报错failed (13: Permission denied) 日志:2021/09/07 11:05:13 [crit] 7153#0: *204 open() "/home/tangl/nginx/proxy_temp/4/02/0000000024" failed (13: Permission denied) while reading upstream, client: 123.123.123.123, server: localhost, request: "POST /test/xmtest HTTP/1.1", jvzquC41og4dums0pgz0duti1|nppppckiupf
14.TowardsDataScience博客中文翻译2021(五百)北积天dfd2d5$ git init . $ git remote add origin https://huggingface.co/datasets/<user>/<repo> $ git由于数据集的 repo 可以使用 git 进行控制,我认为首先提交到一个dev分支,完整地测试它,然后执行到main№8:龙卷风 Tornado 不仅是一个伟大的 web 框架,而且还是一个异步网络库。凭借这一特性,Tornado 能够jvzquC41dnuh0lxfp0tfv8|k|cxehxwegn5bt}neng5eg}fknu526;>54671
15.案例研究initGrass 和initTerrain 函数调用分别使用草地和地形填充场景: initGrass:-> mat = new THREE.MeshPhongMaterial( { map: @grassTex } ) NUM = 15 for i in [0..NUM] by 1 for j in [0..NUM] by 1 x = ((i/NUM) - 0.5) * 50 + THREE.Math.jvzquC41ygh/fn{1ecyf/|ywfkkt1xAjnC{jhhp
16.Python是如何播种Mersenne龙卷风的腾讯云开发者社区问Python是如何播种Mersenne龙卷风的EN一直从事代码编写工作,加上现在的公司已经在四个单位从事软件开发工作jvzquC41enuvf7ygpekov7hqo1jfxnqqrgx0c|p1uql039:3757:7
17.什么新的龙卷风6.0—Tornado6.2.dev1文档什么新的龙卷风6.0 折旧通知¶ 这是Tornado支持Python3.5的最后一个版本。未来的版本将需要Python3.6或更高版本。 一般变化¶ Windows支持已得到改进。Tornado现在与proactor事件循环(Python3.8中的默认值)兼容,它自动返回到在第二个线程中运行选择器。这意味着不再需要显式地配置选择器事件循环,尽管这样做可以提高jvzquC41yy}/q|lgq0io1}ttpcjp1{jngcyfu8{803410qyon
18.C++标准模板库使用教程(六)c++random模板库Deck& init_deck(Deck& deck) { static std::array<Suit,4> suits{Suit::Clubs, Suit::Diamonds, Suit::Hearts, Suit::Spades}; static std::array<Face, 13> values {Face::Two, Face::Three, Face::Four, Face::Five, Face::Six, Face::Seven, Face::Eight, Face::Nine, Face::Ten, jvzquC41dnuh0lxfp0tfv8|k|cxehxwegn5bt}neng5eg}fknu5269>486;7
19.ValidationError:Invalidoptionsobject.DevServerhasbeeninitValidationError: Invalid options object. Dev Server has been initialized using an options object that does not match the API schema. 将hotOnly: true 改为 hot: 'only' 好文要顶关注我收藏该文微信分享 龙卷风吹毁停车场 粉丝-15关注 -2 +加关注 jvzquC41yy}/ewgnqiy/exr1vnlf1y4393<65>>0jvsm
20.ARM分论坛帖子清单第1085页(amobbs.com阿莫电子技术论坛)收藏本版 (104) |订阅 ARM 今日: 0|主题: 13259|排名: 32 推荐主题 《学ARM和学单片机一样简单》——ARM入门视频教程 初来贵宝地,奉上本人愚作——基于ARM和CPLD的图像系统,一丝不挂,完全开源 工程师创业为什么这么难?!有过创业经历的工程师(或者现在已经升级为老板的过来指点迷津 让我们一起DIY OURjvzquC41yy}/cvtddu4dqv4hqt{n/:554/71:>3jvor
21.ARM分论坛帖子清单第1992页(amobbs.com阿莫电子技术论坛)收藏本版 (104) |订阅 ARM 今日: 0|主题: 13259|排名: 32 推荐主题 《学ARM和学单片机一样简单》——ARM入门视频教程 初来贵宝地,奉上本人愚作——基于ARM和CPLD的图像系统,一丝不挂,完全开源 工程师创业为什么这么难?!有过创业经历的工程师(或者现在已经升级为老板的过来指点迷津 让我们一起DIY OURjvzquC41yy}/cvtddu4dqv4hqt{n/:554/7:;;3jvor
22.ARM分论坛帖子清单第2066页(amobbs.com阿莫电子技术论坛)收藏本版 (104) |订阅 ARM 今日: 0|主题: 13259|排名: 32 推荐主题 《学ARM和学单片机一样简单》——ARM入门视频教程 初来贵宝地,奉上本人愚作——基于ARM和CPLD的图像系统,一丝不挂,完全开源 工程师创业为什么这么难?!有过创业经历的工程师(或者现在已经升级为老板的过来指点迷津 让我们一起DIY OURjvzquC41yy}/cvtddu4dqv4hqt{n/:554/818?3jvor
23.ARM分论坛帖子清单第386页(amobbs.com阿莫电子技术论坛)收藏本版 (104) |订阅 ARM 今日: 0|主题: 13259|排名: 8 推荐主题 《学ARM和学单片机一样简单》——ARM入门视频教程 初来贵宝地,奉上本人愚作——基于ARM和CPLD的图像系统,一丝不挂,完全开源 工程师创业为什么这么难?!有过创业经历的工程师(或者现在已经升级为老板的过来指点迷津 让我们一起DIY OURjvzquC41yy}/cvtddu4dqv4hqt{n/:554/9987mvon
24.ARM分论坛帖子清单第1528页(amobbs.com阿莫电子技术论坛)收藏本版 (104) |订阅 ARM 今日: 0|主题: 13259|排名: 32 推荐主题 《学ARM和学单片机一样简单》——ARM入门视频教程 初来贵宝地,奉上本人愚作——基于ARM和CPLD的图像系统,一丝不挂,完全开源 工程师创业为什么这么难?!有过创业经历的工程师(或者现在已经升级为老板的过来指点迷津 让我们一起DIY OURjvzquC41yy}/cvtddu4dqv4hqt{n/:554/764A3jvor
25.ARM分论坛帖子清单第186页(amobbs.com阿莫电子技术论坛)收藏本版 (104) |订阅 ARM 今日: 0|主题: 13259|排名: 27 推荐主题 《学ARM和学单片机一样简单》——ARM入门视频教程 初来贵宝地,奉上本人愚作——基于ARM和CPLD的图像系统,一丝不挂,完全开源 工程师创业为什么这么难?!有过创业经历的工程师(或者现在已经升级为老板的过来指点迷津 让我们一起DIY OURjvzquC41yy}/cvtddu4dqv4hqt{n/:554/7987mvon