个人学习技术学习路径
时光如梭,大学的时光仿佛就像昨天,还历历在目,可实际上已经过去了八年之久。回首这过去八年,发现自己竟然没有留下什么有价值的东西。牛顿曾经说过:我看得远,是因为我站在巨人的肩膀上。虽然我不是什么巨人,只是一枚普普通过的老程序员,但还是希望将自己的经历经验记录下来,希望有缘人有机会可以看到对其有些帮助。至少是对自己过去的经验作一个总结,为后续的工作提供更好的发展。
山外山,天外天,自己自是一个普通的程序员。要自信但也不要自大。。
思想,是编程的核心。而知识的积累是思想的源泉。脚踏实地,做好技术。
本文主要是自己作的Java体系相关的技术。希望2019年能在基础方面有很好的提高。一切高深的技术源于基础,源于基本的算法。所以数据结构与算法,设计模式等是一切框架的基础。因此19年优先打好基础,但同时也要把握住技术趋势,知道技术发展方向。
形成自己的知识体系,进行总结,根据总结不断发散知识的知识体系
SpringCloud及Spring学会使用及背后源码阅读,了解其运行原理
比如eureka内部怎么保证强一致性,springcloud服务降级组件与原理
动态网关zuul原理
robbion负载均衡有几种
mysql同步原理
Java核心
字节码
ASM
Cglib
Javassit
Byte Buddy
skywalking使用
版本管理
ant
maven
gradle
网络编程
Netty
Spring全家桶
- Spring Frameworkd
- SpringMVC
- Spring WebFlux
- Spring boot
- Spring Cloud
- Spring Security
- Spring batch
微服务技术栈
## IOC容器
spring IOC
- Undertow
- Tomcat
- jetty
Guice
- appollo在使用
light-4j
- 内置Undertow容器
WEB服务器
apache
nginx
envoy
注册中心
Eureka(Netflix)
Consul
Nacos
Etcd
Zookeeper
分布式服务权限控制系统
OAuth
JWT
单点登录
Hystrix
shiro
分布式网关层
F5
Ngnix+(打通Consul)
ESB
Kong
Spring gateway
Zuul
开源的SIA
异构网关
服务治理
Zookeeper
Nacos
Eureka
远程调用RPC
DUBBO
Motan
Sofa
SpringCloud
gRPC
BRPC
thrift
Tencent
配置中心
Appollo
Nacos
Disconf
Spring Cloud Config
ETCD
服务降级熔断限流
sentinel
hystrix
Redis
Guava
服务负载
sentinel
ribbon
服务安全认证
spring security
分布式事务
LCN
TCC
SAGA
Seata
dts
tcc-transaction
hmily
ByteTCC
myth
EasyTransaction
tx-lcn
分布式日志系统
ELK
(Kibana,ElasticSearch,Logstash)
Kafka
Flume
Splunk
分布式服务和系统诊断
Arthas
分布式分库分表中间件
sharding
cobar
mycat
TDDL
DRDS
Atlas
DBProxy
分布式数据库分析诊断系统
慢SQL
听云
分布式自动化数据库脚本升级
Flyway
多数据源
Sharding Sphere
MyCat
分布式监控中心
spring Admin
MOSS
- 由许进大神维护,目前还未开源
CAT
SBA
Prometheus
Grafana
很强大
Graphite
Statsd
Solarwinds
Zabbix
Centreon
appDynamics
new relic
Kaeger
服务调用链监控
zipkin
CAT
Pinpoint
skywalking
DynaTrace
分布式锁
Redisson
Redis
Zookeeper
分布式任务调度
xxl-job
elastic-job
分布式全局主键系统
Redis
Zookeeper
Twitter Snowflake
全文搜索引擎
Lucene
Solr
Elasticsearch
分布式消息队列中间件
RocketMQ
Kafka
ActiveMQ
Tibco
Apache Pulsar
缓存体系
分布式缓存
Redis
Jedis
Jedisson
jetcache
MongoDb
MemCache
Hazelcast
Hazelcast是一个用Java编写的基于内存的数据网格管理平台(open source in-memory data grid)。同时也是一个公司的名字。 公司网站:https://hazelcast.com 产品网站:https://hazelcast.org
本地缓存
Ehcache
guava
Caffeine
Java中的ConcurrentHashMap
分布式流程和服务编排
uber/cadence
netflix/conductor
zeebe-io/zeebe
ing-bank/baker
aws/setp functons
分布式压测平台
JMeter
LoadRunner
分布式自动化测试
Postman
Jenkins
Advance REST API(Google浏览器插件)
可持续集成
Jekins
DevOps
CICD
Pipeline
Jenkins
蓝鲸
TriAquae
Choerodon(猪齿鱼)
分布式自动化API文档
Swagger
Yapi
(去哪儿)
Nei
Rap
easy-mock
异构系统(Side Car)
Spring Cloud Sidecar
Service Mesh
istio
Sofa mesh
容器(Docker)化
K8S
K3S
Docker
其它
代码规约
P3C
sonarlint
配合sonarqube使用
工具使用
lombok
Guava
Apache Commons
内网穿透
ngrok
natapp
frp
nat123端口映射
内网通
其它
微服务架构之事件驱动架构
http://m.blog.csdn.net/article/details?id=52537886 DDD、微服务和容器技术三者的关系 http://m.blog.csdn.net/article/details?id=52420859
http://eventuate.io/whyeventdriven.html
事件回溯是CQRS框架的模式, http://eventuate.io/是推CQRS编程方式的。但cqrs不一定要用事件溯源,binlog当事件也可以,看公司投入了。Binlog是数据库之下的,Cqrs是应用层的,很难做到理想状态。CQRS目前最大的优势是研发层全部去事务化,带来的代价是它的编程很别扭,应对简单场景很别扭,但是应对高并发的业务场景,很合适。去事务化太理想了吧,牺牲一致性。
axon 、jdon,这2个框架已经都完全基于Cqrs,全部去事务化了。它的问题在于这重思路做得再完美,也只能解决一个项目20%的复杂问题,因为剩下80%都是相对更简单的场景,简单场景mvc就能搞定,为什么要用你这么复杂的cqrs。
不过不得不说它的去事务方案确实很牛的,反正辩证去看待就好,编程是工程性质的东西,以能解决问题为目的。
Apache ignit
https://www.zybuluo.com/liyuj/note/1179662
h2 (Java实现的数据库)
http://www.h2database.com/html/main.html