遷移步驟
- 資源申請(qǐng)
- 數(shù)據(jù)庫(kù)
- Redis等中間件資源
- 集群使用權(quán)
- 代碼遷移與部署(兩個(gè)代碼庫(kù)同時(shí)使用期間bugfix應(yīng)同時(shí)兼顧兩個(gè)代碼庫(kù))
- 新建代碼庫(kù)
- 新代碼庫(kù)增加DockerFile、gitlab-ci.yml同云、charts等容器化文件
- 啟動(dòng)無(wú)定時(shí)任務(wù)單實(shí)例糖权,實(shí)例配置網(wǎng)絡(luò)、域名
- 測(cè)試(此步需尤其注意各種編碼問(wèn)題炸站,已寫(xiě)在下方)
- Postman測(cè)試后端服務(wù)
- 前端代碼打包部署星澳,測(cè)試
- 檢測(cè)日志是否正常,測(cè)試業(yè)務(wù)流程旱易,檢驗(yàn)數(shù)據(jù)正常性
- 服務(wù)切換
- 更換路由時(shí)間無(wú)縫遷移
遷移前收集內(nèi)網(wǎng)其他系統(tǒng)信息以及第三方API禁偎,進(jìn)行網(wǎng)絡(luò)聯(lián)通
這里主要使用到的是 ping
或者 telnet
我這里有部分域名解析到外網(wǎng)去了,懶得找網(wǎng)管做DNS解析就直接操作容器了
使用deployment.yaml
直接寫(xiě)入hosts
案例:
- 在
values.yaml
中加入host映射
hostAliases: []
- ip: "127.0.0.1"
hostnames:
- "foo.local"
- "bar.local"
- 在
deployment.yaml
的metadata
中加入
volumes:
- name: esdata
{{- if .Values.persistence.enabled }}
persistentVolumeClaim:
claimName: {{ .Values.persistence.existingClaim | default (
.Release.Name ) }}
{{- else }}
emptyDir: {}
{{- end }}
容器字體以及各種編碼的設(shè)置
- 程序連接數(shù)據(jù)庫(kù)參數(shù)阀坏,例如jndi配置
<Resource auth="Container" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8"
name="jdbc/test" type="javax.sql.DataSource" username="root" password="123456"/>
- 日志文件編碼設(shè)置
<!-- 控制臺(tái)輸出 -->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <!-- 記錄debug以上的日志 -->
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>DEBUG</level>
</filter>
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss} [%-5level] %logger{20} -
%msg%n</pattern>
<charset>UTF-8</charset>
</encoder>
<!--<logger name="" level="WARN"/>-->
</appender>
- 數(shù)據(jù)庫(kù)編碼格式
show VARIABLES like 'CHARACTER%';
[圖片上傳失敗...(image-287b11-1572343472256)]
image.png
mysql要在配置文件my.ini/my.cnf
的[mysqld]
里配置
lower_case_table_names=1
character_set_server=utf8
max_connections=500
- 添加tomcat啟動(dòng)編碼參數(shù)
可以檢查下是linux下所有亂碼還是僅僅是tomcat亂碼如暖,輸入date命令查看時(shí)間是否存在亂碼, 如果忌堂,tomcat下亂碼會(huì)存在全是問(wèn)號(hào)的情況盒至,可以修改下tomacat中catalina.sh文件 在文件中加入
JAVA_OPTS="$JAVA_OPTS -Djavax.servlet.request.encoding=UTF-8 -Dfile.encoding=UTF-8 -Duser.language=zh_CN -Dsun.jnu.encoding=UTF-8"
或者直接創(chuàng)建一個(gè)setenv.sh進(jìn)行export JAVA_OPTS
然后重啟tomcat
- 看看容器的locale:
docker exec -it id locale
在Dockerfile中添加環(huán)境變量:
ENV LANG='en_US.UTF-8' LANGUAGE='en_US:en' LC_ALL='en_US.UTF-8'
前后端分離應(yīng)用打包問(wèn)題
前端應(yīng)用可以直接把編譯后的靜態(tài)文件打包發(fā)布
省去在線打包的步驟
可跨國(guó)多個(gè)子應(yīng)用多語(yǔ)言設(shè)計(jì)打包障礙,提高效率