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

如何把网站提交给百度wordpress登录下载文件

如何把网站提交给百度,wordpress登录下载文件,东莞市58同城招聘,开发企业网站设计引言 上回说到 手写分布式存储系统v0.1版本 #xff0c;已经实现了通过监听TCP端口并将数据写到本地磁盘的功能#xff0c;今天咱们就继续往上面添砖加瓦 v0.2版本大致做以下功能 实现滚动写文件 代码优化 一、滚动写文件实现 由于咱们写文件是用的mmap进行文件写入已经实现了通过监听TCP端口并将数据写到本地磁盘的功能今天咱们就继续往上面添砖加瓦 v0.2版本大致做以下功能 实现滚动写文件 代码优化 一、滚动写文件实现 由于咱们写文件是用的mmap进行文件写入而mmap自身原因最多只能映射到不大于2G的文件。因此在一个磁盘文件写满后咱们需要滚动写到一个新的文件中基本上所有分布式存储系统都是这么实现的如kakfa、pulsar、rocketmq等等。那咱们也自己尝试实现下大致逻辑如下 这个过程中有几个点需要考虑 如何判断文件写满了滚动前后文件名的变化规则 第一点可以考虑在内存中维护一个整型记录当前文件的大小否则每次写数据时判断是否写满都要去查下linux会影响性能 第二点文件名变化规则的设计方式有较多中例如每次写新的文件名都用最新的等。参考几个系统的实现后决定采用写指定名字的文件例如 “file”当这个文件写满1个G时将“file”改名为“file”加当前时间如“file-20240202”然后再新建一个名为“file”的文件进行写入。这样就能保证“file”这个文件永远都是当前正在写入的文件核心代码如下 private boolean rollingFile() throws IOException {preFilepath fileName-LocalDateTime.now().toString().replace(:,-).substring(0,19);File preFile new File(preFilepath);boolean preFileExists preFile.exists();if (!preFileExists) {this.fileChannel.force(false);boolean rename file.renameTo(preFile);if (rename) {this.fileChannel new RandomAccessFile(new File(fileName), rw).getChannel();this.mappedByteBuffer this.fileChannel.map(FileChannel.MapMode.READ_WRITE, 0, fileSize);WROTE_POSITION_UPDATER.set(this, 0);return true;} else {LOG.error(TieredIndexFile#rollingFile: rename current file failed);return false;}}return false;}二、代码优化 由于v0.1版本中实现的比较莽因此现在需要进行一个简单的重构。重构后大致逻辑可以参考下面这张不规范的UML图首先是抽象出一个LifecycleComponent接口由于除了网络、持久化服务之外未来咱们可能还会有其他的服务例如监控、插件服务等等因此咱们需要对这些服务做一层统一的抽象所有这些服务都要提供服务启动和服务停止的接口这样设计之后再服务启动/停止时只需要对LifecycleComponent集合列表进行统一的启动/停止操作即可代码维护起来也很舒服。 网络方面是通过NetServiceImpl方法初始化并启动Netty引导类ServerBootstrapServerBootstrap启动后会监听Linux机器的网络端口在监听到有请求时会交给ServerHandler 进行处理在ServerHandler这里可以调用LocalDataStorageImpl方法进行数据持久化LocalDataStorageImpl是数据持久化的统一入口咱们针对mmap写入方式抽象并实现了DefaultMappedFile提供了真正的mmap写磁盘操作。基本大致逻辑就是如此尽量不做过度的设计好的系统是演变过来的等未来发展到一定阶段后再根据情形进行分析优化 三、功能演示 开发完后咱们就可以开始进行演示了启动服务后当在控制台看到以下信息就知道服务已经正常启动此时就可以发数据给服务端了 通过指令能看到已经在目录下创建好对应的文件由于是通过mmap方式写的数据因此虽然咱们还没写数据到文件内但是可以看到文件大小已经是100Byte了这也是mmap的特点 通过以下指令往8888端口发送数据 (echo are you ok?; sleep 2) | telnet 127.0.0.1 8888 通过控制台能够看到数据有写到磁盘并且内存中维护的文件里存放数据的大小也在增加 重复多次第4步可以看到日志显示已到达文件大小触发文件滚动动作 再看看linux文件系统可以看到已经创建对应的文件testWrite-2024-02-02T19-35-20 打印一下可以清晰的看到咱们刚刚请求的内容都被正确的持久化到磁盘中了 四、总结 上面基本上就是 v0.2 版本的内容了不难但是你会发现使用一个分布式存储系统、看它的源码的体验跟你自己实现一遍是完全不同的一个现成的组件就像是一架飞机你看得到它的机翼、发动机等等你知道它是这样设计的但它为什么是这样设计的呢那样不可以吗这类问题恐怕会想的比较少或者虽然想了一下但是转头就忘了。但是当你自己设计去实现的过程中你会遇到种种问题需要你去反复思考以及做取舍等等这些都是你真正意义上成长的过程甚至有时还会顿悟为什么那个东西人家要这样设计这些都是无比令人振奋的事情这不就是生命的意义吗
http://www.pierceye.com/news/555879/

相关文章:

  • 潍坊建设银行网站珠海新盈科技 网站建设
  • 金华金东区建设局网站wordpress打开乱码
  • 创建一个网站的条件有哪些网站建设知名
  • 网站目录管理模版昆明大型网站建设费用
  • 莆田高端网站建设wordpress 表情没反应
  • 深圳做网站推广哪家好传奇网站模板怎么做的吗
  • 石景山区网站建设网线制作方法及步骤
  • 做网站端口内容无法替换做微信公众号网站
  • 电商网站首页怎么制作做网站用什么语言高效
  • 广州自助建设网站平台天津做网站美工
  • js 捕获网站异常插件网站商城怎么做
  • 北辰网站开发淮北哪有做淘宝网站
  • 建设银行e路通网站室内设计师证需要学哪些课程
  • 舟山市建设信息港网站打不开如何建设一个收费的影视图文网站
  • 内蒙建设信息网站网页制作作品阐述
  • 天津网站seo策划服装定制项目计划书
  • 常州网站建设大全买奢侈品代工厂做的产品的网站名
  • 建设网站如入什么费网站建设体会doc
  • 不备案怎么做淘宝客网站吗深圳华强北新闻最新消息今天
  • 梅兰商贸网站开发设计外国网站在中国做推广
  • 有无专门做网站会员人数迅速增加的方法北京单页营销型网站
  • 岳阳网站开发网站运营怎么做建设网站设计
  • 能打开各种网站的浏览器下载合集建设农产品网络营销网站
  • 陕西网站建设方案优化如何做网站挂qq
  • 无锡市网站WordPress分类id在哪
  • 网站建设金网站建设 需求模板
  • 提高网站转化率营销网站制作都选ls15227
  • 一级页面的网站怎么做爱疯卷网站怎么做
  • 网站企业快速备案大气的企业网站
  • 一个好的网站建设微网站手机制作