互联网技术架构选型方法
分布式任务调度框架选型,如何选择一个合适的框架?
前端时间研究了两款分布式任务调度框架,一个是XXL-Job,现在非常主流,很多常见的一些公司都在使用,像滴滴美团这样的公司都在用,这也是一款开源产品,下载下来导入IDEA就可以使用,分调度器和执行器和管理UI,有很美观的UI界面,可以对任务做增删改查,以及支持自定义开发,有很详细的帮助文档,还提供有demo,傻瓜式的,很简单,亮点是提供了管理界面。
另一个是Quartz,这个组件单机和集群都支持,单机的话是RAMJobStore任务存储,而要支持集群的话,就要将配置改成数据库方式,Quartz提供的有十几张表,其分布式的原理是利用了数据库的行锁,Quartz很简单,也是一款轻量级的开源产品,我们公司一直用这款组件,很成熟无Bug,推荐使用!
先介绍几种比较主流的。
Elastic-Job,是当当网开源的分布式调度解决方案,支持任务分片功能,可以充分利用***。Elastic-Job有两个独立的子项目Elastic-Job-Lite和Elastic-Job-Cloud组成。具体实现可以参考官方教程。其整体架构图如下。
Elastic-Job的特点:
1、分布式调度 2、作业高可用 3、任务分片执行。
另外,还有其他的一些框架,可以对比使用。比如TBSchedule是阿里巴巴开源的分布式调度框架,完全由java实现,目前被应用于淘宝,阿里巴巴,支付宝,京东,汽车之家等。大众点评开源的xxl-job,也是应用比较广泛的分布式调度任务。
目前我使用过的有 Elastic-Job和xxl-job。两者功能都很强大,后台管理也比较完善。很容易上手。都可以满足日常的工作需要。区别就是 Elastic-Job依赖zk,但是xxl-job不依赖zk,只依赖数据库。
目前市面上应该还有一些其他的框架,但是以上是比较主流的,可以根据自己的需要来选择。切记不要重复造轮子,造轮子需要大量的时间去验证。会让你在坑里爬不出来。
谢谢,希望对你有帮助,有问题可以留言,我们一起讨论!
这类开源的项目很多,给你推荐2个我之前分享,都是基于.NetCore的开源项目:
项目简介
这是一个基于.Net Core构建的简单、跨平台、模块化的分布式任务调度系统。界面清爽大气、功能完备、高可用、数据安全,代码结构清晰,开发效率高,整体来说一个非常不错的系统。
技术架构
1、跨平台:这是基于.Net Core开发的系统,可以部署在Docker, Windows, Linux, Mac。
2、数据库支持:Microsoft SQL Server, PostgreSQL, MySQL。
3、技术栈:ASP.NET Core3.1、EntityFramework Core3.0、Mysql5.7、Quartz.Net。
项目简介
从事互联网金融开发需要哪些技术?
朋友你好,本人是一名主要从事互联网金融方向开发Java工程师,这里将分享下我的经验希望对你有所帮助。想从事互联网金融方向需具备两个能力:开发能力、金融[_a***_]的知识。
开发能力
需要掌握至少一门基础开发语言如J***a,PHP等。由于我比较熟悉J***a方面的知识,所以接下来以J***a开发为例,需学习一些框架知识如Spring,Mybatis,Springboot等框架有助于提高开发效率,M***en版本控制和Git版本管理用于团队协作开发,数据库知识等。同时,由于互联网金融涉及到金钱方面所以需要比较严谨,需要学习了解事务管理,幂等性,重试机制等概念。
金融知识
需要了解一些金融有关的知识有助于提高开发效率。如银行业务,保理业务,支付业务等金融知识和一些专业的术语。有了这些基础概念之后有助于理解业务需求。
开发流程
在有一定的开发基础和金融知识基础之后便可以进行开发,大致步骤可归纳如下
以上便是互联网金融方向开发的大致情况,希望对你有所帮助。本头条号也会持续保持分享一些IT方面的技术文章,其中也包括了互联网金融方面的知识,欢迎关注共同讨论进步。
专注互联网金融的开发,欢迎关注
这需要看什么级别的开发,如果只是专注开发,那么j***a基础必须扎实,spring全家桶系列框架,mybatis等需要掌握,分布式微服务的相关框架需要掌握,比如dubbo。这样对于一个开发来说已经差不多了。
但是,对于高级别的来说仅仅会开发是不够的,此时相对开发更需要的是设计和解决方案,作为核心骨干,需要有全局的意识,对全流程的深入掌握,是较低级别开发的引领者。那么就要求熟悉业务,熟悉产品,对技术需要深入研究,还必须要有广度。比如dubbo,不再停留在会使用,底层的原理也需要了解掌握,分布式原理,集群。业务架构设计,技术架构设计,详细设计,代码审查等等。
一般的学习顺序为:html,javascript,servlet,jsp,还有主流的ssh框架。J***aEE:第一阶段J***a语言基础:J***a开发介绍、熟悉Eclipse开发工具、J***a语言基础、J***a流程控制、J***a字符串、J***a数组与类和对象、数字处理类与核心技术、I/O与发射,多线程、swing程序与***类;第二阶段HTML、CSS与j***ascript:PC端网站布局、HTML5+CSS3基础、Webapp页面布局、原生j***ascript交互功能开发、Ajax异步交互、jQuery应用;第三阶段:J***aWeb和数据库:数据库、J***aWeb开发核心、J***aWeb开发内幕;第四阶段J***aEE框架:Struts2、Spring框架、Hibernate框架、M***en核心技术、MyBaits框架、高手进阶;相关的工作:企业级项目开发,还可以从事电信、互联网、物流、财务、证劵、银行、生产制造等erp管理软件、大型网站及后台开发。
[免责声明]本文来源于网络,不代表本站立场,如转载内容涉及版权等问题,请联系邮箱:83115484@qq.com,我们会予以删除相关文章,保证您的权利。转载请注明出处:http://www.wnpsw.com/post/10385.html