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

洋县建设银行网站怎样用文档做网站首页

洋县建设银行网站,怎样用文档做网站首页,电话营销话术,中国石油工程建设协会网站这是一篇让你受益匪浅的文章#xff0c;点个关注交流一下吧~ PowerJob如何使用#xff0c;官方文档已经说的很详细了#xff0c;即使没学过计算机的人#xff0c;按照那上面的步骤来也是可以搭建出一个可以使用的例子来#xff0c;所以今天就不在这里重复前人的工作#… 这是一篇让你受益匪浅的文章点个关注交流一下吧~ PowerJob如何使用官方文档已经说的很详细了即使没学过计算机的人按照那上面的步骤来也是可以搭建出一个可以使用的例子来所以今天就不在这里重复前人的工作直接开始就开始将这个源代码中的原理吧。 powerjob框架主要分成两个分部server和worker这两部分需要分别去启动而且需要先启动server后启动worker否则worker会因为找不到可用的server而启动失败。作为一个server启动的时候工作自然是非常繁重的主要有以下几个步骤 读取配置文件 启动Akka服务 启动Vertx服务 启动Spring 详细的启动代码如下所示 private static final String TIPS \n\n ******************* PowerJob Tips *******************\n 如果应用无法启动我们建议您仔细阅读以下文档来解决:\n if server cant startup, we recommend that you read the documentation to find a solution:\n https://www.yuque.com/powerjob/guidence/problem\n ******************* PowerJob Tips *******************\n\n;public static void main(String[] args) {pre();//下方的私有静态方法AkkaStarter.init();//启动AkkaVertXStarter.init();//启动Vertx//启动Springtry {SpringApplication.run(PowerJobServerApplication.class, args);} catch (Throwable t) {log.error(TIPS);throw t;} }private static void pre() {log.info(TIPS);//将上方的常量字符串打印出来PropertyUtils.init();//读取配置文件 } 读取配置文件 PropertyUtils.init();//读取配置文件 这一步特别简单仅仅涉及到server.common.utils包中的PropertyUtils。主要代码段如下 public static void init() {URL propertiesURL PropertyUtils.class.getClassLoader().getResource(application.properties);Objects.requireNonNull(propertiesURL);try (InputStream is propertiesURL.openStream()) {PROPERTIES.load(is);}catch (Exception e) {ExceptionUtils.rethrow(e);} } 因为代码也不是很多就直接把该方法的所有代码全部展示出来。 代码中第二行方法里第一行有这么一段代码 PropertyUtils.class.getClassLoader().getResource(application.properties); 这个代码就是读取配置文件中的内容下面是powerjob的文件目录层次看图就知道该段代码到底读的是哪一部分。 说句实话最开始的时候我认为读取的是上面红色箭头指的地方因为他代码里getResource这个地方我认为就是读取resource文件夹下面的文件但是.getClassLoader无法解释后来自己跑一下这个代码就明白了读取的是编译完的文件路径而不是编译之前的路径。 读取的和配置文件里面的一模一样一条不多一条不少~springboot正常也会读取配置文件这里为什么要单独执行一下读取作用是什么在这里先不说看到后面遇到了再来解答留作问题1。 启动Akka服务 AkkaStarter.init(); powerjob里面主要使用的akka-remote就是用来通信的说白了就是手机用来给彼此打电话汇报信息的。 Akka框架的介绍请移步akka的官网自己去欣赏这里只将代码的作用做一个讲解。 这个AkkaStarter是在server.remote.transport.starter包里init方法代码如下 public static void init() {//一个计时的方法就不用在开始与结束的时候使用System获取时间然后再进行相减了。Stopwatch stopwatch Stopwatch.createStarted();log.info([PowerJob] PowerJobs akka system start to bootstrap...);// 解析配置文件Config akkaFinalConfig parseConfig();//创建一个Akka的actor系统相当于建立了一个公司之后所有的actor行动都在这个公司内进行actorSystem ActorSystem.create(RemoteConstant.SERVER_ACTOR_SYSTEM_NAME, akkaFinalConfig);//创建了一个actor。actorSystem.actorOf(FriendRequestHandler.defaultProps(), RemoteConstant.SERVER_FRIEND_ACTOR_NAME);log.info([PowerJob] PowerJobs akka system started successfully, using time {}., stopwatch);} 解析配置文件 解析配置文件的代码如下所示 private static Config parseConfig() {//这一步是获取了启动第一步的读取配置文件后获取的配置内容这也就回答了问题1。Properties properties PropertyUtils.getProperties();//获取配置文件中oms.akka.port字段的内容如果没有该配置则默认为10086端口int port Integer.parseInt(properties.getProperty(PowerJobServerConfigKey.AKKA_PORT, String.valueOf(OmsConstant.SERVER_DEFAULT_AKKA_PORT)));//这个是通过jvm启动时配置oms.akka.port的参数例如启动时候的java -Doms.akka.port30086...String portFromJvm System.getProperty(PowerJobServerConfigKey.AKKA_PORT);//如果配置了jvm启动的配置则将其覆盖配置文件的akka端口也就是说jvm配置优先级高于配置文件的配置if (StringUtils.isNotEmpty(portFromJvm)) {log.info([PowerJob] use port from jvm params: {}, portFromJvm);port Integer.parseInt(portFromJvm);}// 启动 ActorSystemMapString, Object overrideConfig Maps.newHashMap();//获取本地的ip地址下面会详细进入到代码中说一下这里面还挺深的String localIp NetUtils.getLocalHost();//将关键字放到一个map映射中overrideConfig.put(akka.remote.artery.canonical.hostname, localIp);overrideConfig.put(akka.remote.artery.canonical.port, port);//ip和端口组成了akka的通信地址actorSystemAddress localIp : port;log.info([PowerJob] akka-remote server address: {}, actorSystemAddress);//获取oms-server.akka.conf配置文件里面的配置ConfigFactory为akka自带方法Config akkaBasicConfig ConfigFactory.load(RemoteConstant.SERVER_AKKA_CONFIG_NAME);//overrideConfig里面有的配置内容按照overrideConfig走没有的按照配置文件akkaBasicConfig走return ConfigFactory.parseMap(overrideConfig).withFallback(akkaBasicConfig); } 获取本地地址 String localIp NetUtils.getLocalHost(); 在解析配置文件中其实真正有点内容的就是这个获取本地地址这个方法之前我没有去细研究之前可把我给坑毁了因为我想用局域网的ip进行来回通信但是因为这个获取地址里面的默认策略导致每一次使用的都不是我想用的IP地址当我研究完了这个代码之后终于是柳暗花明又一村了直接就可以指定地址了。 先看源码如下所示 public static String getLocalHost() { //这个代码就是在获取了地址之后就直接将地址存起来下一次再用就可以直接返回了if (HOST_ADDRESS ! null) {return HOST_ADDRESS;}//获取jvm启动时设置的powerjob.network.local.address关键字的地址通过这个就可以直接绑定ip了String addressFromJVM System.getProperty(PowerJobDKey.BIND_LOCAL_ADDRESS);if (StringUtils.isNotEmpty(addressFromJVM)) {log.info([Net] use address from[{}]: {}, PowerJobDKey.BIND_LOCAL_ADDRESS, addressFromJVM);return HOST_ADDRESS addressFromJVM;}//如果上一步没有绑定地址那就在通过getLocalAddress来获取地址。InetAddress address getLocalAddress();if (address ! null) {return HOST_ADDRESS address.getHostAddress();}return LOCALHOST_VALUE; } 大概知道了获取host的思路下一篇文章我们再详细介绍里面的具体流程因为里面的流程相对来说有那么一点点的不简单在这里讲的话会稍显冗长所以我准备另开一篇详细说一下。 启动Actor actorSystem ActorSystem.create(RemoteConstant.SERVER_ACTOR_SYSTEM_NAME, akkaFinalConfig); actorSystem.actorOf(FriendRequestHandler.defaultProps(), RemoteConstant.SERVER_FRIEND_ACTOR_NAME); 第一个就是建立actor系统参数一个是系统的名字类似于电话号码后四位那么一个东西另一个是akka的配置这个在解析配置文件步骤中获取。 第二个是创建actor这里创建的是FriendRequestHandler的Actor调用其defaultProps()方法源代码如下 public static Props defaultProps() {return Props.create(FriendRequestHandler.class)//这一步是设置派发器的配置。//读取配置文件oms-server.akka.conf中akka.friend-request-actor-dispatcher的关键字.withDispatcher(akka.friend-request-actor-dispatcher)//路由配置.withRouter(new RoundRobinPool(Runtime.getRuntime().availableProcessors() * 4).withResizer(new DefaultResizer(Runtime.getRuntime().availableProcessors() * 4,Runtime.getRuntime().availableProcessors() * 10,1,0.2d,0.3d,0.1d,10))); } 到这里这个Akka服务就算是启动完成了 总结 最后的vertx的启动基本没什么东西就是vertx的默认启动一行代码就OK了其余的内容和akka启动时基本相同。 vertx Vertx.vertx(); Server的启动相对来说没有那么的复杂代码读起来也是非常的通俗易懂这里面只出现了一个问题 springboot自带读配置文件的功能为什么启动的时候要先读取配置文件 因为启动akka和vertx的时候需要配置文件的内容而这个时候spring还没有读取该配置文件。 相关文章 https://blog.csdn.net/i_mycode/article/details/108382597 【getClassLoader().getResource() 】 http://doc.yonyoucloud.com/doc/akka-doc-cn/2.3.6/scala/book/chapter1/01_what_is_akka.html 【AKKA 2.3.6 Scala 文档】
http://www.dnsts.com.cn/news/182633.html

