docker安装部署milvus单机版

docker安装部署milvus单机版

使用Docker Compose安装 Milvus单机版,快速体验milvus。

启动etcd、minio、milvus

milvus依赖etcd和minio,因此需要先启动这2个组件。同样也使用docker进行启动。
etcd:用来存储milvus的元数据。
minio:用来存储milvus的向量数据和索引数据。

新建docker-compose.yml文件,定义etcd、minio、milvus的启动参数,文件内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
services:
etcd:
container_name: milvus-etcd
image: quay.io/coreos/etcd:v3.5.5
environment:
- ETCD_AUTO_COMPACTION_MODE=revision
- ETCD_AUTO_COMPACTION_RETENTION=1000
- ETCD_QUOTA_BACKEND_BYTES=4294967296
- ETCD_SNAPSHOT_COUNT=50000
volumes:
- ${DOCKER_VOLUME_DIRECTORY:-.}/volumes/etcd:/etcd
command: etcd -advertise-client-urls=http://127.0.0.1:2379 -listen-client-urls http://0.0.0.0:2379 --data-dir /etcd
healthcheck:
test: ["CMD", "etcdctl", "endpoint", "health"]
interval: 30s
timeout: 20s
retries: 3

minio:
container_name: milvus-minio
image: minio/minio:RELEASE.2023-03-20T20-16-18Z
environment:
MINIO_ACCESS_KEY: minioadmin
MINIO_SECRET_KEY: minioadmin
ports:
- "9001:9001"
- "9000:9000"
volumes:
- ${DOCKER_VOLUME_DIRECTORY:-.}/volumes/minio:/minio_data
command: minio server /minio_data --console-address ":9001"
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
interval: 30s
timeout: 20s
retries: 3

standalone:
container_name: milvus-standalone
image: milvusdb/milvus:v2.3.12
command: ["milvus", "run", "standalone"]
environment:
ETCD_ENDPOINTS: etcd:2379
MINIO_ADDRESS: minio:9000
volumes:
- ${DOCKER_VOLUME_DIRECTORY:-.}/volumes/milvus:/var/lib/milvus
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:9091/healthz"]
interval: 30s
start_period: 90s
timeout: 20s
retries: 3
ports:
- "19530:19530"
- "9091:9091"
depends_on:
- "etcd"
- "minio"

networks:
default:
name: milvus

使用docker-compose后台启动

1
docker-compose up -d

查看容器状态

1
2
docker-compose ps
docker ps -a

启动milvus客户端attu

启动attu容器

1
docker run -d --name=attu -p 8000:3000 -e MILVUS_URL=0.0.0.0:19530 zilliz/attu:v2.3.8

milvus客户端attu(用户名密码为空):
http://192.168.0.1:8000/

minio客户端地址:
http://192.168.0.1:9001/

近期训练计划

力量训练

频度:每周两次

时间:周一到周五之间时间不定,尽量周二和周四

计划:

  • 第一次
    • 深蹲
      • 60KG * 10,80KG * 10,100KG * 5,110KG * 3,120KG 2 * 2
      • 尝试 130KG PR
    • 颈后推 30KG 8*4
    • 跳箱 10*4
  • 第二次
    • 硬拉
      • 60KG * 10,80KG * 10,100KG * 5,120KG * 3,140KG * 3,150KG * 2
      • 尝试 160KG PR
      • 抓举 40 * 5

有氧训练

跑步510公里,每周12次

养生锻炼

八段锦:每天一遍

两手托天理三焦,一上一下为一次,一共6次
左右开弓似射雕,一左一右为一次,一共3次
调理脾胃须单举,一左一右为一次,一共3次
五劳七伤往后瞧,一左一右为一次,一共3次
摆头摆尾去心火,一左一右为一次,一共3次
两手攀足固肾腰,一上一下为一次,一共6次
攒拳怒目增气力,一左一右为一次,一共3次
背后七颠百病消,一起一落为一次,一共7次

读书笔记-新一分钟经理人

读书笔记-新一分钟经理人

1. 一分钟目标

