当前位置: 首页 > news >正文

网站上的幻灯片如何做深圳网页搜索排名提升

网站上的幻灯片如何做,深圳网页搜索排名提升,整站优化网站报价,网页制作的基本步骤背景 我们有多个系统#xff0c;每个系统一个集群#xff0c;每个集群都部署了自己的Spring Boot Admin#xff08;以下简称Admin#xff09;#xff0c;用起来不仅不方便#xff0c;私有化部署的时候还得多部署几个服务#xff0c;为了解决这个问题#xff0c;我想到…背景 我们有多个系统每个系统一个集群每个集群都部署了自己的Spring Boot Admin以下简称Admin用起来不仅不方便私有化部署的时候还得多部署几个服务为了解决这个问题我想到了是否可以用一个Admin同时监控多个集群这里集群指监控Nacos集群。 实现 通过查看Nacos的服务注册源码、Admin监控的服务发现源码最终得出结论重写NacosServiceManager、NamingService类即可实现。 为了监控多个Namespacenacos的服务发现配置通过分号分割即可为了区别与原来只能订阅单个Namespace将所有的重写类定义为Multixxx将自定义的MultiNacosServiceManager类定义为主要Bean MultiNacosServiceManager 这个类用来管理NamingService包括创建NamingServiceNamingMaintainService。 import com.alibaba.cloud.nacos.NacosServiceManager; import com.alibaba.nacos.api.NacosFactory; import com.alibaba.nacos.api.exception.NacosException; import com.alibaba.nacos.api.naming.NamingMaintainService; import com.alibaba.nacos.api.naming.NamingService; import com.alibaba.nacos.client.naming.NacosNamingService; import org.apache.commons.lang3.SerializationUtils;import java.util.*;import static com.alibaba.nacos.api.PropertyKeyConst.NAMESPACE;public class MultiNacosServiceManager extends NacosServiceManager {//namespace分隔符public static final String SEMICOLON ;;private MultiNacosNamingService multiNacosNamingService;Overridepublic NamingService getNamingService(Properties properties) {if (Objects.isNull(this.multiNacosNamingService)) {multiNacosNamingService buildNamingService(properties);}return multiNacosNamingService;}//这个服务就只取第一个了简单点Overridepublic NamingMaintainService getNamingMaintainService(Properties properties) {String namespace properties.getProperty(NAMESPACE);if (namespace.contains(SEMICOLON)) {String[] namespaces namespace.split(;);properties.setProperty(NAMESPACE, namespaces[0]);}return super.getNamingMaintainService(properties);}private MultiNacosNamingService buildNamingService(Properties properties) {if (Objects.isNull(multiNacosNamingService)) {synchronized (MultiNacosServiceManager.class) {if (Objects.isNull(multiNacosNamingService)) {try {String namespace properties.getProperty(NAMESPACE);if (namespace.contains(SEMICOLON)) {ListNacosNamingService multiNacosNamingService new ArrayList();//每个namespace创建一个namingServicefor (String ns : namespace.split(SEMICOLON)) {Properties newProperties SerializationUtils.clone(properties);newProperties.setProperty(NAMESPACE, ns);NacosNamingService namingService (NacosNamingService) NacosFactory.createNamingService(newProperties);multiNacosNamingService.add(namingService);}return new MultiNacosNamingService(multiNacosNamingService);} else {NacosNamingService namingService (NacosNamingService) NacosFactory.createNamingService(properties);return new MultiNacosNamingService(Collections.singletonList(namingService));}} catch (NacosException e) {throw new RuntimeException(e);}}}}return multiNacosNamingService;} }MultiNacosNamingService 将多个 nacosNamingService 组合为一个对外提供服务原有的NamingService 只支持单个namespace将原来有NamingService方法都重写为支持多个namespace。 import com.alibaba.nacos.api.exception.NacosException; import com.alibaba.nacos.api.naming.NamingService; import com.alibaba.nacos.api.naming.listener.EventListener; import com.alibaba.nacos.api.naming.pojo.Instance; import com.alibaba.nacos.api.naming.pojo.ListView; import com.alibaba.nacos.api.naming.pojo.ServiceInfo; import com.alibaba.nacos.api.selector.AbstractSelector; import com.alibaba.nacos.client.naming.NacosNamingService;import java.util.ArrayList; import java.util.List;import static de.codecentric.boot.admin.server.domain.values.StatusInfo.STATUS_DOWN; import static de.codecentric.boot.admin.server.domain.values.StatusInfo.STATUS_UP;/*** 将多个 nacosNamingService 组合为一个对外提供服务*/ public class MultiNacosNamingService implements NamingService {private ListNacosNamingService nacosNamingServices;public MultiNacosNamingService(ListNacosNamingService nacosNamingServices) {this.nacosNamingServices nacosNamingServices;}Overridepublic void registerInstance(String serviceName, String ip, int port) throws NacosException {for (NacosNamingService nacosNamingService : nacosNamingServices) {nacosNamingService.registerInstance(serviceName, ip, port);}}Overridepublic void registerInstance(String serviceName, String groupName, String ip, int port) throws NacosException {for (NacosNamingService nacosNamingService : nacosNamingServices) {nacosNamingService.registerInstance(serviceName, groupName, ip, port);}}Overridepublic void registerInstance(String serviceName, String ip, int port, String clusterName) throws NacosException {for (NacosNamingService nacosNamingService : nacosNamingServices) {nacosNamingService.registerInstance(serviceName, ip, port, clusterName);}}Overridepublic void registerInstance(String serviceName, String groupName, String ip, int port, String clusterName) throws NacosException {for (NacosNamingService nacosNamingService : nacosNamingServices) {nacosNamingService.registerInstance(serviceName, groupName, ip, port, clusterName);}}Overridepublic void registerInstance(String serviceName, Instance instance) throws NacosException {for (NacosNamingService nacosNamingService : nacosNamingServices) {nacosNamingService.registerInstance(serviceName, instance);}}Overridepublic void registerInstance(String serviceName, String groupName, Instance instance) throws NacosException {for (NacosNamingService nacosNamingService : nacosNamingServices) {nacosNamingService.registerInstance(serviceName, groupName, instance);}}Overridepublic void deregisterInstance(String serviceName, String ip, int port) throws NacosException {for (NacosNamingService nacosNamingService : nacosNamingServices) {nacosNamingService.deregisterInstance(serviceName, ip, port);}}Overridepublic void deregisterInstance(String serviceName, String groupName, String ip, int port) throws NacosException {for (NacosNamingService nacosNamingService : nacosNamingServices) {nacosNamingService.deregisterInstance(serviceName, groupName, ip, port);}}Overridepublic void deregisterInstance(String serviceName, String ip, int port, String clusterName) throws NacosException {for (NacosNamingService nacosNamingService : nacosNamingServices) {nacosNamingService.deregisterInstance(serviceName, ip, port, clusterName);}}Overridepublic void deregisterInstance(String serviceName, String groupName, String ip, int port, String clusterName) throws NacosException {for (NacosNamingService nacosNamingService : nacosNamingServices) {nacosNamingService.deregisterInstance(serviceName, groupName, ip, port, clusterName);}}Overridepublic void deregisterInstance(String serviceName, Instance instance) throws NacosException {for (NacosNamingService nacosNamingService : nacosNamingServices) {nacosNamingService.deregisterInstance(serviceName, instance);}}Overridepublic void deregisterInstance(String serviceName, String groupName, Instance instance) throws NacosException {for (NacosNamingService nacosNamingService : nacosNamingServices) {nacosNamingService.deregisterInstance(serviceName, groupName, instance);}}Overridepublic ListInstance getAllInstances(String serviceName) throws NacosException {ListInstance instances new ArrayList();for (NacosNamingService nacosNamingService : nacosNamingServices) {instances.addAll(nacosNamingService.getAllInstances(serviceName));}return instances;}Overridepublic ListInstance getAllInstances(String serviceName, String groupName) throws NacosException {ListInstance instances new ArrayList();for (NacosNamingService nacosNamingService : nacosNamingServices) {instances.addAll(nacosNamingService.getAllInstances(serviceName, groupName));}return instances;}Overridepublic ListInstance getAllInstances(String serviceName, boolean subscribe) throws NacosException {ListInstance instances new ArrayList();for (NacosNamingService nacosNamingService : nacosNamingServices) {instances.addAll(nacosNamingService.getAllInstances(serviceName, subscribe));}return instances;}Overridepublic ListInstance getAllInstances(String serviceName, String groupName, boolean subscribe) throws NacosException {ListInstance instances new ArrayList();for (NacosNamingService nacosNamingService : nacosNamingServices) {instances.addAll(nacosNamingService.getAllInstances(serviceName, groupName, subscribe));}return instances;}Overridepublic ListInstance getAllInstances(String serviceName, ListString clusters) throws NacosException {ListInstance instances new ArrayList();for (NacosNamingService nacosNamingService : nacosNamingServices) {instances.addAll(nacosNamingService.getAllInstances(serviceName, clusters));}return instances;}Overridepublic ListInstance getAllInstances(String serviceName, String groupName, ListString clusters) throws NacosException {ListInstance instances new ArrayList();for (NacosNamingService nacosNamingService : nacosNamingServices) {instances.addAll(nacosNamingService.getAllInstances(serviceName, groupName, clusters));}return instances;}Overridepublic ListInstance getAllInstances(String serviceName, ListString clusters, boolean subscribe) throws NacosException {ListInstance instances new ArrayList();for (NacosNamingService nacosNamingService : nacosNamingServices) {instances.addAll(nacosNamingService.getAllInstances(serviceName, clusters, subscribe));}return instances;}Overridepublic ListInstance getAllInstances(String serviceName, String groupName, ListString clusters, boolean subscribe) throws NacosException {ListInstance instances new ArrayList();for (NacosNamingService nacosNamingService : nacosNamingServices) {instances.addAll(nacosNamingService.getAllInstances(serviceName, groupName, clusters, subscribe));}return instances;}Overridepublic ListInstance selectInstances(String serviceName, boolean healthy) throws NacosException {ListInstance instances new ArrayList();for (NacosNamingService nacosNamingService : nacosNamingServices) {instances.addAll(nacosNamingService.selectInstances(serviceName, healthy));}return instances;}Overridepublic ListInstance selectInstances(String serviceName, String groupName, boolean healthy) throws NacosException {ListInstance instances new ArrayList();for (NacosNamingService nacosNamingService : nacosNamingServices) {instances.addAll(nacosNamingService.selectInstances(serviceName, groupName, healthy));}return instances;}Overridepublic ListInstance selectInstances(String serviceName, boolean healthy, boolean subscribe) throws NacosException {ListInstance instances new ArrayList();for (NacosNamingService nacosNamingService : nacosNamingServices) {instances.addAll(nacosNamingService.selectInstances(serviceName, healthy, subscribe));}return instances;}Overridepublic ListInstance selectInstances(String serviceName, String groupName, boolean healthy, boolean subscribe) throws NacosException {ListInstance instances new ArrayList();for (NacosNamingService nacosNamingService : nacosNamingServices) {instances.addAll(nacosNamingService.selectInstances(serviceName, groupName, healthy, subscribe));}return instances;}Overridepublic ListInstance selectInstances(String serviceName, ListString clusters, boolean healthy) throws NacosException {ListInstance instances new ArrayList();for (NacosNamingService nacosNamingService : nacosNamingServices) {instances.addAll(nacosNamingService.selectInstances(serviceName, clusters, healthy));}return instances;}Overridepublic ListInstance selectInstances(String serviceName, String groupName, ListString clusters, boolean healthy) throws NacosException {ListInstance instances new ArrayList();for (NacosNamingService nacosNamingService : nacosNamingServices) {instances.addAll(nacosNamingService.selectInstances(serviceName, groupName, clusters, healthy));}return instances;}Overridepublic ListInstance selectInstances(String serviceName, ListString clusters, boolean healthy, boolean subscribe) throws NacosException {ListInstance instances new ArrayList();for (NacosNamingService nacosNamingService : nacosNamingServices) {instances.addAll(nacosNamingService.selectInstances(serviceName, clusters, healthy, subscribe));}return instances;}Overridepublic ListInstance selectInstances(String serviceName, String groupName, ListString clusters, boolean healthy, boolean subscribe) throws NacosException {ListInstance instances new ArrayList();for (NacosNamingService nacosNamingService : nacosNamingServices) {instances.addAll(nacosNamingService.selectInstances(serviceName, groupName, clusters, healthy, subscribe));}return instances;}Overridepublic Instance selectOneHealthyInstance(String serviceName) throws NacosException {for (NacosNamingService nacosNamingService : nacosNamingServices) {Instance instance nacosNamingService.selectOneHealthyInstance(serviceName);if (instance ! null) {return instance;}}return null;}Overridepublic Instance selectOneHealthyInstance(String serviceName, String groupName) throws NacosException {for (NacosNamingService nacosNamingService : nacosNamingServices) {Instance instance nacosNamingService.selectOneHealthyInstance(serviceName, groupName);if (instance ! null) {return instance;}}return null;}Overridepublic Instance selectOneHealthyInstance(String serviceName, boolean subscribe) throws NacosException {for (NacosNamingService nacosNamingService : nacosNamingServices) {Instance instance nacosNamingService.selectOneHealthyInstance(serviceName, subscribe);if (instance ! null) {return instance;}}return null;}Overridepublic Instance selectOneHealthyInstance(String serviceName, String groupName, boolean subscribe) throws NacosException {for (NacosNamingService nacosNamingService : nacosNamingServices) {Instance instance nacosNamingService.selectOneHealthyInstance(serviceName, groupName, subscribe);if (instance ! null) {return instance;}}return null;}Overridepublic Instance selectOneHealthyInstance(String serviceName, ListString clusters) throws NacosException {for (NacosNamingService nacosNamingService : nacosNamingServices) {Instance instance nacosNamingService.selectOneHealthyInstance(serviceName, clusters);if (instance ! null) {return instance;}}return null;}Overridepublic Instance selectOneHealthyInstance(String serviceName, String groupName, ListString clusters) throws NacosException {for (NacosNamingService nacosNamingService : nacosNamingServices) {Instance instance nacosNamingService.selectOneHealthyInstance(serviceName, groupName, clusters);if (instance ! null) {return instance;}}return null;}Overridepublic Instance selectOneHealthyInstance(String serviceName, ListString clusters, boolean subscribe) throws NacosException {for (NacosNamingService nacosNamingService : nacosNamingServices) {Instance instance nacosNamingService.selectOneHealthyInstance(serviceName, clusters, subscribe);if (instance ! null) {return instance;}}return null;}Overridepublic Instance selectOneHealthyInstance(String serviceName, String groupName, ListString clusters, boolean subscribe) throws NacosException {for (NacosNamingService nacosNamingService : nacosNamingServices) {Instance instance nacosNamingService.selectOneHealthyInstance(serviceName, groupName, clusters, subscribe);if (instance ! null) {return instance;}}return null;}Overridepublic void subscribe(String serviceName, EventListener listener) throws NacosException {for (NacosNamingService nacosNamingService : nacosNamingServices) {nacosNamingService.subscribe(serviceName, listener);}}Overridepublic void subscribe(String serviceName, String groupName, EventListener listener) throws NacosException {for (NacosNamingService nacosNamingService : nacosNamingServices) {nacosNamingService.subscribe(serviceName, groupName, listener);}}Overridepublic void subscribe(String serviceName, ListString clusters, EventListener listener) throws NacosException {for (NacosNamingService nacosNamingService : nacosNamingServices) {nacosNamingService.subscribe(serviceName, clusters, listener);}}Overridepublic void subscribe(String serviceName, String groupName, ListString clusters, EventListener listener) throws NacosException {for (NacosNamingService nacosNamingService : nacosNamingServices) {nacosNamingService.subscribe(serviceName, groupName, clusters, listener);}}Overridepublic void unsubscribe(String serviceName, EventListener listener) throws NacosException {for (NacosNamingService nacosNamingService : nacosNamingServices) {nacosNamingService.unsubscribe(serviceName, listener);}}Overridepublic void unsubscribe(String serviceName, String groupName, EventListener listener) throws NacosException {for (NacosNamingService nacosNamingService : nacosNamingServices) {nacosNamingService.unsubscribe(serviceName, groupName, listener);}}Overridepublic void unsubscribe(String serviceName, ListString clusters, EventListener listener) throws NacosException {for (NacosNamingService nacosNamingService : nacosNamingServices) {nacosNamingService.unsubscribe(serviceName, clusters, listener);}}Overridepublic void unsubscribe(String serviceName, String groupName, ListString clusters, EventListener listener) throws NacosException {for (NacosNamingService nacosNamingService : nacosNamingServices) {nacosNamingService.unsubscribe(serviceName, groupName, clusters, listener);}}Overridepublic ListViewString getServicesOfServer(int pageNo, int pageSize) throws NacosException {ListViewString listView new ListView();ListString data new ArrayList();for (NacosNamingService nacosNamingService : nacosNamingServices) {data.addAll(nacosNamingService.getServicesOfServer(pageNo, pageSize).getData());}listView.setData(data);return listView;}Overridepublic ListViewString getServicesOfServer(int pageNo, int pageSize, String groupName) throws NacosException {ListViewString listView new ListView();ListString data new ArrayList();for (NacosNamingService nacosNamingService : nacosNamingServices) {data.addAll(nacosNamingService.getServicesOfServer(pageNo, pageSize, groupName).getData());}listView.setData(data);return listView;}Overridepublic ListViewString getServicesOfServer(int pageNo, int pageSize, AbstractSelector selector) throws NacosException {ListViewString listView new ListView();ListString data new ArrayList();for (NacosNamingService nacosNamingService : nacosNamingServices) {data.addAll(nacosNamingService.getServicesOfServer(pageNo, pageSize, selector).getData());}listView.setData(data);return listView;}Overridepublic ListViewString getServicesOfServer(int pageNo, int pageSize, String groupName, AbstractSelector selector) throws NacosException {ListViewString listView new ListView();ListString data new ArrayList();for (NacosNamingService nacosNamingService : nacosNamingServices) {data.addAll(nacosNamingService.getServicesOfServer(pageNo, pageSize, groupName, selector).getData());}listView.setData(data);return listView;}Overridepublic ListServiceInfo getSubscribeServices() {ListServiceInfo data new ArrayList();for (NacosNamingService nacosNamingService : nacosNamingServices) {data.addAll(nacosNamingService.getSubscribeServices());}return data;}Overridepublic String getServerStatus() {for (NacosNamingService nacosNamingService : nacosNamingServices) {String serverStatus nacosNamingService.getServerStatus();if (STATUS_DOWN.equals(serverStatus)) {return STATUS_DOWN;}}return STATUS_UP;}Overridepublic void shutDown() throws NacosException {for (NacosNamingService nacosNamingService : nacosNamingServices) {nacosNamingService.shutDown();}} }MultiNacosServiceAutoConfiguration 将MultiNacosServiceManager 设置为自动加载Bean激活为主要的Bean。 import com.alibaba.cloud.nacos.ConditionalOnNacosDiscoveryEnabled; import com.alibaba.cloud.nacos.NacosServiceManager; import org.springframework.cloud.client.ConditionalOnDiscoveryEnabled; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Primary;Configuration(proxyBeanMethods false) ConditionalOnDiscoveryEnabled ConditionalOnNacosDiscoveryEnabled public class MultiNacosServiceAutoConfiguration {BeanPrimarypublic NacosServiceManager multiNacosServiceManager() {return new MultiNacosServiceManager();} }总结 最终你能发现admin监控会同时注册到多个集群中admin服务列表能看到多个集群的服务。另外要注意的是要适当调整admin监控服务的内存毕竟监控的服务变多了。 通过一个月的运行目前admin监控运行稳定相关功能一切正常。 其他企业级监控 Prometheus 系列文章 Prometheus 的介绍和安装直观感受PromQL及其数据类型PromQL之选择器和运算符PromQL之函数Prometheus 告警机制介绍及命令解读Prometheus 告警模块配置深度解析Prometheus 配置身份认证Prometheus 动态拉取监控服务Prometheus 监控云Mysql和自建Mysql Grafana 系列文章版本OOS v9.3.1 Grafana 的介绍和安装Grafana监控大屏配置参数介绍一Grafana监控大屏配置参数介绍二Grafana监控大屏可视化图表Grafana 查询数据和转换数据Grafana 告警模块介绍Grafana 告警接入飞书通知
http://www.zqtcl.cn/news/572691/

