我上面提到过zk,像Dubbo、Kafka等中间件都是用它做注册中心的(后续kafka会把zk去掉)很多技术栈最后都组成了一个知识体系,你先了解了体系中的每一员,你才能把它们联系起来。
服务的交互都从进程内通信变成了远程通信,所以性能必然会受到一些影响。
此外由于很多不确定性的因素,例如网络拥塞、Server 端服务器宕机、挖掘机铲断机房光纤等等,需要许多额外的功能和措施才能保证微服务流畅稳定的工作。
Spring Cloud 中就有 Hystrix 熔断器、Ribbon客户端负载均衡器、Eureka注册中心等等都是用来解决这些问题的微服务组件。
你感觉学习得差不多了,你发现各大论坛博客出现了一些前沿技术,比如容器化、云原生,你可能就会去了解像Docker,Kubernetes(K8s)等技术,你会发现他们给企业级应用提供了怎样的便捷。
微服务之所以能够快速发展,很重要的一个原因就是:容器化技术的发展和容器管理系统的成熟。
这一层的东西呢其实远远不止这些的,我不过多赘述,写多了像个劝退师一样,但是大家也不用慌,大部分的技术都是慢慢接触了,工作中慢慢去了解,去深入的。
这里呢还是想说我经常提到的那句话,你知道的越多,你不知道的越多,所有领域都是这样,一旦你深入了解了这个技术细节,衍生出来的新知识点和他的弊端会让你发现自己的无知,但学到自己不会的不断去进步会让你在学习的道路上走更远的。
好啦我们继续沿着图往下看,那再往下是啥呢?
数据层:数据库可能是整个系统中最值钱的部分了,今年呢也发生了微盟程序员删库跑路的操作,删库跑路其实是我们在网上最常用的笑话,但是这个笑话背后我们应该得到的思考就是,数据是整个企业最重要最核心的东西,我现在在公司的大数据团队对此深有体会。
如果大家对大数据感兴趣我想我后面也可以找机会单独出一期大数据技术栈相关的专题。
数据库基本的事务隔离级别,索引,SQL,主被同步,读写分离等都可能是你学的时候要了解到的。