共同制定工作目标,并清楚简洁地描述出来,明确好的工作表现的标准

  • 一个工作目标、衡量标准和完成期限,应该用一到两段话说明白,读一遍大概花一分钟。把目标简洁地写下来,便于查阅并能把精力集中在最重要的部分

2/8原则,对20%的关键任务设定一分钟目标,可能一共只有3到5个工作目标

  • 每一项清楚描述出来,一个目标大概一页纸,遵循SMART原则

规定每天用几分钟时间重温自己最重要的目标,用一分钟审视自己的表现,审视是否与目标一致

若与目标不一致,反思自己的工作表现,以便调整

  • 引导员工自己思考

    • 不把猴子背在自己身上
  • 在哪里,要去哪里,差距有多大,怎么去?

为什么这么有效

  • 把问题浮到水面上

  • 目标透明,量化,回顾(参考OKR)

    • 对优秀的人一起设定一分钟目标,其余他会自己搞定

    • 对潜力者一起设定目标并定期回顾

2. 一分钟称赞

前半分钟

  • 及时称赞员工

    • 及时激励,发现员工做对了事情就立即给予称赞,而不是等到考核

      • 及时的表扬会鼓舞士气,延时的鼓励会让积极性受损

      • 从心理学的角度来说,人是需要被认可的

  • 告诉他们对在哪里–要说的非常具体

    • 说明你对员工做的事情很了解,很关心他的状况
  • 告诉他们这件事情做对之后,会让你感到多么高兴,对整个团队和其他同事又会有多大帮助。

    • 价值赞美

停顿一会儿

  • 沉默几秒,让他们静静地体会做对事情带来的喜悦

后半分钟

  • 鼓励他们以后继续这样做

  • 明确说明你对他们有信心,并会支持他们获得成功

为什么这么做有效

  • 训练成功者最重要的是发现他们做对了的事情——开始也许只是大概做对,接着要逐渐引导他们做得越来越完美

    • 示例:鼓励小孩子走路,从摇摇晃晃到站起来,鼓励最有效

    • 示例:教孩子说会喝水,从指着水,到说水,到喝水

  • 设立一系列小目标,可以帮助人们更顺利的完成整项工作

    • 示例:游戏的新手村任务引导,不断完成小目标直到会玩这个游戏,及时的激励和反馈会激发潜力
  • 被挑毛病的、饱受打击的人总是尽量少做事情

    • 原因在于领导者总是在挑毛病,总是在留意哪些事情未到达期望
  • 惩罚不如帮助员工重新设定目标,更正行为,确保其了解该做什么以及怎么做

3. 一分钟改正

开始前:确认和员工设定的目标是否阐述清楚,如果没有,主动承担责任,并再次详细说明工作目标,这会让人做事很公平

前半分钟

  • 错误发生后立即进行更正

    • 反馈应该及时

    • 工作出了差错,不更正只称赞于事无补。每个人都不喜欢经常被人指出错误,但一次‘更正’可以帮助员工重回工作轨道并完成工作目标,公司和个人才能实现双赢

  • 确认既有的事实,分析错在哪里–要说的非常具体

  • 告诉他们这件事带给你的感受,以及对工作成果可能造成的影响

停顿一会儿

  • 沉默几秒,让他们审视锁犯的错误

后半分钟

  • 告诉对方,他们的实际能力比这次表现出来更强, 你认为他们很不错

    • 特别期待再跟我碰面——只要不是因为犯了同样的错误
  • 告诉对方,你对他们有信心,任然信任他们

  • 更正过去,整件事就过去了

