存在的問題
平時我們在本地調試的時候,如果涉及到多個服務的時候,我們需要啓動所有相關的服務,這是一個很不爽的過程。那麼有沒有隻需要啓動我要調試的服務,其他服務直接調用測試環境或者開發環境的就可以了呢?
常規我們的做法
把application.yml 中的 active 改成test
就可以享受測試環境的所有的服務。但是這會有一個問題,你的服務同時也暴露出去,測試人員在測試的時候調用到你本地不穩定的服務(可能在開發中)。以爲服務又出bug 或者崩了
測試同事此時的心情應該是跟下面一樣的:開發小哥,什麼垃圾系統這麼不穩定,來來來,我們先出去幹一架
真是世界上沒有免費的午餐。這個時候有沒有更好的解決方案呢?我可以使用線上的服務,我又不暴露我本地的服務給測試環境。
dubbo 是有的,Spring Cloud 不可能沒有啊,查了一下
還真有。扯淡那麼多,趕緊給我來重點。。。。。。
Talk is cheap.Show me your code
完美做法
- 在配置文件上配置
spring.cloud.service-registry.auto-registration.enabled=false
- 在你的啓動類配置
@EnableDiscoveryClient(autoRegister=false)
以上兩種方案,選其一。
好了完美收工,祝你在spring clould 的開發的路上幸福,我又要去小程序《面試bat》上刷一波面試題了
本人博客:http://blog.interviewbat.com/