相关文章:

  • lamp网站开发 pdf纯html5 网站
  • 白云区同和网站建设购物网站怎么建立
  • 公司制作网站需要espcms易思企业网站管理系统
  • 开发一个网站需要哪些步骤广西建设主管部门网站
  • 网站建设培训西安制作微信小程序开发
  • delphi 做直播网站wordpress 商务
  • 各大网站的软文怎么做wordpress教程菜鸟教程
  • 破解php网站后台账号密码wordpress二维码 插件下载
  • 石家庄哪里可以做网站做网站用的pm是啥
  • 租服务器网站有趣的设计网站
  • 建设部监理网站官网信阳市两学一做网站
  • 网站被攻击会影响收录么微信网站 影楼
  • 社区网站开发search搜索引擎
  • 章丘做网站哪家强原阳网站建设
  • 做网站前期构架图中国建设银行手机银行网站
  • tp5企业网站开发百度云青岛vi设计公司
  • 网站建设实验原理建站之星 discuz
  • 购物网站如何备案建设部施工合同范本
  • 网站模板安装建站之星凡客
  • 有没有电脑做兼职的网站吗网站和域名区别
  • 免费html网页模板素材网站修改wordpress后台登陆
  • 男女做啊免费视频网站网站做全景图
  • 网站域名 安全网站开发语言一般是用什么
  • 麦包包的网站建设分析网站开发一般要用到哪些软件有哪些
  • 关于内网站建设的请示天津住房与城乡建设厅网站首页
  • 企业网站免费源码装修公司需要多少钱
  • 沈阳建设网站费用群晖wordpress打不开
  • jsp网站开发 pdf建设植绒衣架网站
  • 做网站接单的网站做外贸网站价位
  • 金融商城快捷申请网站模板下载汕头网站建设和运营