为什么这么做有效

  • 反馈应该是及时的,一旦发现下属做错事,立即指出来

    • 及时提出意见,就可以一个一个地处理问题,被批评的人也不会觉得那么难接受,反而会听进心里去
  • 后半分钟称赞是很重要的一部分

    • 我们的目的是帮助人们建立自尊自信,而不是贬低他们的价值。

      • 人格受到伤害时,哪怕扭曲事实,人们也会为自己和自己的行为开脱。一旦形成防备心态,就很难听得进去
    • 区分行为和价值区,指出行为的错误,不贬低员工的人格,最后肯定他们的价值

      • 你转身离开后,员工会更留意自己的行为,而不是跟同事抱怨自己碰了钉子或是质疑你的领导方式
    • “严厉”在前,“和气”在后

      • 示例:皇帝和丞相的故事,皇帝先和气后严厉被推翻,丞相先严厉后和气被推选为皇帝

      • 示例:棒球运动运表现不佳,先指出问题,再肯定其能力比表现强,调整后再上场

    • 真正尊重和关心下属,才会获得真正的成功

      • 必须表现得严厉,才是真正关心别人。但只是就事论事,从不针对人。犯错不可怕,不吸取教训才会导致真正的挫败

      • 不是操控,是真的关心

4. 一分钟管理体系

5. 一分钟经理人座右铭

通过发现别人做对的事,来帮助他们充分发挥潜力

  • 管理的本质就是激发他人的善意

最好的投资,就是把时间花在人的身上

  • 培养人

每个人都可能成功,有些人貌似失败者,但人不可貌相

  • 爱因斯坦会拿电话簿查自己家电话号码

拿出一分钟,重温你的目标,审视你的工作表现,看看你的行为与目标是否一致

  • 桌面卡片

我们不仅能够表现自己,还能够管理自己

  • 人是值得信任的,是可靠的

目标引发行为,结果巩固行为

DDD分层架构规范

分层架构图

简述

  1. Controller层:接口层,负责对前端展示的路由和适配;如果需要的话,消费事件和发送消息通知等也可以放在这里;
  2. Application层:主要负责获取输入,组装上下文,参数校验,调用领域层做业务处理
  3. Domain层:领域是应用的核心,主要是封装了核心业务逻辑,通过领域服务(Domain Service)、领域对象(Entity)的方法对App层提供业务实体和业务逻辑计算;
  4. Infrastructure层:主要负责技术细节问题的处理,比如数据库的CRUD、搜索引擎、文件系统、分布式服务的RPC等;

分层说明

  • APP层采用CQE模型,查询和命令分离
  • AppService调用实体和IRepo进行编排实现简单业务,通过调用DomainService实现复杂业务场景
  • AppService和DomainService均为无状态服务
  • App只允许调用仓储以及实体自带方法,不允许写任何方法,避免出现AppService过大的情况
  • DomainService封装所有跨实体的业务逻辑
  • 为避免出现AppService之间或者Domainservice之间相互调用,抽取出两者公共部分为一个Helper

聚合根和实体

  • 按聚合根分包,和包名一样的实体为聚合根
  • 可以识别的聚合根就写成聚合根,否则做成实体
  • 聚合根的一致性由自己保障
  • 跨实体的操作放到领域服务中

领域对象实体为充血模型,为一般业务对象,具备业务属性和业务行为

  • 实体都有自己的唯一标识通常
  • 实体可以不和表一一对应,通常操作单个表,可以操作多表

领域服务

某个操作过程或转换过程不是实体的职责时,我们便应该将该操作放在一个单独的接口中,即领域服务。

  • 用于实现某个领域的任务,不适合放在实体对象上时,就放在领域服务上
  • 放在实体的静态方法上有悖DDD
  • 避免在实体中调用资源库,数据通过AppService调用Repo传入
  • 如果有复杂逻辑,其中间的状态依赖前面步骤结果查询数据库作为后续逻辑的输入,通过把Repo传入到Domainservice的方式达到无状态效果

传输对象

  • DTO:接受Controller层发来的请求,返回结果
  • Entity :将DTO转换为要操作的领域层对象

无状态

  • 一次请求所需的全部信息,要么都包含在这个请求里,要么可以从外部获取到(比如说数据库),服务本身不存储任何信息
  • 有状态服务(stateful service)则相反,它会在自身保存一些数据,先后的请求是有关联的
  • 无状态服务的优势在于可以很方便地水平伸缩

公司战略构建

