首页 文章 精选 留言 我的

精选列表

搜索[云真机],共10000篇文章
优秀的个人博客,低调大师

使用容器编排工具docker swarm安装clickhouse多机集群

1.首先需要安装docker最新版,docker 目前自带swarm容器编排工具 2.选中一台机器作为master,执行命令sudo docker swarm init [options] 3,再需要加入集群的集群上执行此命令 4.可以使用sudo docker node ls此命令来查询节点数 5编写docker-compose.yaml文件,目前我使用的是version 3版本,version2和3有区别,具体看官网介绍 贴一份完整的docker-compose.yaml供大家参考 version: '3' services: zookeeper: image: zookeeper ports: - "2181:2181" - "2182:2182" volumes: - "/data/clickhouse/zk/data:/data" - "/data/clickhouse/zk/log:/datalog" deploy: placement: constraints: - node.hostname == SHA11DMPHAMP01 # networks: # - clickhouse clickhouse203: image: yandex/clickhouse-server container_name: clickhouse203 expose: - "9000" - "8123" user: root privileged: true deploy: placement: constraints: - node.hostname == SHA11DMPHDOP01 ports: - "111.250.128.203:9000:9000" - "111.250.128.203:8123:8123" volumes: - "/data/clickhouse/etc:/etc/clickhouse-server" - "/data/clickhouse/data:/var/lib/clickhouse" - "/data/clickhouse/log:/var/log/clickhouse-server" ulimits: nofile: soft: 262144 hard: 262144 depends_on: - "zookeeper" # networks: # - clickhouse_network clickhouse204: image: yandex/clickhouse-server container_name: clickhouse204 expose: - "9000" - "8123" user: root privileged: true deploy: placement: constraints: - node.hostname == SHA11DMPHDOP02 ports: - "111.250.128.204:9001:9000" - "111.250.128.204:8124:8123" volumes: - "/data/clickhouse/etc:/etc/clickhouse-server" - "/data/clickhouse/data:/var/lib/clickhouse" - "/data/clickhouse/log:/var/log/clickhouse-server" ulimits: nofile: soft: 262144 hard: 262144 depends_on: - "zookeeper" # networks: # - clickhouse clickhouse205: image: yandex/clickhouse-server container_name: clickhouse205 expose: - "9000" - "8123" user: root privileged: true deploy: placement: constraints: - node.hostname == SHA11DMPHDOP03 ports: - "111.250.128.205:9002:9000" - "111.250.128.205:8125:8123" volumes: - "/data/clickhouse/etc:/etc/clickhouse-server" - "/data/clickhouse/data:/var/lib/clickhouse" - "/data/clickhouse/log:/var/log/clickhouse-server" ulimits: nofile: soft: 262144 hard: 262144 depends_on: - "zookeeper" # networks: # - clickhouse clickhouse206: image: yandex/clickhouse-server container_name: clickhouse206 expose: - "9000" - "8123" user: root privileged: true deploy: placement: constraints: - node.hostname == SHA11DMPHDOP04 ports: - "111.250.128.206:9003:9000" - "111.250.128.206:8126:8123" volumes: - "/data/clickhouse/etc:/etc/clickhouse-server" - "/data/clickhouse/data:/var/lib/clickhouse" - "/data/clickhouse/log:/var/log/clickhouse-server" ulimits: nofile: soft: 262144 hard: 262144 depends_on: - "zookeeper" # networks: # - clickhouse #networds: # clickhouse_network: docker-compose.yaml clickhouse的具体配置我就不介绍了,配置方面可以看我上一篇博客 希望大家尊重作者版权,未经允许不得转载,违者必究!!

优秀的个人博客,低调大师

在ubuntun虚拟机里安装goLang语言编程环境

