一直說(shuō)學(xué)Java,做Java開發(fā),其實(shí)并沒(méi)有做一個(gè)系統(tǒng)的總結(jié)。那么做一個(gè)Java開發(fā),或者是高級(jí)Java開發(fā)、架構(gòu)師,到底要會(huì)哪些東西,哪些原理,先簡(jiǎn)單做一個(gè)總結(jié),也希望能監(jiān)督自己按這個(gè)路線一直的學(xué)習(xí)和總結(jié)下去。
基礎(chǔ)知識(shí):
Java反射:Field、Type
Java代理:proxy、cglib
Java線程:Thread、Runnable、ExecutorService、Callable、Future、ThreadPoolExecutor
Java數(shù)據(jù)結(jié)構(gòu):HashMap ArrayList LinkedList HashSet BlockingQueue ConcurrentHashMap TreeMap
JVM:運(yùn)行時(shí)數(shù)據(jù)區(qū)、堆設(shè)置、收集器設(shè)置、回收日志分析
Lambda表達(dá)式:stream、filter、collect、map、forEach、
并發(fā)與鎖:synchronized、ReentrantLock、ReadWriteLock、Atomic;
通訊協(xié)議:HTTP、TCP/IP、NIO、BIO、WebSocket
數(shù)據(jù)結(jié)構(gòu):表、棧、隊(duì)列、二叉樹、AVL樹、BTree、黑紅數(shù)、散列、圖。
常用算法:冒泡排序,選擇排序,插入排序、堆排序,歸并排序、快速排序;二分查找;布隆過(guò)濾器;
設(shè)計(jì)模式:工廠模式、觀察者模式、單例模式、代理模式、命令模式、策略模式
Web容器:tomcat、jboss、jetty
HTTP服務(wù):httpd、nginx、openResty、kong
工具包:common、poi、gson、guava
構(gòu)建工具:maven、gradle
通訊框架:netty、mina
序列化:hessian、protostuff、json
服務(wù)發(fā)現(xiàn):zookeeper、etcd、eureka、consul
數(shù)據(jù)庫(kù):mysql、mongoDB、redis、mycat、berkeleyDB
連接池:dbcp、c3o0、druid、jdbc、http
大數(shù)據(jù):spark、storm、hadoop、hdfs
容器:docker、k8s
監(jiān)控:zabbix、prometheus
開源框架:
Spring:IOC、AOP、事務(wù)處理
SpringMVC:DispatcherServlet、HandlerMapping、HandlerAdapter、Controller、Intercepter、View
SpringBoot:集成web、hibernate、mybatis、redis、docker下使用
SpringCloud:Netfix、Config、Bus、Eureka、Consul、Stream、Task、Gateway
Hibernate:Configuration、SessionFactory、樂(lè)觀鎖、二級(jí)緩存、高并發(fā)、多數(shù)據(jù)源
Mybatis:Configuration、SqlSession、Executor 、TypeHandler、動(dòng)態(tài)sql、二級(jí)緩存
Netty:nio、拆念包、future、pipeline
Guava:限流算法、布隆過(guò)濾器、JVM緩存
Hystrix:隔離、熔斷、降級(jí)
消息隊(duì)列:rabbitMQ、rocketMQ、kafka
RPC框架:dubbo、motan、thrift、grpc
搜索隱形:Lucene、Elasticsearch、Solr
數(shù)據(jù)庫(kù):
Mysql:主備、讀寫分、橫向縱向拆分、調(diào)優(yōu)、語(yǔ)法、索引、優(yōu)化
Redis:主備、讀寫分離、持久化、命中和過(guò)期
MogoDB:集合、文檔、文件、索引、聚合函數(shù)、分片
消息隊(duì)列:
概念:topic、message、queue、producer、consumer、broker
消息類型:順序消息、定時(shí)消息、延遲消息、事務(wù)消息
消息回溯、消息堆積、消息拉取、消息簽收
高并發(fā):
服務(wù)拆分:微服務(wù)化、分布式事務(wù)、數(shù)據(jù)庫(kù)水平垂直拆分
服務(wù)治理:zookeeper、rpc
消息隊(duì)列:異步處理、最終一致性
緩存技術(shù):JVM緩存、redis緩存、nginx緩存、CDN緩存、瀏覽器緩存。緩存擊穿、緩存雪崩、緩存淘汰
高可用:
負(fù)載均衡:算法、動(dòng)靜分離、切換、檢測(cè)
超時(shí)重試:超時(shí)時(shí)間、重試機(jī)制和策略
限流:算法、容器、nginx、防止抖動(dòng)
隔離:線程隔離、進(jìn)程隔離、機(jī)房隔離、讀寫隔離、動(dòng)靜隔離,采用hystrix、servlet3做隔離熔斷
降級(jí):自動(dòng)降級(jí)、人工降級(jí),控制中心,采用hystrix手段
監(jiān)控:進(jìn)程監(jiān)控、線程監(jiān)控、機(jī)器監(jiān)控,報(bào)警
問(wèn)題解決:
1.如何解決單點(diǎn)故障;(lvs、F5、A10、Zookeep、MQ)
2.如何保證數(shù)據(jù)安全性;(熱備、冷備、異地多活)
3.如何解決檢索難題;(數(shù)據(jù)庫(kù)代理中間件:mysql-proxy、Cobar、MaxScale等;)
4.如何解決統(tǒng)計(jì)分析問(wèn)題;(離線、近實(shí)時(shí))
喜歡的朋友一定要分享給周邊的朋友哦!