博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Dubbo特性结果缓存、并发与连接控制
阅读量:4185 次
发布时间:2019-05-26

本文共 1071 字,大约阅读时间需要 3 分钟。

文章目录

对于热点数据,或者对于一些长期不会变化的数据来说,减少数据库访问查询,对查询结果进行缓存处理。

一、结果缓存

结果缓存 ,用于加速热门数据的访问速度,Dubbo 提供声明式缓存,以减少用户加缓存的工作量 。

dubbo缓存是在本地缓存,在分布式服务中,会缓存多份,在每个服务中缓存。

redis缓存是分布式缓存,所有服务共用一份缓存。

缓存类型
  • lru 算法基于最少使用原则删除多余缓存,保持最热的数据被缓存。
  • thradlocal:当前线程缓存, 比如一个页面渲染,用到很多protal, 每个protal都要去查用户信息,通过线程缓存,可以减少这种多余访问。
  • jcache 与JSR107 集成, 可以桥接各种缓存实现。(用的少)。
配置

或:

注解配置

@Reference(interfaceClass = CinemaServiceAPI.class,cache = "lru")

dubbo可以对连接和并发属性进行控制。

超出部门以错误形式返回。

二、 连接控制

多个消费者访问服务提供者,就会创建多个连接(dubbo长连接)。创建连接数过多会造成服务端资源压力多大。所以需要进行连接访问控制。

服务端连接控制

限制服务端接受的连接不能超过10个。

客户端连接控制

限制客户端服务使用连接不能超过10个。如果是长连接,比如dubbo协议,connections表示该服务对每个提供者建立的长连接数。

三、 并发控制

配置样例
样例1

限制com.foo.BarService的每个方法,服务器端并发执行(或占用线程池线程数)不能超过10个:

样例2

限制com.foo.BarServicesayHello方法,服务器端并发执行(或占用线程池线程数)不能超过10个。

样例3

限制 com.foo.BarService 的每个方法,每个客户端并发执行(或占用连接的请求数)不能超过 10 个:

样例 4

限制 com.foo.BarServicesayHello 方法,每客户端并发执行(或占用连接的请求数)不能超过 10 个:

load Balance 均衡

配置服务的客户端的 loadbalance 属性为 leastactive,此Loadbalance会调用并发数最小的Provider(consumer端并发数)。

转载地址:http://tbfoi.baihongyu.com/

你可能感兴趣的文章
Spring MVC与JAX-RS比较与分析
查看>>
openstack官方docker介绍
查看>>
horizon开发环境搭建及keystone使用总结
查看>>
Google Guice使用入门(转)
查看>>
Google Guava官方教程(中文版)(转)
查看>>
【java开发系列】—— 自定义注解(转)
查看>>
创建虚拟机生成虚拟机全程日志打印输出流程详解(openstack开发必备)
查看>>
ESB简介及选型(转)
查看>>
JAVA编写HTTP代码并发布在网上
查看>>
JDBC连接数据库的原理和步骤
查看>>
开发微信公众平台的基本功能
查看>>
JSP内置对象的学习
查看>>
用java写文件输入输出流,实现复制粘贴的方法
查看>>
学习JSP的方法步骤(参考)
查看>>
JSP中常见TOMCAT错误代码原因
查看>>
MyEclipse中WEB项目加载mysql驱动方法
查看>>
常见编写JAVA报错总结
查看>>
org.gjt.mm.mysql.Driver和com.mysql.jdbc.Driver的区别
查看>>
UTF-8和GBK有什么区别
查看>>
增加MyEclipse分配内存的方法
查看>>