BudWk V7 从零开始搭建微服务开发框架 - 02 技术选型

原创
2021/05/28 17:36
阅读数 397

基础Web框架

重新梳理和考察了Gitee一堆的同类开源框架,他们多采用SpringBoot、SpringCloud技术体系,自己也使用SpringCloud 搭建了个半成品的V7。

首先 SpringBoot 的出现大大减轻 SSH、SSM等Spring系列开发框架的开发难度,他的组件化错略减少了庞杂的配置和初始化工作,但使用 nutz 多年,已经习惯了她的简洁、灵活和语法习惯,SpringBoot 有些方面还是有点“绕”,而 SpringCloud 的技术体系还是繁多,没有 nutzboot 那么省事省心,加之切换基础框架公司学习成本高,那么我们能不能原有的 nutzboot 系列来实现V7的目标呢?来吧,动手试一试。

权限框架

V7 之前一直使用 Shiro 权限框架,这里要吐槽一下,为什么国外的一堆框架非要写的那么复杂呢,明明很简单的东西,非要抽象的那么复杂,牵一发而动全身,真的是……总之,筛选一番,觉得 sa-token 比较符合我的需求,简单、功能强大、省心省力,关键是跟 nutz 一样是国产的!

雪花主键

V7 之前权限相关的表,主键都是UUID格式,有的小伙伴问为什么不使用数据库自带的自增长主键生成方式?那是因为踩过坑,从Tomcat双机部署的时候以及微服务分布式部署的时候,就可能会出现主键冲突、分表分库场景无法满足等问题。

UUID主键是非时序的,对性能有影响,已经不满足现在物联网大数据场景的业务需求,V7之前版本还提供了一种采用 Redis incr 来生成主键的机制,但要在启动时把数据库的最大ID同步到Redis中去,给系统维护带来麻烦。

V7 需要实现雪花主键机制,不存在以上缺点,刚巧发现一款新的开源项目 yitter/IdGenerator,测试了一番,堪用。

注册中心&配置中心

V5与V6 都分别发布了基于 zookeeper 和 nacos 为注册中心的版本,nacos 占用内存比 zk 要大一些。虽然对于使用单一系统的客户来说,nacos 占用内存较大,服务器配置要求高一点,但对于“一体化”使用多套系统的客户来说,只需要一套nacos就可以实现配置和服务治理,性价比高。

V7 选用 nacos 作为注册中心,配置中心相当于赠送的功能了哈哈,而且API网关也可以用到,一举三得。

API网关

经过一番纠结,最终选择采用 nutzboot 中的 nutzcloud-perca,进行删繁就简、深度改造,其基于 jetty-proxy 实现代理功能,基于 nacos 实现服务发现,而 nacos 正是V7的服务注册中心和配置中心,good news。

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部