【21天轉型微服務】day5實操手冊 or '\n' !!!指令千萬條,精準第一條!!!
序言
day4 看到有朋友寫了
直達鏈接
https://bbs.huaweicloud.com/blogs/5fac241847a511e9bd5a7ca23e93a891
那讓我們一起來看看今天的痛點吧~
指令千萬條,精準第一條
資源準備
Demo下載:
點擊下載Demo-Day5.zip
點擊下載Demo-Day5-Homework.zip
一、還原Maven項目
這里提示大家用Demo-Day5.zip自己改
點擊下載Demo-Day5.zip
如何還原已經說過多次了,請參考之前的分享
二、在Eclipse中執行mvn clean package(痛點分享)
驗證微服務配置優先級關系
首先確保自己的工程已經還原,可運行,并且改過了在provider服務的pom文件
就是指導手冊中的【在provider服務的pom文件中加上復制依賴包和打可執行jar包的插件配置】
[執行mvn clean package,在target目錄下可以看到打好的jar包和對應的lib目錄。實際 部署到執行環境的時候需要把jar包和lib目錄同時復制過去。]
這句,不少朋友看到后,云里霧里
咱們可以在eclipse中實現
1、在Maven項目或者pom.xml上右鍵——>Run As ——>“Maven Build...”或者Run Configuration——>“Maven Build”
2、在“Goals”輸入框中輸入:clean package -X
3、查看打好的包
附? ?mvn命令若干:
mvn -h,不會用時,可尋求幫助。
mvn clean compile,將.java類編譯為.class文件;
mvn clean test, 執行單元測試。
本質上,還是執行了一個完整的生命周期,
clean:clean, resources:resources, compiler:compile, resources:testResources, compiler:testCompile
mvn clean package,進行打包。
mvn clean install?–Dmaven.test.skip
mvn clean install,將某jar包安裝到maven本地倉庫中。
mvn archetype:generate,快速的搭建項目骨架,輸入一些groupId/artifactId/version等信息,由mvn插件自動生成一些必要的依賴和項目骨架。
打包完成之后
在命令行中執行java –jar helloworld-provider-0.0.1-SNAPSHOT.jar,啟動服務。
跑啊跑.....
這時同時啟動consumer和provider服務后
【通過consumer調用該provider服務的sayHello方法,此時返回的前綴是Hello】
然后在控制臺用【Control + C】停止jar包的服務
3、 在jar包所在目錄下放置一份microservice.yaml配置文件,內容如下
hello: sayHelloPrefix:?"Hello(from?disk?file)"
重新啟動provider服務的jar包,此時得到的應答如下
然后在控制臺用【Control + C】停止jar包的服務
4、 設置環境變量hello_sayHelloPrefix=Hello(fromEnv),再次啟動服務
set?hello_sayHelloPrefix=Hello(fromEnv)
嗯,然后在Mac上不認?
對,那是因為指令不對,【指令千萬條,精準第一條】
Mac上設置環境變量,需要用
export?hello_sayHelloPrefix=Hello(fromEnv)
但...
嘿嘿,還是感謝華為云老師但指點,少一個單引號號【'】
export?hello_sayHelloPrefix='Hello(fromEnv)'
可以了,再次運行jar包
此時調用sayHello方法得到的應答如下
給配置項增加回調方法
1、在provider服務的HelloService類中增加一個sayHelloPrefix配置項的回調,使其在配置項被刷新時打印一行日志
別忘了加import引用
import?org.slf4j.Logger; import?org.slf4j.LoggerFactory;
private?static?final?Logger?LOGGER?=?LoggerFactory.getLogger(HelloService.class); private?DynamicStringProperty?sayHelloPrefix?=?DynamicPropertyFactory ??????.getInstance().getStringProperty("hello.sayHelloPrefix",?"" ??????????,?notifyConfigRefreshed()); private?Runnable?notifyConfigRefreshed()?{ ????return?()?->?LOGGER.info("config[hello.sayHelloPrefix]?changed?to?[{}]!",?sayHelloPrefix.getValue()); ??}
2、 啟動服務,在provider服務的動態配置頁面增加hello.sayHelloPrefix的配置
我們在華為云但CSE管理控制臺中進行配置
添加新的配置信息
配置項 hello.sayHelloPrefix
值: Hello(fromCC)
點擊確定之前先確認【provider】服務在運行
待provider服務實例從配置中心刷新配置項后,就會觸發回調方法打印日志
啟用和配置 accesslog
1、 開啟accesslog功能
這個地址是說明
Accesslog功能的說明文檔
https://docs.servicecomb.io/java-chassis/zh_CN/build-provider/access-log-configuration.html
開啟accesslog需要在microservice.yaml文件中做如下配置(這里使用了自定義的日志格式,沒有用默認配置):
注意是在provider服務工程中但microservice.yaml文件
2、 配置accesslog日志打印配置
默認的accesslog是單獨打印到一個access.log日志文件中的。這里我們為了實驗觀察的方便,
在provider項目的resources/config目錄下放置一份log4j.properties配置文件,覆蓋默認的配置,令accesslog的內容合并到普通業務日志中輸出。
點擊下載config.zip
3、 啟動服務,調用接口,可以看到日志中打印了accesslog
附件: config.zip 1.27KB 下載次數:19次
華為云APP 微服務引擎 CSE 微服務
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。