在微服务架构中,根据业务需求拆分成一个个的微小服务,然后服务与服务之间可以相互RPC远程调用。在SpringCloud可以使用RestTemplate+Ribbon或者Feign来进行RPC远程调用。为了保证服务高可用性,单个服务通常会进行集群部署。由于网络原因或者自身的原因,服务并不能保证百分之一百可用,如果服务方出现问题,调用这个服务就会出现线程阻塞,此时若有出现大量请求,导致服务方瘫痪。这时
分类:
其他好文 时间:
2019-08-03 23:45:34
阅读次数:
238
上周处理了一个线上问题,经过排查发现是RPC远端调用超时,框架抛出的超时异常没有被捕捉,导致数据进入中间态,无法推进后续处理。好在影响不大,及时修复掉了。 关于这部分的代码规范,之前也有所思考,正好有这个契机做一下整理。 讨论背景和范围 做应用分层架构时,有一种实践方式是将代表外部服务的类如User ...
分类:
其他好文 时间:
2019-08-03 12:33:25
阅读次数:
134
转: dubbo服务降级 dubbo服务降级 1. 在 dubbo 管理控制台配置服务降级 上图的配置含义是:consumer 调用 com.zhang.HelloService 的方法时,直接返回 null,不发起远程调用。 实际操作是:在 zk 的 /dubbo/com.zhang.HelloS ...
分类:
其他好文 时间:
2019-07-30 15:45:38
阅读次数:
82
负载均衡我们都知道在微服务架构中,微服务之间总是需要互相调用,以此来实现一些组合业务的需求。例如组装订单详情数据,由于订单详情里有用户信息,所以订单服务就得调用用户服务来获取用户信息。要实现远程调用就需要发送网络请求,而每个微服务都可能会存在有多个实例分布在不同的机器上,那么当一个微服务调用另一个微服务的时候就需要将请求均匀的分发到各个实例上,以此避免某些实例负载过高,某些实例又太空闲,所以在这种
分类:
编程语言 时间:
2019-07-28 09:48:25
阅读次数:
1260
2019 07 26 初学阶段 对dubbo有一个基础的认识,是一个提供了远程调用的框架。 远程调用是以接口作为契约的,接口规定了方法签名,(尽量按值传递,不要传行为作为参数)。 利用了zookeeper作为服务注册发现中心,这里不谈zookeeper的优缺点,假设是完美的。(enreka) 消费端 ...
分类:
其他好文 时间:
2019-07-26 16:10:28
阅读次数:
151
想要获取更多文章可以访问我的博客 "代码无止境" 。 现在大部分的互联网公司都会采用微服务架构,但具体实现微服务架构的方式有所不同,主流上分为两种,一种是基于Http协议的远程调用,另外一种是基于RPC方式的调用。两种方式都有自己的代表框架,前者是著名的Spring Cloud,后者则是有阿里巴巴开 ...
分类:
其他好文 时间:
2019-07-24 10:11:15
阅读次数:
109
* 远程调用模块的操作方法 URL 参数格式 [项目://][分组/]模块/操作 * @param string $url 调用地址 * @param string|array $vars 调用参数 支持字符串和数组 * @param string $layer 要调用的控制层名称 * @retur ...
分类:
Web程序 时间:
2019-07-21 16:45:12
阅读次数:
124
1.系统构架 企业服务总线(ESB)、微服务、面向服务的架构(SOA) 2.系统系统集成技术 Wsbservice、Socket 3.RPC远程调用的相关开源框架: dubbo、zookeeper、netty 4.关系型数据库 sqlserver oracle db2 mysql postgis 熟 ...
分类:
编程语言 时间:
2019-07-20 09:19:48
阅读次数:
141
一、RPC: RPC【Remote Procedure Call】是指远程过程调用,是一种进程间通信方式,他是一种技术的思想,而不是规范。它允许程序调用另一个地址空间(通常是共享网络的另一台机器上)的过程或函数,而不用程序员显式编码这个远程调用的细节。即程序员无论是调用本地的还是远程的函数,本质上编 ...
分类:
其他好文 时间:
2019-07-20 09:17:41
阅读次数:
93