都知道MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。
所以作为一名开发人员,掌握好MyBatis的使用是非常有必要的,特别是像阿里、腾讯等大厂都使用广泛,那么如何能够达到“精通”MyBatis的程度?今天就来好好谈谈。
下面简单介绍一下这份MyBatis源码笔记,每个章节都是深入解析了源码底层在PDF里边有。为了让大家更好的学习MyBatis技术,我也是第一时间展示给大家了!
了解服务注册与发现的基本原理后,如果你要在项目中使用服务注册与发现组件,当面对众多的开源组件该如何进行技术选型?
在互联网公司里,有研发实力的大公司一般会选择自研或者基于开源组件进行二次开发,但是对于中小型公司来说直接选用一款开源软件会是一个不错的选择。
常用的注册与发现组件有eureka,zookeeper,consul,etcd等,由于eureka在2018年已经宣布放弃维护,这里就不再推荐使用了。
业界开源组件
下面结合各个维度对比一下各组件。
组件优点缺点接口类型一致性算法zookeeper1.功能强大,不仅仅只是服务发现;
2.提供watcher机制可以实时获取服务提供者的状态;
3.广泛使用,dubbo等微服务框架已支持;1.没有健康检查;
2.需要在服务中引入sdk,集成复杂度高;
3.不支持多数据中心;sdkPaxosconsul1.开箱即用,方便集成;
2.带健康检查;
3.支持多数据中心;
4.提供web管理界面;不能实时获取服务变换通知restful/dnsRaftetcd1.开箱即用,方便集成;
2.可配置性强1.没有健康检查;
2.需配合三方工具完成服务发现功能;
3.不支持多数据中心;restfulRaft
从整体上看consul的功能更加完备和均衡。接下来以consul为例详细介绍一下。
Consul是HashiCorp公司推出的开源工,使用Go语言开发,具有开箱即可部署方便的特点。Consul是分布式的、高可用的、 可横向扩展的用于实现分布式系统的服务发现与配置。
Consul架构
Consul 实现多数据中心依赖于gossip protocol协议。这样做的目的:
Consul的应用场景包括服务注册发现、服务隔离、服务配置等。
服务注册发现场景中consul作为注册中心,服务地址被注册到consul中以后,可以使用consul提供的dns、http接口查询,consul支持health check。
服务隔离场景中consul支持以服务为单位设置访问策略,能同时支持经典的平台和新兴的平台,支持tls证书分发,service-to-service加密。
服务配置场景中consul提供key-value数据存储功能,并且能将变动迅速地通知出去,借助Consul可以实现配置共享,需要读取配置的服务可以从Consul中读取到准确的配置信息。
文章中涉及到的知识点我都已经整理成了资料,录制了视频供大家下载学习,免费分享,诚意满满,希望可以帮助在这个行业发展的朋友,在论坛博客等地方少花些时间找资料,把有限的时间,真正花在学习上,所以我把这些资料,分享出来。相信对于已经工作和遇到技术瓶颈的朋友们,在这份资料中一定都有你需要的内容。
资料免费获取方式:点击这里免费领取Dubbo、Redis、Netty、zookeeper、Spring cloud、分布式、高并发等架构技术资料
per、Spring cloud、分布式、高并发等架构技术资料](https://docs.qq.com/doc/DSmxTbFJ1cmN1R2dB)**