整体逻辑

  • 给什么样的客户群,解决什么样的痛点/诉求,投放什么样的产品组合
  • SAAS模式:订阅+可复制,核心是产品解决客户痛点达到订阅效果
  • 递进逻辑:初始纵向(客户)切分后面横向(产品),先收割容易的越往后越难,找到破局点需要解决关键的客户问题,构建壁垒

看市场

待补充

看客户

  • 客户群划分:遵守MECE原则,综合考虑数量、消费力、意愿、净值、消费频次、年龄等维度。
  • 痛点/诉求分析:针对客户群的痛点和诉求进行分析,并进行层次化解析,区分基础诉求、高阶诉求、特殊需求。
  • 小结:客户的群体特性简述,产品和服务的增长可能性在哪里。

看竞品

  • 选择竞品:客户群中排在前部的品牌,从市场占有率、行业认可、产品体验等维度选择
  • 竞品对比:分析每个竞品的核心优劣势,三点为佳
  • 小结:竞品优势和劣势总结

看自己

  • 优劣势分析:基于行业地位、市场进入先后、组织能力、品牌、客户资源和渠道、解决方案能力、研发能力等角度
  • 策略:如何发挥优势,克服劣势,构建产品,打开市场,增强品牌。。。

SWOT分析

  • 基于三看,进行SWOT分析,总结SO/WO/WT/ST策略

客户群选择

  • 基于SWOT分析来进行客户群选择和聚焦(找到三个点),包含对聚焦的细分客户进行产品组合投放(分层)

产品矩阵

  • 产品组合策略:对客户群的诉求解决进行产品组合细分
  • 差异化价值分析:对每个产品/模块进行价值分析,凸显产品价值,解决为什么是你的问题。

营销策略

  • 对前线伙伴(区域),做到真正赋能、解决问题并合力前行,让前线从要我做到我要做
  • 对不同市场,分析客户特征,制定市场策略、经营策略和组织策略

制定战略屋

  • 划分四个维度:经营目标、主要战场及核心策略、关键战役和组织支撑;逻辑为层层往上支撑。
  • 经营目标:
    • 初创和小型的企业 -> 活下去+构建产品+商业壁垒
    • 成熟企业:市场规模扩大,数字化(利润/客户数等)
  • 主要战场及策略:在这些战场打赢了可以支撑经营目标。
  • 关键战役:通过关键战役来获得整体战场的胜利。
  • 组织支撑:对不同的战场给与什么样的团队资源,采取什么策略。

业务蓝图

待补充

推导OKR

待补充

问题合集

  • 用什么“产品组合”?
  • 打什么“目标客户”?
  • 解决啥“核心问题”?
  • 有什么“差异竞争”

问题列表1

  • 是认知错误,还是策略错误,还是执行错误?
  • 某些客户可以作为门票,这张门票很重要,怎么设计好它?
  • 我们到底选择什么客户、打什么痛点,提供什么产品和服务?
  • 把问题打开来看,扎进去看!
  • 已经到了这个体量,未来到底何以增长?
  • 历史问题怎么解决??不要逃避!
  • 要回答为什么是你,而不是其他人!
  • 尝试A A不行尝试B B也不行,请问我们的洞察是什么?
  • 一定要有客户成功视角:续签率、续费率,看数据!

问题列表2

  • 没有绝对的优势或劣势,怎么转化为胜势
  • 不要丢掉你们自己,不要把战略屋当填空题
  • 那90%的精力做什么?怎么做?
  • 拼两件事情:成本结构、运营能力
  • 区域视角,客户成功视角,多视角看战略
  • 花更多时间思考产品本身
  • 越往下越难割,越需要靠产品
  • 如何后发制胜?
  • 每个阶段的战略选择不一样,从0到1、从1到10的阶段,先聚焦打透

COLA框架的架构和调用流程

架构图

