spring cloud開發、部署註意事項
阿新 • • 發佈:2018-09-10
沒有 別人 註意事項 pid cti apach 腳本 com active 一、開發時,配置服務的配置使用本地路徑,不使用svn和git,因為後者每個開發人員都會修改配置,導致別人也拿到其他人修改的配置,本地配置示例如下:
spring: application: name: simple-config-server cloud: config: server: default-label: trunk native: searchLocations: file:///D:\works\smart\simple-config-repo profiles: active: native
二、對於生產環境部署到阿裏雲的,使用不了docker,因為docker文件通常有幾百兆,部署時上傳很慢。不但不能使用docker,打包時也沒有必要包含所有的包,如果去掉依賴包,編譯完後每個jar只有幾百k,這樣部署起來就方便多了。可以如下設置pom編譯選項:
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <configuration> <archive> <manifest> <addClasspath>true</addClasspath> <mainClass>ebtins.smart.proxy.SmartProxyApplication</mainClass> <classpathPrefix>lib/</classpathPrefix> </manifest> </archive> </configuration> </plugin> </plugins> <defaultGoal>compile</defaultGoal> </build>
這樣你生產環境的服務目錄將如下,simple-service.jar只有幾百K。
simple-service.jar simple-service.sh lib logs
三、使用腳本啟動和關閉服務,centos下的腳本啟動和關閉可以如下:歡迎大家一起學習研究相關技術願意了解源碼的朋友直接求求交流分享技術:2147775633
start(){ now=`date "+%Y%m%d%H%M%S"` exec java -Xms64m -Xmx256m -jar ./simple-service-0.0.1.jar --server.port=7085 --config.name=pro > logs/simple-service.log & } #停止方法 stop(){ ps aux|grep simple-service|grep 7085|grep -v grep|awk ‘{print $2}‘|while read pid do kill -9 $pid done } case "$1" in start) start ;; stop) stop ;; restart) stop start ;; *) printf ‘Usage: %s {start|stop|restart}\n‘ "$testg" exit 1 ;; esac
啟動方式:sh simple-service.jar start
當然可以在腳本裏啟動本服務器所有服務,也可以使用自動部署機制,自動部署自動啟動。
這是生產和開發環境的一點小小經驗。
spring cloud開發、部署註意事項