rpc

gwt - Using List<Serializable> in a RPC call?

て烟熏妆下的殇ゞ 提交于 2019-11-27 05:24:51
I have a RPC service with the following method: public List<Serializable> myMethod(TransactionCall call) {...} But I get a warning when this method is analyzed, and then the rpc call fails Analyzing 'my.project.package.myService' for serializable types Analyzing methods: public abstract java.util.List<java.io.Serializable> myMethod(my.project.package.TransactionCall call) Return type: java.util.List<java.io.Serializable> [...] java.io.Serializable Verifying instantiability (!) Checking all subtypes of Object wich qualify for serialization It seems I can't use Serializable for my List... I

Dubbo(高性能、轻量级的开源Java RPC框架) & RPC(远程过程调用)

余生长醉 提交于 2019-11-27 04:44:45
Dubbo是 [1] 阿里巴巴公司开源的一个高性能优秀的 服务框架 ,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和 [2] Spring 框架无缝集成。 Dubbo是一款高性能、轻量级的开源Java RPC 框架,它提供了三大核心能力: 面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。 RPC:RPC(Remote Procedure Call)— 远程过程调用 ,它是一种通过 网络 从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。 RPC协议 假定某些 传输协议 的存在,如TCP或UDP,为通信程序之间携带信息数据。在OSI 网络通信 模型中,RPC跨越了 传输层 和 应用层 。RPC使得开发包括网络 分布式 多程序在内的应用程序更加容易。 来源: https://www.cnblogs.com/luojie1216/p/11343893.html

exception in GWT RPC app

℡╲_俬逩灬. 提交于 2019-11-27 04:29:36
问题 I am using GWT RPC & Hibernate to insert and retrieve data from MySQL using eclipse environment. I have written two methods in service interfaces to insert & retrieve data from a single MySQL table. The program is running fine but it is raising this exception. Exception in thread "UnitCacheLoader" java.lang.RuntimeException: Unable to read from byte cache at com.google.gwt.dev.util.DiskCache.transferFromStream(DiskCache.java:166) at com.google.gwt.dev.util.DiskCacheToken.readObject

大型网站架构常用解决方案

廉价感情. 提交于 2019-11-27 03:17:41
每个大型网站都是由小变大的,在变大的过程中,几乎都需要经历单机架构、集群架构到分布式架构的演变。而伴随着业务系统架构一同演变的,还有各种外围系统和存储系统,比如关系型数据库的分库分表改造、从本地缓存到分布式缓存的过渡等。 在业务架构逐渐复杂的同时,保证系统的高性能、高可用、易扩展、可伸缩,使框架能有效地满足业务需要,是一个长远而艰巨的任务。本文介绍了五种相关的技术:分布式服务化架构、大流量的限流和削峰、分布式配置管理服务、热点数据的读写优化和数据库的分库分表。 值得注意的是,技术并不是越复杂越好,技术是为了更好地服务业务,只要能达到业务的需求,就是好的技术。简单说就是,即使你有实现复杂技术的能力,没有用户量和利润为基础,也难以落地实施。所以虽然下文中提到了一些框架,但是并不是每一种框架都需要你去亲自实践。很多时候,只是给你提供一个新的思路,一种新的方法,而至于是不是值得被实践,还需要得到业务和用户的考验。 文章目录 分布式服务化架构 集群和分布式 服务化架构,微服务和RPC 服务化架构的组成 服务的横向拆分 服务治理方案 总结 大流量的限流和削峰 分布式系统为什么要进行流量管制 限流方案 削峰方案 基于时间分片的削峰方案 基于异步调用的削峰方案 分布式配置管理服务 热点数据的读写优化 缓存技术 热卖商品的高并发读 基于Redis集群的多写多读方案

json 注释

泄露秘密 提交于 2019-11-27 03:11:14
一、背景 今天聊个小东西,Json的的的注释。Json十分常见,大家用的很多,在语法上,规范的Json要求,文件里不可以写注释。原因呢,我调查了一下: I removed comments from JSON because I saw people were using them to holdparsing directives, a practice which would have destroyed interoperability. I knowthat the lackl of comments makes some people sad, but it shouldn't. 原因是作者看到许多人使用注释来控制Json的解析,所以将它除掉了。 在Sofa-rpc开源框架里使用了宽泛的Json(带有注释),挺有意思,记录一下,以后一定要用带有注释的Json的话,可以参照。 二、使用 使用的方法请下载sofa-rpc(蚂蚁金服项目)源码,RpcConfigs.java文件中init()方法,注释//loadDefault部分 就是使用的例子。有兴趣的可以去看看。 sofa-rpc源码: https://github.com/sofastack/sofa-rpc 来源: https://www.cnblogs.com/lihao007/p/11340847.html

Linux-存储服务之NFS

