使用可能なサービス「ヌル」は正しい必ずレジストリの設定を行ってください、見つからなかったときにSeata最近の研究では、エラーを報告し、そこにコンフィギュレーションファイル内のサービス名は、方法はソースコードだけでなることはできません
环境springcloud Hoxton.SR3 + Springboot 2.2.5.RELEASE + seata1.1 + nacos1.4
seataパッケージのダウンロードには、遅すぎるコンパイラのバージョン1.2-SNAPSHOTを直接使用することです
私は2つの理由から、この問題が発生しました。
configureの公式ウェブサイトへの使用はありません1.、直接、他の誰かのプロファイルインポートを取ります
2の導入によって引き起こされません依存性
理由で見てみましょう
エラーソースseata1.0
io.seata.core.rpc.netty.NettyClientChannelManager#再接続
ボイド再接続(文字列transactionServiceGroup){ リストの<string> availList = NULL; {試みる availList = getAvailServerList(transactionServiceGroup)。 }キャッチ(例外e){ LOGGER.error( "利用可能なサーバ取得に失敗しました:{}"、e.getMessage()、e)を、 リターン; } IF(CollectionUtils.isEmpty(availList)){ 文字列サービスグループ= RegistryFactory.getInstance() .getServiceGroup(transactionServiceGroup)。 LOGGER.error(、サービスグループを「なし利用可能なサービスは、 『{}』が見つかり、必ずレジストリの設定が正しいてください」); リターン; 以下のための(文字列serverAddressで:availList){ 試み{ acquireChannel(serverAddressで)。 }キャッチ(例外e){ LOGGER.error( "{} {}原因に接続できません:{}"、FrameworkErrorCode.NetConnect.getErrCode()、serverAddressで、e.getMessage()、E)。 } } }
io.seata.discovery.registry.RegistryService#getServiceGroup
文字列PREFIX_SERVICE_MAPPINGは= "vgroup_mapping。";
/ **
*定数PREFIX_SERVICE_ROOT。
* /
文字列PREFIX_SERVICE_ROOT = "サービス"。
/ **
*定数CONFIG_SPLIT_CHAR。
* /
文字列CONFIG_SPLIT_CHAR = "";
ストリングgetServiceGroup(文字列キー){デフォルト
構成設定= ConfigurationFactory.getInstance()。
config.getConfig(PREFIX_SERVICE_ROOT + CONFIG_SPLIT_CHAR + PREFIX_SERVICE_MAPPING +キー)を返します。
}
赤い部分の上にバージョン1.1の後に、根本的な原因であります
vgroupMappingにvgroup_mapping
直接次のスクリプトディレクトリの下で良好なプロファイルのインポートを見つけるために、ソースコードを変更seataインポートされた構成では誰もが、ナコス-config.txtを前に1.1も削除ナコス後
ナコスディレクトリ上記nacos-config.sh
あなたは、バージョン1.1以上を使用するのであれば、グループ名を使用することを忘れないでくださいseata
vgroupMapping、およびvgroup_mappingと1.0の前に、ああ含まれているこのすべてが一緒に変更する必要があることを覚えて、
もう一つの理由は、あなたが生じる依存春-クラウドアリババ- seataの導入をブロックしないということです
興味のある学生は、513 650 703を学ぶために一緒に参加することを歓迎しています