g2f

作者: tjhuey | 来源:发表于2019-01-31 15:18 被阅读139次

    g2f
    工程相关 :

    一 版本控制 git

    1.Git 协议 : 四种 local(局域网) ssh http git(不推荐 暴露9481)

    拉去使用http哑协议,然后push使用 ssh 来自 StackFlow

    注:http Smart 协议 是基于 CGI 配合GIT git-http-backend 脚本进行使用,配置较复杂,现在一般不会这么去做,而是采用gitlab 、gogs 之类的web管理进行代替

    2. merge 和 rebase 区别 依赖commit (https://blog.csdn.net/liuxiaoheng1992/article/details/79108233

    合并相关命令一共存在共同祖先以及指针的概念。

    git merge : 祖先 ,当前分支与要被合并分支的公共祖先commit ,当前分支公共祖先最新commit,被合并分支公共祖先最新commit。三者合一

    git rebase: 祖先,当前分支与要合并分支的公共祖先commit的修改,master指针指向被合并分支最新更改commit,然后放到当前分支与要合并分支的公共祖先commit的修改


    二 maven,sornar,idea,jenkins,nexus

    1.maven 【默认规则】当中的测试类又做了约定,约定必须是Test开头的类名与test 开头的方法才会执行【也可以定制规则】 sonar做测试覆盖 jacoco 插件

    1. Maven 生命周期 与插件

    1. clean Lifecycle :清理生命周期,用于于清理项目

    2. default Lifecycle:默认生命周期,用于编译、打包、测试、部署等

    3. site Lifecycle 站点文档生成,用于构建站点文档

    2.依赖规则

      依赖传播、依赖优先原则、可选依赖、排除依赖、依赖范围
    

    3.聚合继承

    2.idea 快捷键

    3.jenkins 聊聊 自己学的自动化脚本 Mac vagrant 上有


    二.运维 linux,nginx,tomcat,

    1.linux

    1.目录操作 crud

    2.文件操作 crud

    tail -100 ./logs/catalina.out | grep 'copy' —color 与 tail -f

    top, free, df -h, ps -ef , env,netstat -tuln,route -n

    vim技巧

    linux 内核 TODO 用户空间 内核空间


    2.nginx 架构图

    1.架构 两个进程 ,主进程 加载配置,启动工作进程,联系netty。非停升级。

    子进程(可配置多个work),核心模块 网络读写,存储读写以及 传输。 run-loop 定义 mail,http,config模块。

            高并发,异步非阻塞。 底层c++
    

    2.使用

    1.动静分离,黑白名单,防盗链,日志配置,下载限速

    2.反向代理

    Upstream  a {} proxy_pass {http://a}  
    
    • 参数 weigtht ,权重 负载均衡算法。ll+weight. ip_hash session 一致性. (Ur_hash 最小链接,最小响应)

    • 参数 max_fails 最大失败次数 ,踢出

    • fail_timeout 踢出后重新探测时间

    • backup 备用服务

    • max_conns 允许最大连接数

    • slow_start 当节点恢复,不立即加入,而是等待 slow_start 后加入服务对列。

    3.高速缓存 proxy_cache_path 模块配置 以及 ng_cache_purge引入清除


    3.tomcat 架构图 (责任链)

    1.IO 模型。4种

    2.NIO 和 IO区别。源码 JIOEndPoint 与 NioEndPoint 多个poller线程 多路复用 多个线程回调通信


    三.ssm

    1.mybatis 架构图 组件 按着jdbc方式 源码 太熟悉了

    Spring 和 springmvc。

    2.Spring

    IOC

    1.为什么使用 spring ioc

    2.创建bean的几种方式

    1. 基于Class构建

    2. 构造方法构建

    3. 静态工厂方法创建

    4. FactoryBean创建

    3.依赖注入方式

    1. set方法注入

    2. 构造方法注入

    3. 自动注入(byName、byType)

    4. 方法注入(lookup-method)

    4.Bean创建流程

    AOP。织入业务逻辑。 读写数据源,日志,接口限流等。

    切面,切点, 连接点,通知。 默认jdk代理,可指定cglib。

    jdk和cglib的不同,一个接口一个实现。 故 this 在 jdk中 不能使用,因为this是 接口和proxy, 在cglib中能使用,因为继承

    声明式事务

    acid ,因为高并发完全达到acid 只能是串行化,但是带来很多负面影响。 故出现 隔离级别

    读未提交【脏读,不可重复读,幻读】,读已提交【不可重复读,幻读】,可重复读【幻读】,串行化。mysql默认 可重复读,oracle 默认是读已提交

    传播行为 required。required_new ,not_support ,同一个类 默认 代理只走一个(aop)可通过暴露和AopContext 达到目的

    3.springMVC流程 架构图


    (5天)5. juc,jdk集合,
    (10天)6.算法 4 设计模式 2 jvm mysql相关 2

    JUC

    为啥会用juc
    1 多线程---单线程
    2 共享变量---线程私有
    3 原子操作---原子类i++ i=i+1
    多线程的目的,就是最大限度地利用 cpu 资源,比如说1个线程一个io操作,另一个线程此时可以利用cpu。

    2.线程状态图 架构图
    Thread,Runnable,Callable

    3.线程池 工作原理 及架构图, 吹设计模式
    fixed cache single

    1. 主存 跟不上 cpu 频率。出现缓存,缓存不同步 MESI解决
      5.java 内存模型 出现工作内存。
      同步 就是一个原子操作
      线程八锁
      原子性
      synchronized 几种使用及底层jvm监视器,
      lock 重入锁 condition 通信 AQS同步器 队列加双向链表,UNSAFE JNI
      countdownlatch semaphore
      cas ABA
      可见性 volaite顺序性 。happen-before 指令重排。单例【】
      定时线程池 默认与 scheduleAtFixedRate。scheduleWithFixedDelay 的相互区别 ,一个等待停止 一个不等待

    jdk相关
    集合架构图。比较器两种
    1.hashMap 1.7 1.8
    数据结构 默认大小, 因子 ,线程是否安全,null值 ,扩容2倍 , 1.8 深度为8 红黑树
    2.hashTable 与 concurrentHashMap( IOC容器)
    3.ArrayList.copyOnWriteArraylist 默认10 扩容 手写

    jvm相关

    1.JVM 组成。 运行时架构图
    2.类加载过程 【加载,连接与校验,准备 初始化。】 及 类加载器 全盘委托机制【相关类默认】双亲委派 【沙箱安全,重复加载】
    3.栈 结构
    4.堆 结构
    5.调优jvm jinfo。jstat。jmap。jstack。jvisualvm
    6.堆 回收算法 分段GC策略
    首先分配到伊甸园区
    大对象直接分配到老年代 分配担保机制
    多次yangGC 幸存 分配到老年代 15岁
    7.如何判断对象被回收,1.引用计数,2.可达性算法GCRoot 与 finalize 两次标记
    8.几种收集器 及特点
    9.调优步骤 及 常用参数
    mysql 相关
    1.查询 由机器磁盘原理, 巡道 (非常慢)和 旋转。故出现索引
    2.索引 myisam 和 innodb 的结构 主键索引 非主键索引 对应区别 联合索引
    3.索引优化
    算法相关 TODO


    (30天)4.分布式相关 netty,dubbo,zk, 10

    redis,rocketmq,kafka ,8 elk,ss,mongodb 10 协议网关等 2

    1.Netty
    netty 创建和启动流程,架构图
    tcp粘包问题处理,
    序列化
    空轮训
    线程中的 双向链表结构
    内存分配 的 二叉树

    2.zk
    分布式 cap。base。基本可以 软状态 最终一致
    zab 联系 一致性协议 2pc 3pc paxos
    事件通知
    选举算法.
    角色
    节点类型
    集群模式
    水平扩展

    3.dubbo
    分布式演变
    dubbo架构图
    dubbo协议
    dubbo组件
    dubbo注册中心
    在生产端可配置消费端的参数

    1)timeout:方法调用超时
    2)retries:失败重试次数,默认重试 2 次
    3)loadbalance:负载均衡算法,默认随机
    4)actives 消费者端,最大并发调用限制
    Dubbo默认序列化 及其他序列化
    dubbo默认通信 及 其他通信 Mina
    dubbo负载均衡算法
    多种实现分组
    同步阻塞调用,及异步调用流程
    提供者失效踢出
    管理控制台作用

    4.redis
    Redis 快的原因
    redis 恢复
    redis 缓存淘汰策略
    redis 实用场景。redis分布式锁
    redis集群原理。槽位,重定向跳转,网络抖动

    5.rocketmq
    架构图
    生产端 消息类型 同步 异步
    消费端 如何消费(push pull )顺序消费,重复消费,
    服务端 NameServ 和 Broker

    6.kafka
    选举
    模式:单播 多播
    存储 : 元信息 zk,消息信息 文件
    发送方式 ,分区,hash,轮训
    选举策略
    生产流程 同步异步生产,
    消费 是否自动提交消费

    7.elk
    Nignx 白名单 Htppasswd

    8.ss

    9.mongodb


    (待定)六.微服务 springboot spirngcloud,docker 1。


    九.(待定)项目

    相关文章

      网友评论

          本文标题:g2f

          本文链接:https://www.haomeiwen.com/subject/zuoksqtx.html