关闭

【docker】ip 区分

dockerfile里的expose,指的是docker要为虚拟化环境即容器开启一个port,这个port也是我们容器内应用要用的port。这不等同于把port发布到外界。 要把port发布,需要使用run的-p参数或者使用docker-compose的ports参数,指定端口映射。这样docker就会把宿主的port数据转发到容器内expose的端口。 如果我们在宿主机的外部,想访问...
阅读(15) 评论(0)

【docker】容器不退出

我们run了一个image,如果容器的任务执行完了,那么这个容器就会退出。当然我们想要exec 进入也就不行了。 如果不想要容器退出,那么必须让容器的任务一直执行,比如一些web监听任务或者top命令等。 比如说: dockerfile FROM centos run: docker run -it id top 那么这个容器就会执行top,不会退出。 我们可以使用: d...
阅读(17) 评论(0)

【docker】CMD ENTRYPOINT 区别 终极解读!

昨天用Dockerfile来启动mongodb的集群,启动参数--replSet死活没执行,最后就决定研究一哈cmd和entrypoint。但是上网看了一些资料个人觉得讲的不好,还是没有说出根本的东西,决定自己研究并且整理一哈。 首先上docker官网:https://docs.docker.com/engine/reference/builder/#cmd 感觉官网关于这两个命令讲的简直不要...
阅读(19) 评论(0)

【docker】docker build <none>:<none>镜像

我们一般定义image,都是使用Dockerfile,我们随时可能修改这个文件,然后重新使用docker build -t name . 命令来构建一个新的image。这种情况下,如果我们使用了和之前一样的镜像名来命名,那么docker会把这个名字赋给新的镜像,以前的镜像并不会被删除,但是此时它的名字被新的镜像剥夺了,就成为了一个无名镜像,也就是:出现的原因。 这个none镜像会占用磁盘空间,所...
阅读(20) 评论(0)

【docker】简介

最近在用docker,感觉真的爽,决定先研究下概念。 第一次接触是实习的时候,当时因为是mac的os,而docker只能运行于linux系统,所以mac有两种方案,一个是基于toolbox的,也就是装一个linux的虚拟机在mac上,然后docker运行在这个虚拟机上。另一个是基于docker for mac工具的。第一种性能更高,但是操作比较麻烦。 下面探究了下概念级别的东西。 1.doc...
阅读(11) 评论(0)

【Java】BIO NIO 服务器

BIO,即所谓的面向字节的api。 基本的思路是每一个连接对应一个线程。所以accept以后,就会新建一个线程来处理这个socket。线程里面也是一个while,读取客户端请求,然后相应。这种设计思路很清晰,写起来比较顺,但是性能在高并发的时候有问题,主要是线程太吃资源,但是在低并发情况下还是不错的。 一个改进就是采用线程池,这样可以限制线程数目,只有前面的一些客户端关闭了连接,释放了线程,那...
阅读(9) 评论(0)

【zookeeper】事件 watch 机制 原理

zk作为一款成熟的分布式协调框架,订阅-发布功能是很重要的一个。所谓订阅发布功能,其实说白了就是观察者模式。观察者会订阅一些感兴趣的主题,然后这些主题一旦变化了,就会自动通知到这些观察者。 zk的订阅发布也就是watch机制,是一个轻量级的设计。因为它采用了一种推拉结合的模式。一旦服务端感知主题变了,那么只会发送一个事件类型和节点信息给关注的客户端,而不会包括具体的变更内容,所以事件本身是轻量级...
阅读(17) 评论(0)

【zookeeper】客户端 底层实现

首先看下我们是怎么用zk客户端的。我们一般都会采用如下的代码: ZooKeeper zk = new ZooKeeper("127.0.0.1:2183", 5000, new DefaultHandler());然后创建的ZooKeeper实例是我们与服务端通讯的接口。所以从这个类开始看。 public ZooKeeper(String connectString, int sess...
阅读(29) 评论(0)

【zookeeper】节点信息

使用客户端get 节点的命令以后,会有如下信息: 第一行是节点的内容。 cZxid:创建节点的事务id。 ctime:创建节点的时间。 mZxid:最后一次修改节点的事务id。 mtime:最后一次修改节点的时间。 datalength:数据的长度 numChildren:子节点的数目 接着是三个版本:用于乐观锁控制并发。版本号的值就是修改的次数。刚开始创建的时候是...
阅读(16) 评论(0)

【zookeeper】ACL

ACL全称是access control list,是zk中控制访问权限的一种策略。 大致的思路是任何人都可以登录zk,但是登录以后,zk的节点树的每一个节点都有自己的访问控制,所以用户登录以后需要先添加自己此次登录的权限,然后才能访问相应的节点。如果没有某一个节点的权限,那么zk会报错。 传统的访问控制最经典的是linux系统的基于user,group和other三种类型的权限控制。这种控制...
阅读(18) 评论(0)

【zookeeper】ACL super 超级管理员

zk的权限管理表有一种ACL的模式叫做super,该模式的作用是方便管理节点。一旦我们为某一个节点设置了acl,那么其余的未授权的节点是无法访问或者操作该节点的,那么系统用久了以后,假如忘记了某一个节点的密码,那么就无法再操作这个节点了,所以需要这个super超级管理员用户权限,其作用还是很大的。 下面看下如何假如一个超级管理员。 添加方式: 只能在启动服务器的时候添加。 假设这个超管是:...
阅读(20) 评论(0)

【zookeeper】INFO [main-SendThread(localhost:2181):ClientCnxn$SendThread@1183] - 报错

客户端启动报错信息: INFO  [main-SendThread(localhost:2181):ClientCnxn$SendThread@1183] - Unable to read additional data from server sessionid 0x0, likely server has closed socket, closing socket connection an...
阅读(22) 评论(0)

【Java】NIO 仿照zookeeper 写的 nio客户端

之前用nio写了一个聊天室的简单demo,发现思路很乱,然后就开始看zookeeper是怎么做的,发现思路很妙,于是就仿照着写了一个很简单的客户端版本,就是输入一个加法的字符串,然后让服务器计算,再返回。 客户端: package client; import java.io.IOException; import java.net.InetSocketAddress; import jav...
阅读(42) 评论(0)

【Java】NIO 客户端-服务器 聊天 例子

想写一个简单的聊天C/S,client可以单聊和群发,代码里面有每一次发送的格式。 发现没写过NIO还真不习惯这种模式,总体感觉是不管哪一端,最终都有一个select的循环,然后循环里面会对每一个就绪的key处理,key的处理又是一种宏观的写法,read或者write的处理会包括每一个通道的处理,所以这些函数可能会有很多的case,写起来还是挺费劲的。但是基本还是遵循了服务器的请求-相应模式。就...
阅读(41) 评论(0)

【Java】NIO 客户端关闭

nio的客户端如果关闭了,服务端还是会收到该channel的读事件,但是数目为0,而且会读到-1,其实-1在网络io中就是socket关闭的含义,在文件时末尾的含义,所以为了避免客户端关闭服务端一直收到读事件,必须检测上一次的读是不是-1,如果是-1,就关闭这个channel。 else if(key.isReadable()){ ByteBuffer buffer = ByteBu...
阅读(105) 评论(0)
301条 共21页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:148452次
    • 积分:4220
    • 等级:
    • 排名:第7987名
    • 原创:291篇
    • 转载:10篇
    • 译文:0篇
    • 评论:43条
    最新评论