相关文章:

  • 正规的网站制作电话手机网页设计公司
  • 网站制作的流程有哪些泰安浩龙网站开发
  • 东莞网站制作模板怎样自己做网站
  • 百度收录网站链接入口北京seo执行
  • centos 7.2 做网站创意设计公司排行榜
  • 在哪下载.net网站作品产品外观设计网站
  • 昌吉网站建设咨询电话制作网站参考案例
  • 单县菏泽网站建设平凉建设局网站
  • 舟山专业做网站seo作弊
  • ps海报素材网站万网 填写网站备案信息
  • 银行网站建设方案网站推广的平台排名
  • 东莞医院网站建设wordpress+云播插件
  • 电商网站开发文字教程网页设计与制作课程标准中职
  • 大连模板网建站国外模板wordpress
  • 工信部网站域名备案什么网可以接外贸订单
  • 广东省消防建设工程申报网站华为手表网站
  • wordpress主题 外贸网站模板wordpress 自定义文章字段
  • 自己制作网站的方法是wordpress自定义后台单页模板
  • 嘉兴市建设局网站高档网站建设
  • 建免费的网站吗北京国互网网站建设报价
  • 金融类网站源码广州地铁封闭最新消息
  • 做网站用什么ps软件天津市武清区建设银行网站
  • 上海市建设工程质监站网站重庆商业网站有哪些
  • 做网站页面大小多大网站可以分为哪些类型
  • 优质龙岗网站建设静态网站设计
  • 做网站那家比较好开淘宝店铺的详细步骤
  • 建立个人网站的方法唐山哪家网站好
  • 网站建设公司2018-10-1沈阳高端网站定制开发
  • 自动下单网站开发核酸造假7人枪毙视频
  • 网站信息发布系统随机置顶wordpress