夙愿已清 提交于 2019-11-27 02:33:41
NFS介绍 官方文档 NFS(Network File System) 即网络文件系统,它最大的功能就是通过 TCP/IP 网络共享资源。在 NFS 的应用中,本地 NFS 的客户端应用可以透明地读写位于远端 NFS 服务器上的文件,就像访问本地文件一样。 NFS 客户端一般是应用服务器(比如 web ,负载均衡等),可以通过挂载的方式将 NFS 服务器端共享的目录挂载到 NFS 客户端本地的目录下。 因为 NFS 支持的功能相当的多,而不同的功能都会使用不同的程序来启动,每启动一个功能就会启用一些端口来传输数据,因此, NFS 的功能所对应的端口才没有固定住,而是随机取用一些未被使用的小于 1024 的端口来作为传输之用。但如此一来又造成了客户端想要连上服务器时的困扰,因为客户端得要知道服务器端的相关端口才能够进行连接。 因此就需要远程过程调用 ( RPC ) 的服务, RPC 最主要的功能就是在指定每个 NFS 功能所对应的 port number ,并且回报给客户端,让客户端可以连接正确的端口上去。那 RPC 又是如何知道每个 NFS 的端口呢?这是因为当服务器在启动 NFS 时会随机取用数个端口,并主动的想 RPC 注册,因此 RPC 可以知道每个端口对应的 NFS 功能,然后 RPC 又是固定使用 port 111 来监听客户端的需求并回报给客户端正确的端口

【远程调用框架】如何实现一个简单的RPC框架(四)优化二:改变底层通信框架

浪子不回头ぞ 提交于 2019-11-27 02:24:24
【如何实现一个简单的RPC框架】系列文章: 【远程调用框架】如何实现一个简单的RPC框架(一)想法与设计 【远程调用框架】如何实现一个简单的RPC框架(二)实现与使用 【远程调用框架】如何实现一个简单的RPC框架(三)优化一:利用动态代理改变用户服务调用方式 【远程调用框架】如何实现一个简单的RPC框架(四)优化二:改变底层通信框架 【远程调用框架】如何实现一个简单的RPC框架(五)优化三:软负载中心设计与实现 第一个优化以及第二个优化修改后的工程代码可下载资源 如何实现一个简单的RPC框架 2优化二 改变底层通信框架 1 目的 2 实现 21 NIO模式 22 nettymina 3优化三服务框架工作日志 2、优化二: 改变底层通信框架 简单socket通信BIO方式-》-》NIO方式-》使用netty服务框架 关于这部分,可以提前阅读下博客 《Java NIO BIO AIO总结》 2.1 目的 问题描述 :在目前的服务框架版本中,服务发布端和服务调用端采用的IO通信模式为BIO,即使用最基础的Java Socket编程的方式。看过我们之前实现介绍部分的读者都知道,服务端一直在监听请求,每当有一个请求发来,则会创建一个新的线程去处理该请求,如下代码: while (true){ Socket socket = serverSocket.accept(); new Thread

基于hprose-golang创建RPC微服务

£可爱£侵袭症+ 提交于 2019-11-27 02:11:10
Hprose (High Performance Remote Object Service Engine) 是一款先进的轻量级、跨语言、跨平台、无侵入式、高性能动态远程对象调用引擎库。它不仅简单易用,而且功能强大。 官网:https://hprose.com/ 本文将讲解如何使用 Hprose go 服务端编写一个微服务,并实现客户端调用。 本文的涉及的项目代码托管在github:https://github.com/52fhy/hprose-sample 。 使用Go实现服务端 初始化 git初始化: git init echo "main" >> .gitignore echo "# hprose-sample" >> README.md 项目使用 go mod 管理依赖,请确保安装的Go版本支持该命令。先初始化 go.mod 文件: go mod init sample 最终项目目录结构一览: ├── config │ └── rd.ini ├── dao ├── main.go ├── model └── util ├── config.go └── state.go ├── service │ └── sample.go ├── go.mod ├── go.sum ├── client_test.go ├── README.md ├── php ├── logs

What is the difference between Document style and RPC style communication?

让人想犯罪 __ 提交于 2019-11-26 23:47:59
问题 Can somebody explain to me the differences between Document and RPC style webservices? Apart from JAX-RPC, the next version is JAX-WS, which supports both Document and RPC styles. I also understand document style webservices are meant for Asynchronous communication where a client would not block until the response is received. Either way, using JAX-WS I currently annotate the service with @Webservice , generate the WSDL and from that WSDL I generate the client side artifacts. Once the

How to listen to firestore through RPC

蹲街弑〆低调 提交于 2019-11-26 21:52:59
问题 I want to listen to real time changes in firestore and I am also only allowed to use Go. Since firestore SDK for Go doesn't have any option to listen for real time changes, I decided to use the firestore v1beta1 sdk. I have written the following code to do that func TestRPCHandler(w http.ResponseWriter, r *http.Request, _ httprouter.Params) { c, err := firestore.NewClient(context.Background()) databaseName := "projects/[project_name]/databases/(default)" if err != nil { panic(err) } stream,