四层结构

  1. 适配层(Adapter Layer):负责对前端展示(web,wireless,wap)的路由和适配,对于传统B/S系统而言,adapter就相当于MVC中的controller;
  2. 应用层(Application Layer):主要负责获取输入,组装上下文,参数校验,调用领域层做业务处理,如果需要的话,发送消息通知等。层次是开放的,应用层也可以绕过领域层,直接访问基础实施层;
  3. 领域层(Domain Layer):主要是封装了核心业务逻辑,并通过领域服务(Domain Service)和领域对象(Domain Entity)的方法对App层提供业务实体和业务逻辑计算。领域是应用的核心,不依赖任何其他层次;
  4. 基础实施层(Infrastructure Layer):主要负责技术细节问题的处理,比如数据库的CRUD、搜索引擎、文件系统、分布式服务的RPC等。此外,领域防腐的重任也落在这里,外部依赖需要通过gateway的转义处理,才能被上面的App层和Domain层使用。

组件说明

  1. gateway是为了防腐
  2. Infra层起数据屏蔽作用,如果提供的接口不变,数据层的改动都可以直接在Infra里面完成
  3. 第三方服务的调用在Infra层
  4. 为了易于理解可以把Adapter改为Controller

调用关系

  1. APP —> Infra, 为了可以直接CRUD,同时也是为什么Infra 可以直接依赖Client包
  2. APP —> gateway, 为了解耦/防腐/数据聚合
  3. APP —> domain service —> gateway —> 存储/缓存/外部服务, 为了实现复杂领域业务
    灵活使用,覆盖不同的场景

调用过程及对象使用

  1. Client
    定义如下对象
    • VO(View Object),Adapter层使用
    • Command,APP层使用,包含Qry、Add/Update/Delete
    • DomainEvent,Infra层发布领域事件使用
    • ServiceI,APP层实现该服务对外提供应用API
  2. Adapter层
    接收Command或者参数列表传递给ServiceI
    返回Response+VO给前端
  3. APP层
    ServiceImpl接收Command
    • 直接/间接传给Mapper
    • 转换成Entity,传给gateway或者domainservice
      返回Response+VO给Adapter层
  4. Domain — 不依赖其他任何层
    定义领域对象Entity
    Entity作为gateway的参数或返回
    Entity作为domain service的参数或返回
  5. Infa
    1. 调用数据库直接用Mybatis的Mapper,返回DO
    2. 调用第三方服务封装DO和Mapper,返回DO
    3. gatewayImpl通过mapper聚合来提供上层数据接口,返回Entity
    4. DomainEvent的发布

ELK搭建

简介

ELK是elasticsearch、logstash、kibana软件的集合,对外是作为一个日志管理系统的开源方案,它可以从任何来源、任何格式进行日志搜索、分析与可视化展示。
基本组成软件:

  • elasticsearch:一个开源分布式搜索引擎,提供收集、分析、存储数据三大功能。
  • kibana:一个基于web的图形界面,用于搜索、分析和可视化存储在elasticsearch中的日志数据。
  • logstash:一个服务端的数据处理管道,可以从多个源中提取数据,对其进行转换,然后将其存储到Elasticsearch中。简单来说就是日志的收集、分析、过滤工具。

搭建步骤

使用版本是7.9.3,部署前我们可以先提前从官网上下载下面4个安装包:
elasticsearch-7.9.3-linux-x86_64.tar.gz
kibana-7.9.3-linux-x86_64.tar.gz
logstash-7.9.3.tar.gz

