软件 | springrain云原生微服务实现 v1.0 |
内容 |
springrain是spring/springboot的开发范例,基于K8S + Istio 实现云原生微服务。springrain自带代码生成器,能够生成对表的增删改查的逻辑代码。springrain是标准Maven项目,只依赖springboot,没有hibernate,struts,ibatis,数据库调优可以使用druid输出慢sql,比分析xml中的语句更直观,springrain所有的sql语句都使用Finder封装管理,只要查看Finder的引用即可。 微服务 入口项目是springrain-system-web,基于K8S Istio 实现云原生微服务,正在整理文档。 实现了什么? 1、不增加学习成本,像单体一样开发分布式微服务。 2、不修改业务代码,可以实现单体,分层,微服务多种部署模式切换。 3、集成seata分布式事务实现。 4、子项目module的前后端可以独立运行,也可以被无感知集成,实现前后端按需打包。 实现思路 1、启动加载springbean时,先检查本地是否有实现,如果没有就启动GRPC远程调用。开发人员无感知。 2、基于seata分布式事务实现,支持有注解和无注解(开发人员无感知,理论上有不同步风险,个人感觉做好日志,风险不大)混合使用。 3、基于K8S的Service实现服务注册和发现,ConfigMap实现配置中心。开发人员无感知。 4、基于Istio实现微服务的发现,监控,熔断,限流。开发人员无感知。 限制 1、接口和实现的命名强制规范。 2、一个RPC接口只能有一个实现。 3、分布式事务,一定要避免A服务update表t,RPC调用B服务,B服务也update表t。这样A等待B结果,B等待A释放锁,造成死锁。 4、分布式无注解比较方便,理论上有不同步风险,个人感觉做好日志,风险不大 5、Service层不可以使用Servlet API,例如 HttpRequest 6、建议每个前后端module/子项目,都有各自的前缀,方便nginx根据路径解析 7、如果module依赖包的特定版本(例如netty,Grpc)和根项目版本冲突,module不能无感知集成,暂时只能独立运行 测试用例
|
标签 | springrain,微服务 |
缩略图 | ![]() |
软件名称 | springrain云原生微服务实现 v1.0 |
软件图标 | |
软件大小 | 8.19MB |
发布时间 | |
软件平台 | |
软件语言 | 简体中文 |
软件授权 | 免费软件 |
操作系统 | Java |
系统类型 | |
用户评分 | 4 |
软件版本 | |
官方网站 | |
官方网址 | |
软件截图 | |
软件总类 | 源码系统 |
软件大类 | 源码下载-软件开发-java源码-springrain下载 |
软件小类 | java源码 |
开发者 | |
主办单位名称 | |
ICP备案名 | |
备案号 | |
使用年龄 | |
下载链接 | ![]() |
攻略教程 | |
详细介绍 | |
操控设备 | |
隐私政策 | |
查看权限 | |
敏感权限获取说明 | |
软件类型 | 国产软件 |
安全警示 | 适度休息有益身心健康,请勿长期沉迷于使用电脑或刷手机。 |
随便看 |
|
传承兰台文化,共同保存历史记忆!兰台网收藏软件、游戏、图片、图书、电影、电视剧等互联网档案,是免费和可借阅文本、电影、音乐等档案的数字图书馆。