why-mongodb-use-b-tree

本文转载自 why-mongodb-use-b-tree

除了 B+ 树,你可能还听说过 B 树、 B- 树,实际上, B- 树就是 B 树,英文翻译都是 B-Tree ,这里的 “-” 并不是相对 B+ 树中的 “+” ,而只是一个连接符。而 B 树实际上是低级版的 B+ 树,或者说 B+ 树是 B 树的改进版。

B+ tree

B+ tree 实际上是一颗 m 叉平衡查找树 (不是二叉树)

think-about-cluster

分布式集群

分布式: 即拆分原有的功能,避免冗余和服务的耦合

集群: 提供多台服务避免单点故障

think-about-data-structure

为什么有数据结构的问题就是数据本来是无序和杂乱的
怎么在保存的时候方便后续更加方便查询和分析
如果是像记事本和word这种的确是可以使用单考虑到大量的数据就要考虑效率和成本

最后就发现了很多方法

k8s-deploy-geoserver-activemq

目前公司需要搭建geoserver集群集成jms和jdbcstore的插件,实现数据保存在数据库,同时通过jms来同步集群的缓存数据

部署activeMQ

基本信息

image-20211013110849180.png

####

geoserver-high-version-some-scale-lose-layer

启动geoserver报错文件找不到

现象

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
java.io.FileNotFoundException: src/main/webapp
at org.eclipse.jetty.webapp.WebInfConfiguration.unpack(WebInfConfiguration.java:671)
at org.eclipse.jetty.webapp.WebInfConfiguration.preConfigure(WebInfConfiguration.java:152)
at org.eclipse.jetty.webapp.WebAppContext.preConfigure(WebAppContext.java:506)
at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:544)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:138)
at org.eclipse.jetty.server.Server.start(Server.java:416)
at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:108)
at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:113)
at org.eclipse.jetty.server.Server.doStart(Server.java:383)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
at org.geoserver.web.Start.main(Start.java:125)
九月 15, 2021 11:21:37 上午 org.geoserver.web.Start main
严重: GeoServer startup complete in 0.186s

解决方法

org.geoserver.web.Start#main

启动的时候复制jar包里面的文件出来,给jvm调用

成功方式

利用jarFile来实现 文件读取

参考链接 https://www.codenong.com/1463192/

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
String destDirPath = getCurrentDirPath();
// 读取jar文件
URL resource = this.getClass().getResource("/PSTools");
JarURLConnection conn = (JarURLConnection) resource.openConnection();
JarFile jarFile = conn.getJarFile();
final Enumeration<JarEntry> entries = jarFile.entries();
while (entries.hasMoreElements()) {
final JarEntry entry = entries.nextElement();
if (entry.getName().contains(".exe")) {
System.out.println("File :" + entry.getName());
JarEntry fileEntry = jarFile.getJarEntry(entry.getName());
InputStream input = jarFile.getInputStream(fileEntry);
FileUtils.copyInputStreamToFile(input,new File(destDirPath,entry.getName()));
}
}