这4个组件可以部署在不同的机器上,只要机器之间是端口开放即可
本文档中elasticsearch、logstash、kibana部署在一台机器,filebeat部署在有业务服务的机器上。

  1. 创建用户和解压文件
    groupadd elk
    useradd elk -g elk
    解压文件:
    tar -zxvf elasticsearch-7.9.3-linux-x86_64.tar.gz -C /home/elk
    tar -zxvf kibana-7.9.3-linux-x86_64.tar.gz -C /home/elk
    tar -zxvf logstash-7.9.3.tar.gz -C /home/elk

    cd /home/elk
    mv kibana-7.9.3-linux-x86_64 kibana-7.9.3

    chown -R elk:elk /home/elk/elasticsearch-7.9.3
    chown -R elk:elk /home/elk/kibana-7.9.3
    chown -R elk:elk /home/elk/logstash-7.9.3

  2. 部署elasticsearch

    1. 切换到elk用户
      su - elasticsearch
      cd /home/elk/
    2. 修改elasticsearch.yml
      cd /home/elk/elasticsearch-7.9.3/config
      vi elasticsearch.yml
      在文件末尾增加以下内容
      # 集群初始主节点
      cluster.name: “es-cluster”
      network.host: 0.0.0.0
      node.name: “node-1”

      # discovery type
      discovery.type: single-node
      #discovery.seed_hosts: [“127.0.0.1”, “[::1]”]

      # 设置允许所有ip可以连接该elasticsearch
      network.host: 0.0.0.0

      # 开启监听的端口为9200
      http.port: 9200

      # 增加新的参数,为了让elasticsearch-head插件可以访问es
      http.cors.enabled: true
      http.cors.allow-origin: “*”

      # 启用密码
      xpack.security.enabled: true

      # 使用默认密码
      xpack.security.authc.accept_default_password: true
      xpack.security.transport.ssl.enabled: true
      如果需要外置存储和日志,需要修改path.data和path.logs
      path.data: /nfsc/cnas_csp_pase_hrx_id010797_vol1003_dev/elasticsearch
      path.logs: /nfsc/cnas_csp_pase_hrx_id010797_vol1003_dev/elasticsearch_logs
    3. 修改Elasticsearch占用内存
      cd /home/elk/elasticsearch-7.9.3/config
      vi jvm.options
      修改JVM参数 :
      -Xms16g
      -Xmx16g
    4. 启动es的时候有可能会报类似的下面的错误【max virtual memory areas vm.max_map_count [65530] is too low】,所以我们可以通过下面的方法去处理:
      vi /etc/sysctl.conf
      文件末尾添加一行
      vm.max_map_count=655360
      保存之后执行下面的命令加载参数
      sysctl -p
    5. 启动Elasticsearch
      切换用户,进入bin目录启动:
      cd /home/elk/elasticsearch-7.9.3/bin
      ./elasticsearch -d
    6. 为内置账号添加密码
      # interactive:给用户一一设置密码
      # auto:自动生成密码
      cd /home/elk/elasticsearch-7.9.3/bin/
      ./elasticsearch-setup-passwords interactive
    7. 验证是否启动成功
      # curl -XGET -u elastic ‘localhost:9200’

      {
      “name” : “node-1”,
      “cluster_name” : “es-cluster”,
      “cluster_uuid” : “8eGk8_ohRbWl8ZcNSPsFDQ”,
      “version” : {
      “number” : “7.9.3”,
      “build_flavor” : “default”,
      “build_type” : “tar”,
      “build_hash” : “c4138e51121ef06a6404866cddc601906fe5c868”,
      “build_date” : “2020-10-16T10:36:16.141335Z”,
      “build_snapshot” : false,
      “lucene_version” : “8.6.2”,
      “minimum_wire_compatibility_version” : “6.8.0”,
      “minimum_index_compatibility_version” : “6.0.0-beta1”
      },
      “tagline” : “You Know, for Search”
      }
  3. 部署kibana

    1. 修改配置文件,文件位置在/home/elk/kibana-7.9.3/config目录下
      su - elasticsearch
      cd /home/elk/kibana-7.9.3/config
      vi kibana.yml
      添加es的配置,由于是都在同一台机器所以用localhost,如果是不同机器,就换成对应的ip即可
      # kibana端口
      server.port: 5601

      # 允许所有ip访问
      server.host: “0.0.0.0”

      # elasticsearch所在的ip及监听的地址
      elasticsearch.hosts: [“http://localhost:9200"]
      elasticsearch.username: “kibana_system”
      elasticsearch.password: “kibana_system”

      # kibana默认创建的索引
      kibana.index: “.kibana”

      # 字符编码
      i18n.locale: “zh-CN”

      # elasticsearch加密所需配置
      xpack.reporting.encryptionKey: “a_random_string”
      xpack.security.encryptionKey: “something_at_least_32_characters”
    2. 启动kibana
      cd /home/elk/kibana-7.9.3/bin
      ./kibana &
    3. 访问kibana
      http://IP:5601/
  4. 部署Logstash

    1. 修改Logstash的YML配置文件
      cd /home/elk/logstash-7.9.3/config/
      vim logstash.yml
      修改以下内容
      # 配置自动刷新
      config.reload.automatic: true
      config.reload.interval: 20s

      # 配置可任意地址都可访问
      http.host: 0.0.0.0
      http.port: 9600

      # 配置es的访问密码
      xpack.monitoring.enabled: true
      xpack.monitoring.elasticsearch.username: logstash_system
      xpack.monitoring.elasticsearch.password: logstash_system
      xpack.monitoring.elasticsearch.hosts: [“http://localhsot:9200"]
    2. 修改 pipelines配置文件
      - pipeline.id: gmp-logs
      queue.type: persisted
      path.config: “/home/elk/logstash-7.9.3/conf.d/*.config”
    3. 创建日志的config文件
      touch /home/elk/logstash-7.9.3/conf.d/logstash-beats.conf
      写入文件内容
      input {
      beats {
      port => 5044
      }
      }

      filter {
      grok {
      match => [
      “message”, “%{TIMESTAMP_ISO8601:timestamp_string}%{SPACE}%{GREEDYDATA:line}”
      ]
      }
      date {
      match => [“timestamp_string”, “ISO8601”]
      }
      mutate {
      remove_field => [message, timestamp_string]
      }
      }

      output {
      elasticsearch {
      hosts => [“http://localhost:9200"]
      user => elastic
      password => “elastic”
      }
      stdout {
      codec => rubydebug
      }
      }
    4. 启动Logstash(root用户)
      cd /home/elk/logstash-7.9.3/bin
      sh logstash -f ../conf.d/logstash-beats.conf &

简单时间管理

时间管理

目标感

  1. 给每件事情设定deadline
  2. 给长期的事情设置周期循环事项

时间块

  • 30分钟刻度划分
    一般管理人员的时间快划分可以到30分钟或者1小时
  • 半天刻度划分
    研发人员会按照半天来划分时间,涉及到写代码、用例、测试计划、编译、部署等具体工作,需要时间来思考及实现,所以有效的时间块划分是半天或者一天。

固化日程

固化日程即养成好的习惯,使得时间利用率高,事情处理效率高。
有些固定模板可套用,如:

  • 上班后/下班前处理今日事项和明日规划
  • 早会及总结
  • 上午做需求评审,下午写代码,晚上做分享

个人日程示例:

1
2
3
4
5
6
7
8
9
10
8.45-9.00:查看日程,规划今天事务
9.15-9.30: 早会
9.30-9.45:整理项目的进度和风险
10.00-11.00: 检视930版本需求
11.00-11.50: XX技术方案/需求评审会议
———————————————————
1.30-3.00:写代码
3.15-6.00: 接口设计
7.00-8.45: 小组分享
8.45-9.00: 今日事项总结,明日事项规划

工具和方法论

工具:microsoft todo、滴答清单、calendar
方法论:GTD(Get things done)

无题2

我与地坛

但是太阳,他每时每刻都是夕阳也都是旭日。当他熄灭着走下山去收尽苍凉残照之际,正是他在另一面燃烧着爬上山巅布散烈烈朝辉之时。那一天,我也将沉静着走下山去,扶着我的拐杖。
有一天,在某一处山洼里,势必会跑上来一个欢蹦的孩子,抱着他的玩具。
当然,那不是我。
但是,那不是我吗?
宇宙以其不息的欲望将一个歌舞炼为永恒。这欲望有怎样一个人间的姓名,大可忽略不计。

无题

在那些没有信心靠自己努力奋斗找到前途的人们当中,你很难找到独立的精神和坚强的个性。

Independence of mind or strength of character are rarely found among those who cannot be confident that they will make their way by their own effort.
—— 哈耶克《通往奴役之路》

  • Copyrights © 2018-2024 李一
  • Visitors: | Views:

请我喝杯咖啡吧~

支付宝
微信