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

东莞网站建设制作公司排名网页设计软件介绍

东莞网站建设制作公司排名,网页设计软件介绍,网站维护都要做什么,无锡建设招标网站Eureka启动#xff0c;原生启动与SpringCloudEureka启动异同 我们先看看作为原生的EurekaServer启动的过程#xff0c;作为一个Servlet应用#xff0c;他的启动入口就是他的主要ServletContextListener类#xff08;这里是EurekaBootStrap#xff09;的contextInitialize…Eureka启动原生启动与SpringCloudEureka启动异同 我们先看看作为原生的EurekaServer启动的过程作为一个Servlet应用他的启动入口就是他的主要ServletContextListener类这里是EurekaBootStrap的contextInitialized方法 EurekaServerBootstrap Override public void contextInitialized(ServletContextEvent event) { try { initEurekaEnvironment(); initEurekaServerContext(); ServletContext sc event.getServletContext();sc.setAttribute(EurekaServerContext.class.getName(), serverContext); } catch (Throwable e) {logger.error(Cannot bootstrap eureka server :, e);throw new RuntimeException(Cannot bootstrap eureka server :, e); }} 可以看出主要做了两件事initEurekaEnvironment()与initEurekaServerContext() 对于initEurekaEnvironment()只是初始化一些必要的环境变量由于Eureka配置基于Spring的配置中间件Archaius这些环境变量都是针对这个配置中间件使用的。 initEurekaServerContext()是我们重点需要关心的它初始化了EurekaServer需要的所有组件 protected void initEurekaServerContext() throws Exception { EurekaServerConfig eurekaServerConfig new DefaultEurekaServerConfig(); //设置json与xml序列化工具 JsonXStream.getInstance().registerConverter(new V1AwareInstanceInfoConverter(), XStream.PRIORITY_VERY_HIGH); XmlXStream.getInstance().registerConverter(new V1AwareInstanceInfoConverter(), XStream.PRIORITY_VERY_HIGH); logger.info(Initializing the eureka client...); logger.info(eurekaServerConfig.getJsonCodecName()); ServerCodecs serverCodecs new DefaultServerCodecs(eurekaServerConfig);ApplicationInfoManager applicationInfoManager null;//初始化EurekaClientEurekaClient用来与其他EurekaServer进行交互 //有可能通过guice初始化Eureka这时eurekaClient和ApplicationInfoManager通过依赖注入先被初始化 if (eurekaClient null) {EurekaInstanceConfig instanceConfig isCloud(ConfigurationManager.getDeploymentContext())? new CloudInstanceConfig(): new MyDataCenterInstanceConfig();applicationInfoManager new ApplicationInfoManager(instanceConfig, new EurekaConfigBasedInstanceInfoProvider(instanceConfig).get());EurekaClientConfig eurekaClientConfig new DefaultEurekaClientConfig();eurekaClient new DiscoveryClient(applicationInfoManager, eurekaClientConfig); } else {applicationInfoManager eurekaClient.getApplicationInfoManager(); }//初始化PeerAwareInstanceRegistry, 这个类里面的方法就是与集群内其他EurekaServer实例保持业务同步的机制 PeerAwareInstanceRegistry registry; if (isAws(applicationInfoManager.getInfo())) {registry new AwsInstanceRegistry(eurekaServerConfig,eurekaClient.getEurekaClientConfig(),serverCodecs,eurekaClient);awsBinder new AwsBinderDelegate(eurekaServerConfig, eurekaClient.getEurekaClientConfig(), registry, applicationInfoManager);awsBinder.start(); } else {registry new PeerAwareInstanceRegistryImpl(eurekaServerConfig,eurekaClient.getEurekaClientConfig(),serverCodecs,eurekaClient); }//初始化PeerEurekaNodes里面有定时维护Eureka集群的业务逻辑 PeerEurekaNodes peerEurekaNodes getPeerEurekaNodes(registry,eurekaServerConfig,eurekaClient.getEurekaClientConfig(),serverCodecs,applicationInfoManager );//初始化EurekaServer上下文 serverContext new DefaultEurekaServerContext(eurekaServerConfig,serverCodecs,registry,peerEurekaNodes,applicationInfoManager );EurekaServerContextHolder.initialize(serverContext);serverContext.initialize(); logger.info(Initialized server context);//从其他节点中读取注册信息并开放服务注册 // Copy registry from neighboring eureka node int registryCount registry.syncUp(); registry.openForTraffic(applicationInfoManager, registryCount);// Register all monitoring statistics. EurekaMonitors.registerAllStats();} 总结下来总共如下几点 1.初始化并设置序列化反序列化工具 2.初始化通信客户端EurekaClient 3.初始化集群通信类PeerAwareInstanceRegistry与PeerEurekaNodes 4.初始化EurekaServer上下文serverContext 5.从其他节点中读取注册信息并开放服务注册 然后由于原生的EurekaServer利用Jersey框架初始化restApi这里还有 6.载入Jersey初始化Restful服务api 对于胶水代码实现了大致同样的但是略微有些区别的功能 一、 Server 有哪些功能: 提供服务注册功能。 消费者可以获取服务列表。 服务可以续约。 Server 集群之间的数据共享二、 提供服务注册功能 我们使用 EurekaServer 的时候需要在启动类上加入 EnableEurekaServer注解这个注解肯定就是我们研究的入口。EnableEurekaServer 类 /** Annotation to activate Eureka Server related configuration.{link EurekaServerAutoConfiguration}author Dave Syerauthor Biju Kunjummen */ Target(ElementType.TYPE) Retention(RetentionPolicy.RUNTIME) Documented Import(EurekaServerMarkerConfiguration.class) public interface EnableEurekaServer { } EurekaServerAutoConfiguration Configuration Import(EurekaServerInitializerConfiguration.class) ConditionalOnBean(EurekaServerMarkerConfiguration.Marker.class) EnableConfigurationProperties({ EurekaDashboardProperties.class, InstanceRegistryProperties.class }) PropertySource(“classpath:/eureka/server.properties”) public class EurekaServerAutoConfiguration extends WebMvcConfigurerAdapter{ … } EurekaServerInitializerConfiguration 由于实现了SmartLifecycle, 初始化启动start()方法 额外新创建一个线程初始化initEurekaServerContext() , 发布事件等工作 Configuration public class EurekaServerInitializerConfiguration implements ServletContextAware, SmartLifecycle, Ordered { Override public void start() { new Thread(new Runnable() { Override public void run() { try { // TODO: is this class even needed now? eurekaServerBootstrap.contextInitialized( EurekaServerInitializerConfiguration.this.servletContext); log.info(“Started Eureka Server”); publish(new EurekaRegistryAvailableEvent(getEurekaServerConfig()));EurekaServerInitializerConfiguration.this.running true;publish(new EurekaServerStartedEvent(getEurekaServerConfig()));}catch (Exception ex) {// Help!log.error(Could not initialize Eureka servlet context, ex);}}}).start(); }} EurekaServerAutoConfiguration 中注入EurekaServerContext Bean public EurekaServerContext eurekaServerContext(ServerCodecs serverCodecs,PeerAwareInstanceRegistry registry, PeerEurekaNodes peerEurekaNodes) {return new DefaultEurekaServerContext(this.eurekaServerConfig, serverCodecs,registry, peerEurekaNodes, this.applicationInfoManager); }在初始化化DefaultEurekaServerContext 类的时候会初始化initialize方法是因为在此方法上面PostConstruct注解. peerEurekaNodes.start() 中。使用单定时任务线程池维护eureka节点 PostConstruct Override public void initialize() {logger.info(Initializing ...);peerEurekaNodes.start();try {registry.init(peerEurekaNodes);} catch (Exception e) {throw new RuntimeException(e);}logger.info(Initialized); }
http://www.pierceye.com/news/985881/

