nodejs连接java工程dubbo服务

nodejs连接java工程dubbo服务

前言碎语 最近公司整体服务架构从MQ迁移到dubbo上,公司有部分项目使用了nodejs服务,故研究了下nodejs的dubbo客户端,以下使用 node-zookeeper-dubbo 客户端为网友提供,因 node-zookeeper-dubbo 本身项目使用的实例描述并不完备,对于非node专业来说,跑一个实例还是有点困难,在博主实践过程中,也遇到很多问题,固有此文,希望可以给同样需求的你一点帮助 开源地为:https://github.com/p412726700/no...

阅读全文 »

Apollo分布式集中配置

Apollo分布式集中配置

1、What is Apollo 1.1 背景 随着程序功能的日益复杂,程序的配置日益增多:各种功能的开关、参数的配置、服务器的地址…… 对程序配置的期望值也越来越高:配置修改后实时生效,灰度发布,分环境、分集群管理配置,完善的权限、审核机制…… 在这样的大环境下,传统的通过配置文件、数据库等方式已经越来越无法满足开发人员对配置管理的需求。 Apollo配置中心应运而生! 1.2 Apoll...

阅读全文 »

AMQP协议模型高阶概述

AMQP协议模型高阶概述

AMQP是什么 AMQP(高级消息队列协议)是一个网络协议。它支持符合要求的客户端应用(application)和消息中间件代理(messaging middleware broker)之间进行通信。 消息代理和他们所扮演的角色 消息代理(message brokers)从发布者(publishers)亦称生产者(producers)那儿接收消息,并根据既定的路由规则把接收到的消息发送给处理消息的消费者(consumers)。 由于AMQP是一个网络协议,所以这个过...

阅读全文 »

基于RabbitMQ+Hessian+spring实现远程RPC调用

基于RabbitMQ+Hessian+spring实现远程RPC调用

1.对Rpc的简单阐述 对RPC通俗的理解就是,调用远程服务和调用本地服务一样透明化无感知。使用过dubbo和motan的同学肯定有这种感觉。实现RPC调用过程,无非解决两个问题: 1.数据的传输:这里使用RabbitMQ来收发消息,保证消息的可靠性 2.请求和响应数据的序列化和反序列化:采用Hessian 如果有自己的序列化方案,还得确定传输的消息体结构,这里不做考虑 2.远程调用过程 首先:消费者...

阅读全文 »

记公司项目架构升级DUBBO

记公司项目架构升级DUBBO

接入前的话: 1.MQ 的好处 项目历史缘故,我们的远程交互除了 http 提供服务外,一直以来大部分的服务都是通过 MQ 的 message 来交互的, mq 性能支撑我们的业务没点问题,而且 mq 本身也支持高可用,横向扩展分布式部署也很方便,而且基于服务端的负载可以去中心化,不需要使用注册中心来提供服务发现。 2. 基于 MQ 服务的不足 但是为什么运行好好的服务需要改造呢?随着业务发展...

阅读全文 »

redisson应用之分布式服务

redisson应用之分布式服务

redisson分布式远程调用 1. 分布式远程服务(Remote Service) 基于Redis的Java分布式远程服务,可以用来通过共享接口执行存在于另一个Redisson实例里的对象方法。换句话说就是通过Redis实现了Java的远程过程调用(RPC)。分布式远程服务基于可以用POJO对象,方法的参数和返回类不受限制,可以是任何类型。 分布式远程服务(Remote Service)提供了两种类型的RRemoteService实例: 服务端(远端)实...

阅读全文 »

redisson应用之分布式锁和同步器

redisson应用之分布式锁和同步器

redisson分布式锁和同步器 1. 可重入锁(Reentrant Lock) Redisson的分布式可重入锁RLock Java对象实现了java.util.concurrent.locks.Lock接口,同时还支持自动过期解锁。 RLock lock = redisson.getLock("anyLock"); // 最常见的使用方法 lock.lock(); // 支持过期解锁功能 // 10秒钟以后自动解锁 // 无需调用unlock方法手动解锁 lock.lock(10, TimeUnit.SECONDS); // 尝试加锁,最多等待100秒,上锁以后10秒自动解锁 boolean res = lock.tryLoc...

阅读全文 »