摘要:
docker安装ssh 通过命令行安装 1. pull ubuntu镜像 docker pull ubuntu:latest 2. 启动并进入bash 3. 安装openssh server并启动 如果已经监听22端口,说明sshd服务启动成功 4. ssh登陆 修改完sshd config之后需要 阅读全文
摘要:
install docker 1. 让apt工作在https模式下 2. 添加gpg key 3. 添加docker sourcelist(不同Ubuntu版本,对应的source不一样) 4. update source 5. 验证docker 的 apt源 6. 安装docker 7. 将当前用 阅读全文
摘要:
RocketMQ的主要特点以及实现方式 单机支持1万以上持久队列 所有数据单独存储到一个CommitLog,完全顺序写,随机读 在一个broker上一个DefaultMessageStore管理一个commitLog 顺序写:在commitLog.putMessage里面获取mapedFile之后进 阅读全文
摘要:
Consumer consumer pull message 订阅 在Consumer启动之前先将自己放到一个本地的集合中,再以后获取消费者的时候会用到,同时会将自己订阅的信息告诉broker 接收消息 consumer启动的时候会启动两个service: RebalanceService:主要实现 阅读全文
摘要:
Producer 消息发送 producer start producer启动过程如下图 消息发送流程 消息发送过程:先由producer封装通过netty发送到broker,然后由broker进行保存,过程如下 ============================= producer发送消息 阅读全文
摘要:
NameServer 作用:Producer和Consumer获取Broker的地址 目的:解耦Broker和Producer、Consumer 原理:使用netty作为通信工具,监听指定端口,如果是broker注册,将broker的信息保存在内存中并保存到文件中,producer和consumer 阅读全文
摘要:
RocketMQ quikstart 获取源码 编译打包 这是一个maven工程,官方给出了编译打包的脚本install.sh,主要就是 生成idea工程文件 生成工程文件就可以使用IDE直接打开 设置环境变量 上面创建了devenv软连接 cd devenv 将devenv目录作为ROCKETMQ 阅读全文
摘要:
Decorate 动态的将需要的逻辑添加在对象的现有方法上,提供了比继承更有弹性的替代方案 目的 动态给一个对象添加逻辑(不使用继承) 实现方式 装饰者和被装饰者继承自同一个超类 装饰者作为一个abstract类,其他decorator继承他 在装饰者中调用被装饰者的方法,所以在构造装饰者的时候必须 阅读全文
摘要:
Adapter 适配器 已有接口A和B,在不修改A、B的情况下,A要为B所用,这个时候需要一个中间人来承担将A的接口封装成为B可以使用的接口,这里的“中间人”就是适配器——adapter 目的 转换接口 优点 无需改动现有代码 便于在原有系统上进行扩展 实例 CoyoteAdapter Coyote 阅读全文
摘要:
HashMap 无序(每次resize的时候都会变) 非线程安全 key和value都看可以为null 使用数组和链表实现 查找元素的时候速度快 几个重要属性: loadFactor:用来计算threshold threshold:决定map是否需要扩容,threshold = capacity l 阅读全文