springrain云原生微服务实现 v1.0

springrain下载

  • 源码大小:8.19MB
  • 源码语言:简体中文
  • 源码类型:国产软件
  • 源码授权:免费软件
  • 源码类别:java源码
  • 应用平台:Java
  • 更新时间:2022-12-01
  • 网友评分:
360通过 腾讯通过 金山通过

情介绍

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不能无感知集成,暂时只能独立运行

测试用例

 //就极简而言,一个数据库只需要一个Service,就可以管理这个数据库的任意一张表
//@Test 查询基本类型
public void testObject() throws Exception{
// Finder finder=new Finder("select id from t_user where 1=1 ");
Finder finder=Finder.getSelectFinder(User.class,"id").append(" WHERE 1=1 ");
finder.append("and id=:userId ").setParam("userId", "admin");
String id = baseDemoService.queryForObject(finder, String.class);
System.out.println(id);

}

//@Test 查询一个对象
public void testObjectUser() throws Exception{
//Finder finder=new Finder("select * from t_user where id=:userId order by id");
Finder finder=Finder.getSelectFinder(User.class).append(" WHERE id=:userId order by id desc ");
finder.setParam("userId", "admin");
User u = baseDemoService.queryForObject(finder, User.class);
System.out.println(u.getName());

}
//@Test 查询分页
public void testMsSql() throws Exception{
//Finder finder=new Finder("select * from t_user order by id");
Finder finder=Finder.getSelectFinder(User.class).append(" order by id desc ");
Listlist = baseDemoService.queryForList(finder, User.class, new Page(2));
System.out.println(list.size());
for(User s:list){
System.out.println(s.getName());
}
}

 

//@Test 调用数据库存储过程
public void testProc() throws Exception{
Finder finder=new Finder();
finder.setParam("unitId", 0);
finder.setProcName("proc_up");
Map queryObjectByProc = (Map) baseDemoService.queryObjectByProc(finder);
System.out.println(queryObjectByProc.get("#update-count-10"));

}

//@Test 调用数据库函数
public void testFunction() throws Exception{
Finder finder=new Finder();
finder.setFunName("fun_userId");
finder.setParam("userId", "admin");
String userName= baseDemoService.queryForObjectByByFunction(finder,String.class);
System.out.println(userName);
}

 

载地址

下载错误?【投诉报错】

springrain云原生微服务实现 v1.0

      气源码

      关文章

      • Java轻量级类隔离框架 SOFAArk Project v2.3.0

        SOFAArk 是一款基于 Java 实现的动态热部署和轻量级类隔离框架,由蚂蚁集团开源贡献,主要提供应用模块的动态热部署和类隔离能力。欢迎需要的朋友下载使用...

      • SpringBlade微服务开发平台 v4.4.0

        SpringBlade 是一个由商业级项目升级优化而来的SpringCloud分布式微服务架构、SpringBoot单体式微服务架构并存的综合型项目,采用Java8 API重构了业务代码,完全遵循阿里巴...

      • Diboot轻代码开发平台 v2.11.0

        Diboot轻代码开发平台是一个面向开发人员的低代码开发平台,将重复性的工作自动化,提高质量、效率、可维护性...

      • RuoYi-activiti工作流平台源码 v4.1

        RuoYi-activiti是一款以若依开源权限管理系统为基础开发平台并集成了activiti框架完成的工作流系统,旨在打造集流程设计、流程部署、流程执行、任务办理、流程监控于一体的...

      • RuoYi若依权限管理系统 v4.7.9

        RuoYi若依权限管理系统是一个基于SpringBoot的权限管理系统,代码易读易懂、界面简洁美观, 核心技术采用Spring、MyBatis、Shiro没有任何其它重度依赖,喜欢的朋友快来下载...

      • Java Struts2漏洞复现工具

        今天给大家分享Java Struts2漏洞复现工具,喜欢的朋友快来下载体验吧...

      • java操作excel的jar包(jxl.jar包 源码)

        jxl.jar是通过java操作excel表格的工具类库,能够修饰单元格属性,是由java语言开发而成的,接下来通过本文给大家介绍java操作excel的jar包(jxl.jar包 源码),喜欢的朋友快...

      • springboot整合QuartJob实现定时器实时管理源代码

        Quartz是一个完全由java编写的开源作业调度框架,形式简易,功能强大,,下面给大家分享springboot整合QuartJob实现定时器实时管理源代码,感兴趣的朋友快来下载体验吧...

      • SOFABoot开源框架 v3.24.0

        SOFABoot 是蚂蚁集团开源的基于 Spring Boot 的研发框架,它在 Spring Boot 的基础上,提供了诸如 Readiness Check,上下文隔离,类隔离,日志空间隔离等等能力...

      • 基于SSM的应急资源管理系统源码 v1.0

        应急资源管理系统用的是是比较流行的SSM和前端JSP技术,用它来创建使用脚本语言,结合HTML代码来制作动态 网页,欢迎需要的朋友下载使用...

      载声明

      ☉ 解压密码:www.jb51.net 就是本站主域名,希望大家看清楚,[ 分享码的获取方法 ]可以参考这篇文章
      ☉ 推荐使用 [ 迅雷 ] 下载,使用 [ WinRAR v5 ] 以上版本解压本站软件。
      ☉ 如果这个软件总是不能下载的请在评论中留言,我们会尽快修复,谢谢!
      ☉ 下载本站资源,如果服务器暂不能下载请过一段时间重试!或者多试试几个下载地址
      ☉ 如果遇到什么问题,请评论留言,我们定会解决问题,谢谢大家支持!
      ☉ 本站提供的一些商业软件是供学习研究之用,如用于商业用途,请购买正版。
      ☉ 本站提供的springrain云原生微服务实现 v1.0资源来源互联网,版权归该下载资源的合法拥有者所有。