记录一次quartz.net的rpc调用失败

使用的技术和版本

  在使用net core框架和quartz.net3.0.6版本

前因:

  想把以前的用net做的quartz定时调用的项目,优化一下,

  老版本

    net 4.5 + quartz.net的2.6.1版本 + Dapper + log4net

    owin + quartz 直接实现增加job就增加作业的做法,所有的作业都是保存在内存中的

    缺点:

      每次部署都要修改代码,增加新的job

      开发量和业务混杂

    优点:

      好像想不到...............................

  新版本

    net core 2.1 + quartz.net 3.0.6 + EF + NLog

    1.使用net core的依赖注入

    2.启用了quartz.net的数据库调用模式,把所有的调度放到数据库而不是计算机的内存中

    3.采用了httpClient这个远程调用工具,把业务和调度项目分离

    4.调度项目分为创建调度器项目和调度远程调用项目,实际原理是采用原来的rpc

出现的问题

  net core不支持rpc的调用这种方式所以,net core的这种模式gg了

  改用net原理和上面一样

    

原文地址:https://www.cnblogs.com/hkyyqqq/p/10319350.html

时间: 2024-10-30 02:49:39

记录一次quartz.net的rpc调用失败的相关文章

再谈序列化之rpc调用失败和jackson序列化时不允许Map中的key为null

最近遇到了两个序列化相关的问题,比较典型,备忘特此留笔. 1.rpc调用时未进行序列化而导致的rpc调用失败 使用dubbo框架在进行rpc调用的时候,出现了下面的问题,原因是因为接口参数中的NoSerialReqDto类没有实现Serializable接口,没有进行序列化导致的. Caused by: java.lang.IllegalStateException: Serialized class com.your.package.domain.NoSerialReqDto must imp

浅谈RPC调用

RPC英文全称remote procedure call 翻译成中文的意思就是远程过程调用.RPC的出现其实主要是为了解决分布式系统间的通信透明性的问题. 那什么是分布式系统的通信透明性问题?这个问题就是指分布式系统间的相互调用其实是基本进程间的显式消息交换,然而,消息的发送和接收过程无法隐藏.而通信的隐藏对于分布式中实现访问的透明性是极为重要的.试想一下比如你要想查看一个订单详情,然后订单系统部署了三台机器.假设没有RPC,其它系统想通过调订单系统查询订单详情的信息,就必须知道订单系统部署机器

给Pomelo的聊天室添加time的RPC调用

为了练手,给聊天应用增加一个rpc调用和一个time类型的服务器,在servers/time/remote/timeRemote.js中,添加如下代码: module.exports.getCurrentTime = function (arg1, arg2, cb) { console.log("timeRemote - arg1: " + arg1+ "; " + "arg2: " + arg2); var d = new Date(); v

Hadoop源码学习笔记(4) ——Socket到RPC调用

Hadoop源码学习笔记(4) ——Socket到RPC调用 Hadoop是一个分布式程序,分布在多台机器上运行,事必会涉及到网络编程.那这里如何让网络编程变得简单.透明的呢? 网络编程中,首先我们要学的就是Socket编程,这是网络编程中最底层的程序接口,分为服务器端和客户端,服务器负责监听某个端口,客户端负责连接服务器上的某个端口,一旦连接通过后,服务器和客户端就可以双向通讯了,我们看下示例代码: ServerSocket server = new ServerSocket(8111); S

一个简单RPC框架是如何炼成的(III)——实现带参数的RPC调用

上一篇,我们制定了一个很简单的RPC消息 的格式,但是还遗留了两个问题 我们并没有实现相应的encode和decode方法,没有基于可以跨设备的字符串传输,而是直接的内存变量传递. 现在的RPC request不支持带参数的请求命令.如add(a, b), 如何在RPC消息中描述参数a,b . 我先来实现第二个问题,即带参数的RPC调用. 其实,也没什么太大不同.既然是要带参数,那只能扩展原来的Request消息了,加个parameter成员,用于表示参数,具体的格式采用字典方式,{ 'arg1

闲话RPC调用

原创文章转载请注明出处:@协思, http://zeeman.cnblogs.com 自SOA架构理念提出以来,应用程序间如何以最低耦合度通信的问题便呈现在所有架构师面前. 互联网系统的复杂度让我们不得不大量使用分布式应用,早期通过数据库来交互通信,慢慢地大家发现数据库的耦合是最难解的,并且数据库是最难做负载均衡的,水平拆分,垂直拆分,读写分离让开发的复杂度在不断增加.最终大家发现我们可以把持久化要求不高,结构化程度不强的数据通过分布式缓存.消息队列.NoSQL等一系列手段降低对数据库的依赖,而

RPC调用框架比较分析--转载

原文地址:http://itindex.net/detail/52530-rpc-%E6%A1%86%E6%9E%B6-%E5%88%86%E6%9E%90 什么是RPC: RPC(Remote Procedure Call Protocol)——远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议. 简言之,RPC使得程序能够像访问本地系统资源一样,去访问远端系统资源. 比较关键的一些方面包括,通讯协议,序列化,资源(接口)描述,服务框架,性能,语言支持

自研发RPC调用框架

自主研发设计RPC远程调用框架,实现服务自动注册,服务发现,远程RPC调用,后续实现服务负载均衡 主要包括:客户端服务,服务端,服务发现,服务注册 github地址:https://github.com/btshoutn/rpc_project 原文地址:https://www.cnblogs.com/shoutn/p/8297345.html

rabbitmq学习(四):利用rabbitmq实现远程rpc调用

一.rabbitmq实现rpc调用的原理 ·rabbitmq实现rpc的原理是:客户端向一个队列中发送消息,并注册一个回调的队列用于接收服务端返回的消息,该消息需要声明一个叫做correaltionId的属性,该属性将是该次请求的唯一标识.服务端在接受到消息(在需要时可以验证correaltionId)后,处理消息,并将消息发送到客户端注册的回调队列中.原理图如下: 二.代码实现 下面我们将模拟实现一个rpc客户端和rpc服务端.客户端给服务端发送message,服务端收到后处理message,