springcloud本地服務(wù)不注冊到注冊中心的解決方案
開發(fā)人員本地的服務(wù)如果注冊到服務(wù)器的注冊中心,服務(wù)器上的服務(wù)如果調(diào)用到開發(fā)本地的服務(wù)會調(diào)用不通,影響大家的開發(fā)效率。
以往為了不把本地服務(wù)注冊到注冊中心,會采用以下幾種處理方式:
1、修改服務(wù)名,例如:將user-service修改為user-service-double,這樣別的服務(wù)就不會調(diào)用到開發(fā)人員本地注冊上去的服務(wù)了
2、修改是否注冊到注冊中心的配置參數(shù)為false:
-Dspring.cloud.service-registry.auto-registration.enabled=false
第一種方案容易出現(xiàn)把修改后的service誤提交到git的情況,導(dǎo)致測試、生產(chǎn)注冊的服務(wù)名錯誤
第二種方案需要每個開發(fā)同學(xué)都手動到IDE配置一個啟動參數(shù),開發(fā)人員過多(100+)不能保證每個同學(xué)都執(zhí)行到位
新方案:服務(wù)啟動時判斷操作系統(tǒng)類型,如果是Linux則注冊服務(wù),如果不是則不注冊(本地服務(wù)都是windows、mac系統(tǒng))將Processor處理類放入基礎(chǔ)包中,這樣每個服務(wù)都引用到,不需要每個開發(fā)同學(xué)都去處理本地服務(wù)不注冊問題。
import org.springframework.boot.SpringApplication;
import org.springframework.boot.context.config.ConfigDataEnvironmentPostProcessor;
import org.springframework.boot.env.EnvironmentPostProcessor;
import org.springframework.core.annotation.Order;
import org.springframework.core.env.ConfigurableEnvironment;
import org.springframework.core.env.MapPropertySource;
import org.springframework.util.StringUtils;
import java.util.HashMap;
import java.util.Map;
/**
* 在spring上下文構(gòu)建之前可以設(shè)置一些系統(tǒng)配置
* 可以在創(chuàng)建應(yīng)用程序上下文之前,添加或者修改環(huán)境配置。
*
* @author double
* @Date 2022/1/26 11:43 上午
*/
@Order(ConfigDataEnvironmentPostProcessor.ORDER + 1)
public class CustomEnvironmentPostProcessor implements EnvironmentPostProcessor {
private static final String PROPERTY_SOURCE_NAME = "discoveryProperties";
private static final String SERVICE_REGISTRY_CONFIG_KEY = "spring.cloud.service-registry.auto-registration.enabled";
@Override
public void postProcessEnvironment(ConfigurableEnvironment environment,
SpringApplication application) {
String serviceRegistry = environment.getProperty(SERVICE_REGISTRY_CONFIG_KEY);
if(!StringUtils.hasText(serviceRegistry)) {
boolean isLinux = System.getProperty("os.name").toLowerCase().contains("linux");
Map<String, Object> map = new HashMap<>(1);
map.put(SERVICE_REGISTRY_CONFIG_KEY, isLinux);
MapPropertySource propertySource = new MapPropertySource(PROPERTY_SOURCE_NAME, map);
environment.getPropertySources().addLast(propertySource);
}
}
}到此這篇關(guān)于springcloud本地服務(wù)不注冊到注冊中心的文章就介紹到這了,更多相關(guān)springcloud注冊中心內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- SpringCloud中的Eureka注冊中心詳細(xì)解讀
- SpringCloud zookeeper作為注冊中心使用介紹
- SpringCloud注冊中心之consul詳細(xì)講解使用方法
- SpringCloud?Eureka服務(wù)注冊中心應(yīng)用入門詳解
- SpringBoot項(xiàng)目改為SpringCloud項(xiàng)目使用nacos作為注冊中心的方法
- Java之SpringCloud nocos注冊中心講解
- 淺析SpringCloud Alibaba-Nacos 作為注冊中心示例代碼
- Springcloud-nacos實(shí)現(xiàn)配置和注冊中心的方法
- springcloud實(shí)現(xiàn)注冊中心Eureka
- SpringCloud兩種注冊中心的實(shí)現(xiàn)
相關(guān)文章
Spring?Boot?教程之創(chuàng)建項(xiàng)目的三種方式
這篇文章主要分享了Spring?Boot?教程之創(chuàng)建項(xiàng)目的三種方式,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下2022-05-05
Java內(nèi)存劃分:運(yùn)行時數(shù)據(jù)區(qū)域
聽說Java運(yùn)行時環(huán)境的內(nèi)存劃分是挺進(jìn)BAT的必經(jīng)之路,這篇文章主要給大家介紹了關(guān)于Java運(yùn)行時數(shù)據(jù)區(qū)域(內(nèi)存劃分)的相關(guān)資料,需要的朋友可以參考下2021-07-07
iOS獲取AppIcon and LaunchImage''s name(app圖標(biāo)和啟動圖片名字)
這篇文章主要介紹了iOS獲取AppIcon and LaunchImage's name(app圖標(biāo)和啟動圖片名字)的相關(guān)資料,非常不錯,具有參考借鑒價值,感興趣的朋友一起學(xué)習(xí)吧2016-08-08
詳解Java面向?qū)ο笾鄳B(tài)的原理與實(shí)現(xiàn)
多態(tài)是指不同的子類在繼承父類后分別都重寫覆蓋了父類的方法,即父類同一個方法,在繼承的子類中表現(xiàn)出不同的形式。本文將詳解多態(tài)的原理與實(shí)現(xiàn),感興趣的可以學(xué)習(xí)一下2022-05-05
String類型轉(zhuǎn)localDate,date轉(zhuǎn)localDate的實(shí)現(xiàn)代碼
這篇文章主要介紹了String類型轉(zhuǎn)localDate,date轉(zhuǎn)localDate的實(shí)現(xiàn)代碼,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-08-08
java實(shí)現(xiàn)Excel轉(zhuǎn)換為圖片
在實(shí)際開發(fā)過程中,經(jīng)常會有這樣的需求,需要將Excel表格或特定區(qū)域轉(zhuǎn)換為圖片,所以小編今天就來為大家介紹一下如何使用Java將Excel轉(zhuǎn)化為圖片吧2023-10-10