Go语言是谷歌2009发布的第二款开源编程语言。 Go语言专门针对多处理器系统应用程序的编程进行了优化,使用Go编译的程序可以媲美C或C++代码的速度,而且更加安全、支持并行进程。 北京时间2010年1月10日,Go语言摘得了TIOBE公布的2009年年度大奖。该奖项授予在2009年市场份额增长最多的编程语言。 2007年,谷歌把Go作为一个20%项目开始研发,即让员工抽出本职工作之外时间的20%, 投入在该项目上。除了派克外,该项目的成员还有其他谷歌工程师也参与研发。 本文介绍如何在ubuntu操作系统下面安装goLang。 首先用工具curl下载goLang的安装包: sudo curl -O https://storage.googleapis.com/golang/go1.9.2.linux-amd64.tar.gz 然后将下载好的安装包,一个压缩文件通过tar解压。 sudo tar -xvf go1.9.2.linux-amd64.tar.gz 解压后,生成一个go目录。 用命令行mv将该目录移到目录/usr/local下: 将go目录下的bin文件夹加到ubuntu的环境变量里: echo 'export PATH=$PATH:/usr/local/go/bin' >> ~/.profile source ~/.profile 命令行go version显示版本,说明环境变量生效了。 用go语言实现一个计算阶乘的简单程序: package main import "fmt" func Factorial(n uint64)(result uint64) { if (n > 0) { result = n * Factorial(n-1) return result } return 1 } func main() { var i int = 15 fmt.Printf("func(%d): %d ", i, Factorial(uint64(i))) } 使用go build hello.go编译成可执行文件,然后./hello执行。 要获取更多Jerry的原创技术文章,请关注公众号"汪子熙"或者扫描下面二维码:

优秀的个人博客,低调大师

深入java虚拟机学习 -- 类的加载机制(四)

类加载的命名空间 每个类加载器都有自己的命名空间,命名空间由所有以此加载器为初始类加载器的类组成,不同命名空间的两个类是不可见的,但只要得到类所对应的Class对象的refrence(反射),还是可以访问另一个命名空间的类信息的。 同一个命名空间内的类是相互可见的,子加载器的命名空间包含所有父加载器的命名空间,也就是说由子加载器加载的类能看到父加载器加载的类。例如:系统类加载器加载的类能看到根类加载器加载的类(用户自定的类可以访问java.lang.*包下的信息),由父加载器加载的类不能看到子加载器加载的类。 如果两个加载器之间没有直接或者间接的父子关系,那么它们个字加载的类相互不可见。 创建用户自定义的类加载器 要创建用户自定义的类加载器,只需要扩展java.lang.ClassLoader类,然后覆盖它的findClass(String name)方法即可,该方法根据参数指定的类的名字,返回对应的Class对象的引用。 protected Class<?> findClass(String name) throws ClassNotFoundException { throw new ClassNotFoundException(name); } 我们可以按到ClassLoader里面的findClass方法的默认实现会抛出ClassNotFoundException异常,我们只需要在自定义的加载器里面重写,即可。 public class MyClassLoader extends ClassLoader { private String name;//类加载器的名字 private String path="";//加载类的默认路径 private String fileType=".class"; //class文件的扩展名 public MyClassLoader(String name){ super();//让系统类加载器成为该类加载器的父加载器 this.name=name; } public MyClassLoader(ClassLoader parent,String name){ super(parent);//显示指定该类加载器的父加载器 this.name=name; } @Override public String toString() { return this.name; } public String getPath() { return path; } public void setPath(String path) { this.path = path; } /** * 抽象类ClassLoader的findClass函数默认是抛出异常的。而前面我们知道, * loadClass在父加载器无法加载类的时候,就会调用我们自定义的类加载器中的findeClass函数, * 因此我们必须要在loadClass这个函数里面实现将一个指定类名称转换为Class对象. * @param name * @return */ @Override protected Class<?> findClass(String name) { byte [] data=this.loadClassData(name); return this.defineClass(name,data,0,data.length); } private byte[] loadClassData(String name) { InputStream is=null; byte [] data=null; ByteArrayOutputStream baos=null; try { this.name=this.name.replace(".","\\"); is=new FileInputStream(new File(path+name+fileType)); baos=new ByteArrayOutputStream(); int ch=0; while(-1!=(ch=is.read())){ baos.write(ch); } data= baos.toByteArray(); } catch(Exception e){ e.printStackTrace(); } finally { try { is.close(); baos.close(); } catch(IOException e) { e.printStackTrace(); } } return data; } public static void main(String[] args) throws Exception { MyClassLoader loader1 = new MyClassLoader("loader1");//没有指定loader的父加载器,则默认的父加载器为系统类加载器 loader1.setPath("G:\\myapp\\loader1\\"); MyClassLoader loader2 = new MyClassLoader(loader1,"loader2");//指定loader2的父加载器为loader1,这里的loader1和loader2都为MyClassLoader的实例 loader2.setPath("G:\\myapp\\loader2\\"); MyClassLoader loader3 = new MyClassLoader(null,"loader3");//bootstrap类加载器 loader3.setPath("G:\\myapp\\loader3\\"); //test(loader1); test(loader2); test(loader3); } public static void test(ClassLoader loader) throws Exception { Class clazz=loader.loadClass("Sample"); Object object=clazz.newInstance(); } 开开心心编码,快快乐乐生活。

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册