#项目功能
1.本项目采用springboot框架,采用注解配置方式集成主流框架spring、mybatis等主流框架。
2.使用多数据源的动态切换,实现读写分离,减轻数据库压力。
3.引入kafka中间件,实现项目间解耦、异步快速批处理,并给出消息容错机制,多种方式保障消息被正确消费。
4.采用redis做缓存,将热数据缓存起来,实现快速访问,提高系统性能。
5.使用dubbo做分布式服务框架,将服务集中化管理。
6.使用配置集中化管理,省去性能调优中项目的重新部署。
#一、多数据源动态切换介绍
1.扩展spring框架,在项目启动时缓存多个数据源。
2.使用spring aop功能,运行时获取数据源,并缓存到当前的线程中。(使用者根据不同的项目修改连接点表达式)
3.本项目采用的是一主多从模式实现读写分离减压,需要数据库中的数据相同。主机模式适用于事务操作,从机模式是在从机集中轮询选出一个数据源,此适合非事务操作。
#二、消息中间件使用介绍
1.本项目采用0.9版本kafka中间件,实现消息的订阅与发布。
2.使用消费组的方式消费消息,并且可定义该消费组中的消费者数,建议不超过topic分片数。
4.消息处理逻辑需要根据业务处理,使用者可实现ConsumerCallback接口的doAction方法,定义消费者任务,即可实现业务消息的处理。
5.kafka消息容错。使用者实现CheckReConsumCallback接口的doCheck方法,定义检查任务,即可实现重新消费是失败的消息。如果还是失败,则将消息写入失败文件中,转入人工处理。
#三、免配置化的功能
#1.原理
1.项目启动时从zookeeper配置中心加载配置,并根据配置加载类
2.启动zookeeper配置监控,当zookeeper远程配置被修改时,所有监听该配置的父节点变动的项目会重新启动
3.启动定时器,定期从配置中心加载配置,如果配置有变化,则重新启动项目
#2.配置中心管理
1.配置中心可以通过zkui查看和修改
2.zkui配置可参考https://github.com/DeemOpen/zkui
#3.使用步骤
1.先在zookeeper上增加项目配置文件,如果先启动项目则会找不到文件报错。(将dubboService.txt文件上传到zookeeper配置中心)
2.再启动项目
-
Notifications
You must be signed in to change notification settings - Fork 0
tigerst/springboot-zookeeper-config
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
About
springboot framwork integrated dubbo, redis, kafka, multi-datasource and so on. And centralization of configuration based on zookeeper.
Topics
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published