相关文章:

  • php企业网站开发实验总结服务器
  • 织梦网站文章内容模板荣耀商城
  • seo 网站太小平面设计师招聘广告文案
  • 凡科网站建设桂林网站开发m0773
  • 做跨境都有哪些网站做电影类网站
  • 琼海商城网站建设东莞网站建设价位
  • 装饰网站建设重要性云服务器 多个网站
  • 邯郸市城乡建设管理局网站小米商城wordpress
  • 河北中石化建设网站html用户登录注册页面代码
  • 如何在网站后台备份数据库表设计本家装
  • 网站开发绑定qq企业域名注册
  • nas做网站网站安全建设工作总结
  • 淮北网站建设费用男女做暖暖到网站
  • wordpress站点管理浙江东南网架公司
  • 做外贸用什么搜索网站企业贷款政策最新消息2022
  • 各大网站创始人株洲网站建设报价方案
  • 想做网站多少钱wordpress数据连接失败1223
  • 株洲建设网站公司个人网站建设简历
  • 地方网站系统wordpress管理入口
  • 个人做网站开发指标开发板是什么东西
  • 国家住房与城乡建设部网站国内比较知名的大型门户网站
  • 网站怎么做音乐播放器大众公司网页设计
  • 网站开发地图导航页面广州公司网站建设公司
  • php网站怎么建设快速搭建网站的工具有哪些
  • 百度做的网站后台怎么更新网站要学什么
  • 做it人经常逛的网站国通快速建站
  • 网站标题会影响吗wordpress改域名修改哪里
  • 做音乐网站需要版权么工业设计图片产品
  • 外包网站问些什么问题浙江省信息港成绩查询
  • 手机网站怎么dw做官方网站下载打印机的驱动