程序架构知识笔记分享
2022-10-19 17:48:38   0  举报             
     
         
 AI智能生成
  程序架构知识笔记分享
    作者其他创作
 大纲/内容
  架构师筑基amp;lt;bramp;gt;    
     并发编程amp;lt;bramp;gt;    
     线程基础、线程之间的共享和协作amp;lt;bramp;gt;    
     基础概念  
     启动和终止线程  
     线程间的共享  
     线程间协作  
     线程的并发工具类amp;lt;bramp;gt;    
     Fork/join  
     CountDownLatch作用  
     cyclicBarrier作用,应用场景和实战  
     CountDownLatch和cyclicBarrier辨析  
     Semaphore作用,应用场景和实战  
     Exchange作用,应用场景和实战  
     Callable,Future和FutureTask  
     原子操作CASamp;lt;bramp;gt;    
     CAS的原理  
     CAS的问题  
     原子操作类的使用  
     显式锁和AQSamp;lt;bramp;gt;    
     显式锁  
     LockSupport工具  
     AbstractQueuedSynchronizer实现及源码分析  
     并发容器amp;lt;bramp;gt;    
     ConcurrenHashMap  
     其他并发容器  
     阻塞队列  
     线程池amp;lt;bramp;gt;    
     什么是线程池?为什么要用线程池?  
     实现一个我们自己的线程池  
     JDK中的线程池  
     线程池工作机制  
     合理配置线程池  
     系统为我们预定义的线程池  
     Executor框架  
     CompletionService  
     并发安全amp;lt;bramp;gt;    
     类的线程安全  
     如何做到类的线程安全  
     线程不安全引发的问题  
     线程安全的单例模式  
     实战项目amp;lt;bramp;gt;    
     并发任务执行框架  
     应用性能优化实战  
     JMM和底层实现原理amp;lt;bramp;gt;    
     现代计算机物理上的内存模型  
     java内存模型  
     JVM性能调优amp;lt;bramp;gt;    
     java内存区域amp;lt;bramp;gt;    
     虚拟机的历史  
     未来的java技术  
     运行时数据区域  
     深入辨析堆栈  
     方法的出入栈  
     虚拟机中的对象  
     堆参数设置和内存溢出实战  
     子主题  
     网络编程与高效IOamp;lt;bramp;gt;    
     演变交付生命周期amp;lt;bramp;gt;  
     属性驱动设计法amp;lt;bramp;gt;  
     按架构组织开发团队amp;lt;bramp;gt;  
     开发骨架系统amp;lt;bramp;gt;  
     利用商用构件进行开发amp;lt;bramp;gt;  
     Tomcat系统进阶amp;lt;bramp;gt;    
     目录结构amp;lt;bramp;gt;    
     配置文件  
     lib  
     logs  
     webapps  
     容器amp;lt;bramp;gt;    
     Engineamp;lt;bramp;gt;  
     Pipelineamp;lt;bramp;gt;  
     AccessLogamp;lt;bramp;gt;  
     Realmamp;lt;bramp;gt;  
     jasper解析器amp;lt;bramp;gt;  
     Connector链接器amp;lt;bramp;gt;    
     Endpoint  
     Processor  
     CoyoteAdapter  
     Mapper  
     线程模型amp;lt;bramp;gt;    
     阻塞式(BIO)  
     非阻塞式(NIO)  
     源码解读    
     源码环境搭建  
     源码架构分析  
     核心组件分析  
     源码调试  
     嵌入式Tomcat    
     Tomcat的API  
     Tomcat的Maven插件  
     手写嵌入式Tomcat  
     Tomcat优化实战  
     Mysql深度优化amp;lt;bramp;gt;    
     Mysql逻辑架构入门  
     存储引擎amp;lt;bramp;gt;    
     MyISAM  
     Innodb  
     Archive  
     Memory  
     Federated  
     业务设计amp;lt;bramp;gt;    
     锁  
     事务  
     逻辑设计  
     物理设计  
     查询以及索引    
     慢查询amp;lt;bramp;gt;  
     索引amp;lt;bramp;gt;  
     执行计划amp;lt;bramp;gt;  
     Sql优化amp;lt;bramp;gt;  
     Linux基础与进阶amp;lt;bramp;gt;    
     Linux入门安装amp;lt;bramp;gt;  
     Linux注意事项amp;lt;bramp;gt;  
     Linux基础指令amp;lt;bramp;gt;  
     Linux JDK1.8环境安装和操作指令amp;lt;bramp;gt;  
     Linux Tomcat安装与停启amp;lt;bramp;gt;  
     设计模式实战  
     java8    
      Java8新特性    
      速度更快  
     代码更少(增加了lambda表达试)  
     强大的Stream API  
     便于并行  
     最大化减少空指针异常 Optional  
     lambda    
     内置的四大核心函数式接口    
     Consumeramp;lt;Tamp;gt;:消费型接口    
     void accept(T t)  
     Supplieramp;lt;Tamp;gt;: 供给型接口    
     T get()  
     Functionamp;lt;T,Ramp;gt;: function型接口    
     R apply(T t)  
     Predicateamp;lt;Tamp;gt;: 断言型接口    
     boolean  test(T t)  
      方法引用    
     对象::实例方法  
     类::静态方法  
     类::实例方法  
      构造器引用    
      ClassName::new    
     Functionamp;lt;Integer,MyClassamp;gt; fun=(n)-amp;gt; new MyClass(n);amp;lt;bramp;gt;Functionamp;lt;Intger,MyClassamp;gt; fun=MyClass::new;  
      数组引用    
      type[] :: new  
     Stream API    
     注意    
     Stream 自己不会存储元素  
     Stream 不会改变源对象  
     Stream 操作是延迟执行的  
      Stream 三个步骤    
      创建 Stream    
      iterate  
     generate  
     中间操作    
     筛选与切片    
     filter(Predicate p)  
     distinct()  
     limit(long maxSize)  
     skip(long n)  
      映射    
     map(Function f)  
     mapToDouble(ToDoubleFunction f)  
     mapToInt(ToIntFunction f)  
     mapToLong(ToLongFunction f)  
     flatMap(Function f)  
      排序    
      sorted()  
     sorted(Comparator comp)  
     终止操作(终端操作)    
     查找与匹配    
     allMatch(Predicate p)  
     anyMatch(Predicate p)  
     noneMatch(Predicate p)  
     findFirst()  
     findAny()  
     count()  
     max(Comparator c)  
     forEach(Consumer c)  
     归约    
     reduce(T iden, BinaryOperator b)  
     reduce(BinaryOperator b)  
      收集    
      collect(Collector c)  
      并行流与串行流    
      parallel、sequential  
     Fork/Join  
     新时间日期 API    
     LocalDate\LocalTime\LocalDateTime  
     DateTimeFormatter  
      Instant  
     Duration  
     Period  
     TemporalAdjuster  
     ZonedDate、ZonedTime、ZonedDateTime : 带时区的时间或日期  
     接口中的默认方法与静态方法    
     类优先  
      Optional 类    
      Optional.of(T t) : 创建一个 Optional 实例  
     Optional.empty() : 创建一个空的 Optional 实例  
     Optional.ofNullable(T t):若 t 不为 null,创建 Optional 实例,否则创建空实例  
     isPresent() : 判断是否包含值  
     orElse(T t) : 如果调用对象包含值,返回该值,否则返回t  
     orElseGet(Supplier s) :如果调用对象包含值,返回该值,否则返回 s 获取的值  
     map(Function f): 如果有值对其处理,并返回处理后的Optional,否则返回 Optional.empty()  
     flatMap(Function mapper):与 map 类似,要求返回值必须是Optional  
      重复注解与类型注解  
     java9    
      模块化系统    
      Modularity  
     jshell    
     /list  
     /vars  
     /open  
     /exit  
     常用算法  
     开源框架解析amp;lt;bramp;gt;    
     Spring5amp;lt;bramp;gt;    
     IOC容器及源码解读amp;lt;bramp;gt;    
     窗口启动及配置类加载流程  
     组件添加  
     组件赋值  
     组件注入  
     后置处理器  
     声明式事务源码解读  
     Spring5容器源码解读  
     AOP使用与分析amp;lt;bramp;gt;    
     @EnableAspectJAutoProxy注解  
     切面注解使用解析  
     AOP源码解读实战  
     SrpingMVCamp;lt;bramp;gt;    
     Servlet3.0的注解实现amp;lt;bramp;gt;    
     ServletContainerlnitaializer容器初始化  
     ServletRegistration注册  
     FilterRegistoration过滤器  
     ServletContext  
     性能实战amp;lt;bramp;gt;    
     基于servlet3.0异步  
     Callable异步  
     DeferredResult异步  
     手写SpringMVC实战amp;lt;bramp;gt;  
     Mybatisamp;lt;bramp;gt;    
     概述    
     为什么要用ORM  
     为什么使用MyBatis  
     MyBatis快速入门  
     进阶    
     MyBatis的配置amp;lt;bramp;gt;  
     映射器的配置amp;lt;bramp;gt;  
     动态SQLamp;lt;bramp;gt;  
     与Spring的集成  
     缓存amp;lt;bramp;gt;  
     关联查询amp;lt;bramp;gt;  
     代码生成器amp;lt;bramp;gt;  
     高级    
     源码分析amp;lt;bramp;gt;  
     插件开发amp;lt;bramp;gt;  
     分页插件使用与源码分析  
     实战    
     快速入门  
     与Spring的集成  
     多对多级联  
     源码分析作业  
     手写一个MyBatis框架  
     高性能架构    
     分布式架构思维amp;lt;bramp;gt;    
     大型互联网架演进过程amp;lt;bramp;gt;  
     架构师应具备的分布知识amp;lt;bramp;gt;  
     主流分布式架构设计详解amp;lt;bramp;gt;  
     分布式协调和分流amp;lt;bramp;gt;    
     Zookeeper分布式环境指挥官amp;lt;bramp;gt;    
     zk的入门  
     zk开发基础  
     zookeeper应用实战  
     协议及算法分析  
     Nginx高并发分流进阶实战amp;lt;bramp;gt;    
     nginx安装  
     正反向代理  
     nginx进程模型  
     核心配置结构  
     日志配置及切割amp;lt;bramp;gt;  
     rewrite的使用amp;lt;bramp;gt;  
     动静分离实战amp;lt;bramp;gt;  
     反向代理实战  
     跨域配置实战amp;lt;bramp;gt;  
     缓存配置及Gzip配置实战amp;lt;bramp;gt;  
     https配置实战amp;lt;bramp;gt;  
     横向拓展带来的问题amp;lt;bramp;gt;  
     LVS实战amp;lt;bramp;gt;  
     异步与消息中间件amp;lt;bramp;gt;    
     概述    
     什么是消息中间件?和RPC有何区别?  
     消息中间件使用场景介绍  
     消息中间件简介及对比    
     ActiveMQ  
     RabbitMQ  
     RocketMQ  
     消息中间件的编年史  
     ActiveMq消息中间件amp;lt;bramp;gt;    
     JMS规范  
     ActiveMQ使用  
     ActiveMQ高级特性和用法  
     实战:限时订单  
     企业级高可用集群部署方案  
     RabbitMQ消息中间件amp;lt;bramp;gt;    
     AMQP规范和RabbitMQ基本概念  
     安装  
     原生java客户端使用  
     消息发布时的权衡  
     消息消费时的权衡  
     消息的拒绝  
     控制队列  
     消息的属性  
     与SPring集成  
     集群化与镜像队列  
     Kafka百万级吞吐实战amp;lt;bramp;gt;    
     Kafka入门  
     Kafka的安装和配置参数  
     Kafka的集群  
     Kafka的生产者和消费者  
     整合Spring  
     深入理解Kafka  
     保证Kafka的可靠数据传递  
     大数据  
     削峰填谷  
     RocketMQ  
     缓存和NoSQLamp;lt;bramp;gt;    
     Redis高生能级存数据库amp;lt;bramp;gt;    
     Redis初入门及介绍    
     String    
     set    
     setnx:有添返回0,没有添加返回ok  
     setex:设置当前key的有效时间  
     setrange:从什么位置开始替换  
     mset:一次添加多个值  
     msetnx:添加多个,不会覆盖以存在的值  
     get    
     getset:返回之前的值,并且添加新值  
     getrange:取String  
     mget:批量取值  
     incr(不存在默认加1)    
     incr:加1  
     incrby:加指定数值  
     decr    
     decr:减1  
     decrby:减指定数值  
     append:向String后追加元素  
     strlen:计算string的长度  
     hash    
     hset:hset user:001 name mym  
     hsetnx:存在返回0不存在返回1  
     hmset:hmset user:003 name mym age 29  
     hget:hget user:001 name  
     hmget user:003 mym age  
     hincrby user:003 age -10  
     hexists user:004 age(判断字段是否在这个hash表中)  
     amp;nbsp;hlen user:003  
     amp;nbsp;hdel user:003 age  
     hkeys user:003(查所有的keys)  
     hvals user:003(查所有的values)  
     amp;nbsp;hgetall user:003(返回所有)  
     list    
     lpush:向左添加  
     rpush:向右添加  
     lpop:弹出左边第一个(删除)  
     rpop:弹出右边第一个(删除)  
     lrange:取值0开始,最后一个可以是-1  
     lrem:lrem mym 1 a(删除一个值)  
     amp;nbsp;lindex:取下标  
     llen:list的长度  
     set    
     无序set    
     sadd  
     scard:集合个数  
     diff:减集  
     siner:交集  
     sunion:并集  
     member    
     smembers:取全部  
     amp;nbsp;srandmember:随机取一个  
     amp;nbsp;sismember:集合是否存在,有返回1无返回0  
     有序z    
     zadd  
     zcard:集合个数  
     zrank:取当前元素在set中的序号  
     zrange:取值0开始,zrange class 0 -1 withscores(拿出排名idnex)  
     flush    
     amp;lt;spanamp;gt;flushdb:清除所在当前位置的数据库表amp;lt;/spanamp;gt;  
     flushall:清除所有数据库中的表  
     select:切换数据库  
     scan:amp;nbsp;scan 0 match *(0:带表偏离量)有点像分页查找  
     java客户端  
     Redis常用命令及多项目设计实战  
     数据一致性  
     Redis性能优化  
     Redis主从模式  
     Redis持久化  
     哨兵核心机制  
     高可用集群  
     MongoDB进阶amp;lt;bramp;gt;    
     mongodb入门    
     nosql与sql使用场景分析  
     基础概念  
     mongodb进阶    
     常用命令  
     快速入门  
     mongodb客户端驱动  
     增删改查与聚合  
     安全控制  
     mongodb高级知识    
     存储引擎  
     索引  
     高可用  
     最佳实践  
     缓存解决方案实战    
     缓存的概念  
     SpringCache的用法amp;lt;bramp;gt;  
     缓存的一致性策略amp;lt;bramp;gt;  
     缓存雪崩方案amp;lt;bramp;gt;  
     缓存穿透方案amp;lt;bramp;gt;  
     高可靠数据存储amp;lt;bramp;gt;    
     Mysql高性能存储实战amp;lt;bramp;gt;    
     Mycat进阶amp;lt;bramp;gt;  
     FastDFS分布式文件存储实战amp;lt;bramp;gt;    
     文件存储实战  
     文件同步实战  
     文件查询实战  
     分布式部署实战  
     分布式常见场景解决方案实战amp;lt;bramp;gt;    
     事务概念amp;lt;bramp;gt;    
     事务与锁amp;lt;bramp;gt;  
     分布式事务产生背景amp;lt;bramp;gt;  
     X/OpenDTP事务模型amp;lt;bramp;gt;  
     标准分布式事务amp;lt;bramp;gt;  
     分布式事务解决方案amp;lt;bramp;gt;    
     两阶段提交amp;lt;bramp;gt;  
     BASE理论柔性事务amp;lt;bramp;gt;  
     TCC方案amp;lt;bramp;gt;  
     补偿性方案amp;lt;bramp;gt;  
     异步确保型与最大努力型amp;lt;bramp;gt;  
     单点登陆方案amp;lt;bramp;gt;    
     单点登陆的问题背景  
     页面跨域问题  
     session跨域共享方案  
     session的扩展  
     分布式任务调试方案amp;lt;bramp;gt;    
     Quartz调度的用法amp;lt;bramp;gt;  
     Elastic-job示例  
     分布式调试的疑难点  
     Quartz集群定制化分布式调试  
     算法  
     微服务架构专题    
     RPC原理amp;lt;bramp;gt;    
     RMI的实现amp;lt;bramp;gt;  
     原理amp;lt;bramp;gt;    
     服务注册与发布amp;lt;bramp;gt;  
     动态代理amp;lt;bramp;gt;  
     序列化与反射amp;lt;bramp;gt;  
     手写RPC框架  
     Dubbo应用及源码解读amp;lt;bramp;gt;    
     Dubbo简介    
     分布式中rpc调用的痛点  
     dubbo主要解决哪些rpc问题  
     dubbo涉及的概念  
     dubbo的部署安装  
     dubbo的配置使用amp;lt;bramp;gt;    
     xml方式  
     注解方式  
     api方式  
     dobbo中各元素属性学习  
     dubbo在项目的用法amp;lt;bramp;gt;    
     类与类的依赖关系说明  
     项目之间的依赖划分  
     实战拆解分布式  
     duboo源码解析    
     dubbo的模块及层级amp;lt;bramp;gt;  
     dubbo的初始化过程amp;lt;bramp;gt;  
     dubbo的服务暴露amp;lt;bramp;gt;  
     dubbo的服务引用amp;lt;bramp;gt;  
     dubbo的服务拦截amp;lt;bramp;gt;  
     服务的注册与发现amp;lt;bramp;gt;  
     springBoot底层探析    
     SpringBoot快速入门amp;lt;bramp;gt;    
     SpringBoot与微服务之间的关系  
     环境搭建amp;lt;bramp;gt;  
     集成SpringMVCamp;lt;bramp;gt;  
     集成mybatisamp;lt;bramp;gt;  
     整合日志amp;lt;bramp;gt;  
     集成JSPamp;lt;bramp;gt;  
     全局异常amp;lt;bramp;gt;  
     打包部署amp;lt;bramp;gt;  
     热部署amp;lt;bramp;gt;  
     集成Swagger构建API管理体系amp;lt;bramp;gt;  
     核心组件    
     starter  
     actuator  
     auto-configuration  
     cli  
     jta+atomikos分布式事务amp;lt;bramp;gt;  
     性能优化    
     jvm参数  
     扫包优化  
     undertow容器  
     @SpringBootApplication源码解读  
     纯手写SpringBoot雏形  
     SpringCloud高级进阶amp;lt;bramp;gt;    
     Zuu路由网关详解及源码探析  
     Ribbon客户端负载均衡原理与算法,与服务端负载均衡区别  
     Feign声明式服务调用方式实现  
     Hystrix服务熔断及服务降级实战  
     Eureka注册中心构件分析amp;lt;bramp;gt;  
     Config配置服务中心与SVN,git快速集成amp;lt;bramp;gt;  
     BUS消息总线技术  
     Sleuth调用链路跟踪  
     Stream消息驱动的微服务  
     Docker虚拟化技术amp;lt;bramp;gt;    
     Docke介绍,安装与使用  
     Docke组成    
     镜像  
     容器  
     私有仓库  
     Docker Compose部署脚本amp;lt;bramp;gt;  
     Docker Redis分布式集群部署amp;lt;bramp;gt;  
     Docker File构建amp;lt;bramp;gt;  
     通Mave插件打包Docker镜像amp;lt;bramp;gt;  
     Docker部署及运行应用程序amp;lt;bramp;gt;  
     Kubernetes编配amp;lt;bramp;gt;  
     基于Docker构建Mysql集群实战  
     高可用SpringCloud微服务与Docker集成实现动态扩容实战amp;lt;bramp;gt;  
     团队协作开发amp;lt;bramp;gt;    
     GITamp;lt;bramp;gt;    
     Git基本工作原理    
     与SVN对比  
     基本动作流程  
     Git常用扣作及问题处理    
     工程初始化及吉隆amp;lt;bramp;gt;  
     文件提交amp;lt;bramp;gt;  
     分支与常用标签应用amp;lt;bramp;gt;  
     远程仓库管理amp;lt;bramp;gt;  
     合并与冲突解决amp;lt;bramp;gt;  
     架构师职责:git Flow必备技能  
     常用指令    
     客户端    
     初始化一个git项目    
     git init  
     git clone [url]  
     添加文件至暂存区    
     git add [file1] [file2] ...  
     git rm -cache [file1] ...  
     git rm --cached -r amp;lt;diramp;gt;  
     git status  
     提交代码至本地仓库    
     git commit -m amp;quot;the commit messageamp;quot;  
     git commit [file1] .. -m [message]  
     git commit -a -m [message]  
     git commit --amend -m [message]  
     分支管理    
     git branch  
     git branch [branchName]  
     git checkout [branchName]  
     git checkout -b dev origin/dev  
     git branch --track [branch] [remote-branch]  
     git branch --set-upstream-to=origin/test test  
     git branch -d [branchname]  
     git push origin --delete [branchname]  
     git branch -dr [remote/branch]  
     标签管理    
     git tag  
     git tag [tagname]  
     git tag -d [tagname]  
     git show [tagname]  
     git push [remote] [tagname]  
     状态信息展示    
     git status  
     git log  
     远程仓库    
     git remote -v  
     git remote add origin [URL]  
     git remote add [shortname] [url]  
     git push [shortname] [branch]  
     git pull [shortname] [branch]    
     --allow-unrelated-histories  
     Mavenamp;lt;bramp;gt;    
     实装和配置amp;lt;bramp;gt;  
     使用入门    
     编写POMamp;lt;bramp;gt;  
     编写主代码amp;lt;bramp;gt;  
     编写测试代码amp;lt;bramp;gt;  
     打包和运行amp;lt;bramp;gt;  
     坐标和依赖    
     Maven坐标以及详解  
     依赖的配置amp;lt;bramp;gt;  
     依赖的范围  
     传递性依赖和依赖调解  
     聚合与继承amp;lt;bramp;gt;    
     聚合  
     继承  
     聚合与继承的关系  
     约定优于配置  
     反应堆  
     生命周期与插件amp;lt;bramp;gt;    
     clean生命周期  
     default生命周期  
     site生命周期  
     命令行与生命周期  
     插件目标  
     插件绑定  
     插件配置  
     常用插件  
     仓库amp;lt;bramp;gt;    
     本地仓库amp;lt;bramp;gt;  
     远程仓库  
     中央仓库  
     快照版本  
     去程版本  
     远程仓库的配置  
     快照版本与镜像  
     版本管理amp;lt;bramp;gt;    
     版本号定义约定  
     主干标签与分支  
     私服- Nexusamp;lt;bramp;gt;    
     实装Nexus  
     Nexus的仓库与仓库组  
     Nexus使用上传配置  
     Maven实战与手写自己的插件amp;lt;bramp;gt;  
     jenkinsamp;lt;bramp;gt;    
     环境搭建amp;lt;bramp;gt;    
     jekins安装  
     jenkins Tomcat实装  
     jenkins Git实装  
     jenkings Maven安装  
     配置管理amp;lt;bramp;gt;    
     jenkins配置  
     jenkins管理  
     jenkins配置程序作来  
     jenkins配置单元测试  
     jenkins配置自动化测试  
     部署分析amp;lt;bramp;gt;    
     jenkins配置邮件通知  
     jenkins配置报表  
     jenkins代码分析  
     jenkins分布式构建  
     jenkins自动部署  
     高级进阶amp;lt;bramp;gt;    
     jenkins指标与趋势  
     jenkins服务器维护  
     jenkins持续部署  
     jenkins插件管理  
     jenkins备份  
     jenkins远程测试  
     DevOps  
     TAPD  
     系统分析师  
     右上角可以点赞,点赞5k免费克隆  
    
 
 
 
 
  0 条评论
 下一页
  
   
   
   
   
  
  
  
  
  
  
  
  
  
  
 