web123456

Sub-release database and table--shardingsphere integrates Nacos to achieve hot update data sources

  • import ;
  • import ;
  • import ;
  • import ;
  • import ;
  • import ;
  • import .slf4j.Slf4j;
  • import ;
  • import ;
  • import ;
  • import ;
  • import ;
  • import ;
  • import ;
  • import ;
  • import ;
  • import ;
  • @Slf4j
  • public final class NacosRegistryCenter implements ConfigCenterRepository, RegistryCenterRepository {
  • private ConfigService configService;
  • private NacosProperties nacosProperties;
  • @Getter
  • @Setter
  • private Properties properties = new Properties();
  • public static final String ACCESS_KEY = "access-key";
  • public static final String SECRET_KEY = "secret-key";
  • @Override
  • public void persistEphemeral(String s, String s1) {
  • ("persistEphemeral: " + s + "," + s1);
  • }
  • @Override
  • public void init(CenterConfiguration config) {
  • try {
  • final String accessKey = ().getProperty(ACCESS_KEY);
  • final String secretKey = ().getProperty(SECRET_KEY);
  • (accessKey, "access-key can not be null");
  • (secretKey, "secret-key can not be null");
  • nacosProperties = new NacosProperties(properties);
  • Properties properties = new Properties();
  • ("serverAddr", ());
  • ("namespace", null == () ? "" : ());
  • ("accessKey", accessKey);
  • ("secretKey", secretKey);
  • configService = (properties);
  • } catch (final NacosException ex) {
  • ("exception for: {}", ());
  • }
  • }
  • /**
  • * Get data from nacos instance.
  • *
  • * @param key key of data
  • * @return value of data
  • */
  • @Override
  • public String get(final String key) {
  • try {
  • String dataId = ConfigKeyUtils.path2Key(key);
  • String group = ();
  • long timeoutMs = ();
  • return (dataId, group, timeoutMs);
  • } catch (final NacosException ex) {
  • ("Nacos get config value exception for: {}", ());
  • return null;
  • }
  • }
  • /**
  • * Get node's sub-nodes list.
  • *
  • * @param key key of data
  • * @return sub-nodes name list
  • */
  • @Override
  • public List<String> getChildrenKeys(final String key) {
  • return null;
  • }
  • /**
  • * Persist data.
  • *
  • * @param key key of data
  • * @param value value of data
  • */
  • @Override
  • public void persist(final String key, final String value) {
  • try {
  • String dataId = ConfigKeyUtils.path2Key(key);
  • String group = ();
  • (dataId, group, value);
  • } catch (final NacosException ex) {
  • ("Nacos persist config exception for: {}", ());
  • }
  • }
  • /**
  • * Watch key or path of the config server.
  • *
  • * @param key key of data
  • * @param dataChangedEventListener data changed event listener
  • */
  • @Override
  • public void watch(final String key, final DataChangedEventListener dataChangedEventListener) {
  • try {
  • ("watch key:" + key);
  • String dataId = ConfigKeyUtils.path2Key(key);
  • String group = ();
  • (dataId, group, new Listener() {
  • @Override
  • public Executor getExecutor() {
  • return null;
  • }
  • @Override
  • public void receiveConfigInfo(final String configInfo) {
  • (new DataChangedEvent(key, configInfo, ));
  • }
  • });
  • } catch (final NacosException ex) {
  • ("Nacos watch key exception for: {}", ());
  • }
  • }
  • @Override
  • public void close() {
  • }
  • /**
  • * Get algorithm type.
  • *
  • * @return type
  • */
  • @Override
  • public String getType() {
  • return "nacos";
  • }
  • //@Override
  • //public String get(final String key) {
  • // return getDirectly(key);
  • //}
  • //
  • //@Override
  • //public String getDirectly(final String key) {
  • // try {
  • // String dataId = ("/", ".");
  • // String group = ("group", "SHARDING_SPHERE_DEFAULT_GROUP");
  • // long timeoutMs = (("timeout", "3000"));
  • // return (dataId, group, timeoutMs);
  • // } catch (final NacosException ex) {
  • // ("exception for: {}", ());
  • // return null;
  • // }
  • //}
  • //
  • //@Override
  • //public boolean isExisted(final String key) {
  • // return !(getDirectly(key));
  • //}
  • //
  • //@Override
  • //public List<String> getChildrenKeys(final String key) {
  • // return null;
  • //}
  • //
  • //@Override
  • //public void persist(final String key, final String value) {
  • // update(key, value);
  • //}
  • //
  • //@Override
  • //public void update(final String key, final String value) {
  • // try {
  • // String dataId = ("/", ".");
  • // String group = ("group", "SHARDING_SPHERE_DEFAULT_GROUP");
  • // (dataId, group, value);
  • // } catch (final NacosException ex) {
  • // ("exception for: {}", ());
  • // }
  • //}
  • //
  • //@Override
  • //public void persistEphemeral(final String key, final String value) {
  • //
  • //}
  • //
  • //@Override
  • //public void watch(final String key, final DataChangedEventListener dataChangedEventListener) {
  • // try {
  • // String dataId = ("/", ".");
  • // String group = ("group", "SHARDING_SPHERE_DEFAULT_GROUP");
  • // (dataId, group, new Listener() {
  • //
  • // @Override
  • // public Executor getExecutor() {
  • // return null;
  • // }
  • //
  • // @Override
  • // public void receiveConfigInfo(final String configInfo) {
  • // (new DataChangedEvent(key, configInfo, ));
  • // }
  • // });
  • // } catch (final NacosException ex) {
  • // ("exception for: {}", ());
  • // }
  • //}
  • //
  • //@Override
  • //public void close() {
  • //}
  • //
  • //
  • //@Override
  • //public String getType() {
  • // return "nacos";
  • //}
  • }