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

苏州智能网站开发网站设计时应考虑哪些因素

苏州智能网站开发,网站设计时应考虑哪些因素,贵阳建站,成长电影在线观看免费为了简化应用支持服务方便的分合,使用Zookeeper embbed模式。集成Zookeeper比较容易,使用starter或自己写代码都可以。但是由于集成了Dubbo,每次启动时都会发现zookeeper没有启动就开始报错退出,但是确是已经集成了。 于是只能翻…

为了简化应用支持服务方便的分合,使用Zookeeper embbed模式。集成Zookeeper比较容易,使用starter或自己写代码都可以。但是由于集成了Dubbo,每次启动时都会发现zookeeper没有启动就开始报错退出,但是确是已经集成了。

于是只能翻Dubbo源码

发现Dubbo启动时,会添加一个早期事件DubboConfigInitEvent。在spring afterproperties后,会立即触发该事件。在该事件里调用zookeeper注册事件。

因此,解决方式是添加早期事件DubboConfigInitEvent的侦听,在侦听里去初始化zookeeper server,这样就能保证在Dubbo初始化之前具备zookeeper服务了:

添加一个Helper Bean,实现代码如下:

package org.ccframe.commons.helper;import lombok.Getter;
import lombok.SneakyThrows;
import org.apache.dubbo.config.spring.context.event.DubboConfigInitEvent;
import org.apache.zookeeper.server.NIOServerCnxnFactory;
import org.apache.zookeeper.server.ZooKeeperServer;
import org.ccframe.config.GlobalEx;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.ApplicationListener;
import org.springframework.stereotype.Component;import java.io.File;
import java.net.InetSocketAddress;
import java.nio.file.Path;
import java.nio.file.Paths;@Component
public class EmbeddedZookeeperLauncher implements ApplicationListener<DubboConfigInitEvent>{private String zooDir;@Value("${app.zookeeper.embed.dir:}")public void setZooDir(String zooDir) {this.zooDir = zooDir;if (zooDir == null || zooDir.isEmpty()) {this.zooDir = GlobalEx.APP_BASE_DIR + File.separator + GlobalEx.EMBEDDED_ZOOKEEPER_DIR; //zookeeper数据放到应用运行目录}}@Value("${app.zookeeper.embed.port:2181}")private Integer zooPort;@Value("${app.zookeeper.embed.max-connection:1024}")private Integer maxConnection;@Value("${app.zookeeper.embed.tick-time:500}")private Integer tickTime;@Getterprivate ZooKeeperServer zooKeeperServer;@Override@SneakyThrowspublic void onApplicationEvent(DubboConfigInitEvent event){if (event.getApplicationContext().getParent() == null) {Path zooPath = Paths.get(zooDir);zooKeeperServer = new ZooKeeperServer(zooPath.toFile(), zooPath.toFile(), tickTime);NIOServerCnxnFactory factory = new NIOServerCnxnFactory();System.setProperty("zookeeper.maxCnxns", Integer.toString(maxConnection));factory.configure(new InetSocketAddress(zooPort), maxConnection);factory.startup(zooKeeperServer);}}}

然后启动就不会报错了

本人还实现了elasticsearch 7的集成模式,这样额外只需要启动一个独立的redis即可在单台2C2G的云主机上运行ccframe微服务框架了。耐斯~

http://www.yayakq.cn/news/688317/

相关文章:

  • 什么直播可以做游戏视频网站吗wordpress侧边栏选项卡
  • 网站案例模版网站怎么做域名
  • 电商网站开发思路模版建设六马路小学 网站
  • 做网站用python还是php外包网络推广公司推广网站
  • 内蒙网站建设宁津建设局网站
  • 沈阳网站建设沈阳建网站网站
  • 快印店网站建设84wzjs建网站先要申请网址吗
  • 鄂州网站设计制作宽屏大气企业网站源码
  • 网站动态和静态的区别ps网页设计说明书
  • 昆明专业做网站建站目的
  • 做网站域名的成本成都网站制作沈阳
  • 怎么搭建自己的博客网站建设中网站源码
  • 建设银行成都官网招聘网站十大网站
  • ftp上传网站之后怎么做深圳住建局最新通知
  • 建网站卖东西视频网站的制作教程
  • 网站建站报价wordpress获取首页地址
  • 百度蜘蛛站长服务平台python报修网站开发源码
  • 整站下载器 做网站地图网站内部链接如何进行优化建设
  • 四川建站模板网站公司大连网络营销公司有哪些
  • discuz论坛和网站同步登录原创先锋 北京网站建设
  • 做营销型网站的公司方城网站建设
  • 建设部办公厅网站wordpress 4 编辑器
  • 网站建设招代理苏州中设建设集团有限公司网站
  • 下载类网站 建设方案长沙网站公司
  • 长沙小学网站建设自己做的网站怎么被百度收录
  • 广东营销网站制作招聘网站套餐
  • 建站吧网站建设怎么用本机做服务器发布网站
  • 网站怎么做电脑系统下载企业培训心得体会
  • 购物网站app宣传型网站建设
  • 网站点内页还是首页合肥城市建设网站