RabbitMQ文档翻译二(JAVA).工作队列

工作队列在第一个教程中,我们编写了从命名队列发送和接收消息的程序。在本例中,我们将创建一个工作队列,用于在多个工作人员之间分配耗时的任务。工作队列(又名:任务队列)的主要思想是避免立即执行资源密集型任务,并且必须等待任务完成。相反,我们把任务安排在以后完成。我们将任务封装为消息并将其发送到队列。在后台运行的工作进程将从队列弹出(pop操作)任务并最终执行该作业。当您运行多个worker时,任务将在他们之间共享。这个概念在web应用程序中特别有用,因为在短的HTTP请求窗口期间无法处理复杂的任务。准
分类: 其他 发布时间: 10-16 23:55 阅读次数: 0

RabbitMQ文档翻译三(JAVA).发布/订阅

使用转换器发布事件在Disruptor的3.0版本中,添加了一个更丰富的Lambda样式的API,来帮助开发人员将这种复杂性封装在环形缓冲区ring buffer中,因此在3.0之后,发布消息的首选方法是通过API的事件发布器/事件转换器部分。例如。import com.lmax.disruptor.RingBuffer;import com.lmax.disruptor.EventTranslatorOneArg;public class LongEventProducerWithTransla
分类: 其他 发布时间: 10-16 23:54 阅读次数: 0

RabbitMQ文档翻译四(JAVA).路由

这种方法的另一个优点是,转换器Translators可以被拉到一个单独的类中,并且很容易独立地进行单元测试。Disruptor提供了许多不同的接口(EventTranslator、eventtranslatoronerg、EventTranslatorTwoArg等),可以实现这些接口来提供转换器。允许将转换器表示为静态类或lambda表达式形式,原因是这两种形式可以作为参数通过对环形缓冲区的调用传递到转换器。使用旧版本API发布事件我们可以使用一种更“原始”的方法。import com.lmax.d
分类: 其他 发布时间: 10-16 23:54 阅读次数: 0

RabbitMQ文档翻译五(JAVA).主题

显而易见的是,事件发布比使用简单队列更加复杂。这是由于对事件预分配的期望。它需要(在最低级别)一个两阶段的消息发布方法,即声明环缓冲区中的插槽,然后发布可用的数据。还需要将发布包装在try/finally块中。如果我们在环缓冲区中声明一个槽(调用RingBuffer.next())然后我们必须发布此序列。否则会导致Disruptor的状态破坏。具体来说,在多生产商的情况下,这将导致消费者停滞,如果不重新启动就无法恢复。因此,建议使用EventTranslator API。最后一步是把所有部分组装起来。手动
分类: 其他 发布时间: 10-16 23:54 阅读次数: 0

RabbitMQ文档翻译六(JAVA).远程过程调用(RPC)

import com.lmax.disruptor.dsl.Disruptor;import com.lmax.disruptor.RingBuffer;import com.lmax.disruptor.util.DaemonThreadFactory;import java.nio.ByteBuffer;public class LongEventMain{ public static void main(String[] args) throws Exception {
分类: 其他 发布时间: 10-16 23:54 阅读次数: 0

RabbitMQ文档翻译七(JAVA).发送者确认

LongEventProducer producer = new LongEventProducer(ringBuffer); ByteBuffer bb = ByteBuffer.allocate(8); for (long l = 0; true; l++) { bb.putLong(0, l); producer.onData(bb); Thread.sleep(1000); }}}### 使用Java...
分类: 其他 发布时间: 10-16 23:53 阅读次数: 0

Caused by: org.apache.ibatis.reflection.ReflectionException: Could not set property ‘id‘ of ‘class

问题描述Caused by: org.apache.ibatis.reflection.ReflectionException: Could not set property ‘id’ of ‘class XXX’ with value ‘XXX’ Cause: java.lang.IllegalArgumentException: argument type mismatch这是mybatis保存数据时报的一个错,跟着源码找了一下原因。如下:因为mybatis的全局配置com.baomidou.my
分类: 其他 发布时间: 10-16 23:53 阅读次数: 0

mybatis框架order by作为参数传入时失效小坑

mxl中的语句如下<select id="statToday" resultType="com.dahua.la.business.model.vo.StatSysResultVO"> select a, b, count(1) as total from table where a is not null and b is not null and operateTime >= #{
分类: 其他 发布时间: 10-16 23:53 阅读次数: 0

TCC-transaction源码(一):Compensable注解和事务拦截器

一 、Compensable注解的两个切面@Pointcut("@annotation(org.mengyun.tcctransaction.api.Compensable)")org.mengyun.tcctransaction.spring.ConfigurableTransactionAspect顺序 Ordered.HIGHEST_PRECEDENCE;org.mengyun.tcctransaction.interceptor.ResourceCoordinatorAspect
分类: 其他 发布时间: 10-16 23:53 阅读次数: 0

TCC-transaction源码(二):事务恢复

一、为什么需要恢复任务为了处理异常。在TCC事务下,假如A服务调用B服务,B服务超过事务恢复的时间还没有返回,就要取消事务,进行回滚操作,不能让事务一直这么挂着不结束。或者还没等B结果返回A服务就挂了,重启A服务后的遗留事务需要恢复。或者是B返回成功/失败后,A服务执行二阶段的确认提交/回滚事务的方法时候失败了,如果没有异常处理,A的资源便无法释放,事务无法结束。二、恢复任务初始化类public class RecoverScheduledJob { private TransactionR
分类: 其他 发布时间: 10-16 23:52 阅读次数: 0

logstash收不到logback发送的日志

allDelayCancelExceptions.addAll(Arrays.asList(compensableMethodContext.getAnnotation().delayCancelExceptions()));try { // 开启一个事务 transaction = transactionManager.begin(compensableMethodContext.getUniqueIdentity()); try { // 真正执行业务方法
分类: 其他 发布时间: 10-16 23:52 阅读次数: 0

记录logback + ELK日志

logback + ELK日志安装es略安装logstashhttps://www.elastic.co/guide/en/logstash/current/index.html新建一个简单的配置文件,只设置logstash的输入和输出,输入为tcp监听的端口,输出为esinput { tcp { host => "10.1.1.1" port => 4567 mode => "server" code
分类: 其他 发布时间: 10-16 23:52 阅读次数: 0

记录springBoot使用SOCKJS+STOMP长连接

概览WebSocketWebSocket是一种在单个TCP连接上进行全双工通信的协议。WebSocket通信协议于2011年被IETF定为标准RFC 6455,并由RFC7936补充规范。WebSocket API也被W3C定为标准。WebSocket 面临的问题某些浏览器中缺乏对 WebSocket 的支持。支持 WebSocket 的第一个 Internet Explorer version 是 version 10(请参阅http://caniuse.com/websockets以获得浏
分类: 其他 发布时间: 10-16 23:52 阅读次数: 0

arthas选择pid报错、端口占用报错

方便部分朋友上github不方便,我来搬运一下:报错如下:[ERROR] Can not read maven-metadata.xml from: https://maven.aliyun.com/repository/public/com/taobao/arthas/arthas-packaging/maven-metadata.xml[ERROR] Can not find Arthas under local: /root/.arthas/lib and remote: aliyun官方
分类: 其他 发布时间: 10-16 23:51 阅读次数: 0

调试dubbo-1

spring启动解析dubbo的bean定义​ 在dubbo-config-spring 的resources/META-INF/spring.handlers文件中,指定了dubbo的配置解析器, 用来解析dubbo配置文件中的那些标签。key是spring配置文件中的schemaLocation指定的,value是解析器类,一一对应。​ spring容器启动阶段加载配置文件中bean定义的时候(org.springframework.beans.factory.xml.BeanDefinitio..
分类: 其他 发布时间: 10-16 23:51 阅读次数: 0

调试dubbo-2.服务导出

使用SimpMessagingTemplate发送消息public class WebSocketHelperImpl { @Autowired private SimpMessagingTemplate messagingTemplate; /** * 通过websocket点对点发送单一定阅用户 * * @param subsAdd 用户的定阅地址,不需要拼接前缀和用户id * @param msg 发送的内容,Json字符串
分类: 其他 发布时间: 10-16 23:51 阅读次数: 0

调试dubbo-3.服务引用

/** * 通过websocket广播消息,发给所有定阅用户 * * @param subsAdd 用户的定阅地址 * @param msg 发送的内容,Json字符串格式 */public void broadCast(String subsAdd, Object msg) { messagingTemplate.convertAndSend(subsAdd, msg); log.info("BroadCast through webSocket successfull
分类: 其他 发布时间: 10-16 23:51 阅读次数: 0

python write( )函数

(交流学习群 467604262)在博客(python 本地数据获取 网址:http://blog.csdn.net/sxingming/article/details/51333663)中,我们详细介绍了python中文件读写的各种方法。本文通过例子具体示例一下write( )函数的使用。write( )函数的参数是一个字符串,分以下2种情况:1》通过write()函数向文件中写入一行>>> f=open(r"C:\Users\Administrator\Desk.
分类: 其他 发布时间: 10-16 23:50 阅读次数: 0

分享Python爬虫项目让你一次吃到撑,32个!

今天为大家整理了32个Python爬虫项目。整理的原因是,爬虫入门简单快速,也非常适合新入门的小伙伴培养信心。所有链接指向GitHub,祝大家玩的愉快~O(∩_∩)OWechatSogou [1]- 微信公众号爬虫。基于搜狗微信搜索的微信公众号爬虫接口,可以扩展成基于搜狗搜索的爬虫,返回结果是列表,每一项均是公众号具体信息字典。DouBanSpider [2]- 豆瓣读书爬虫。可以爬下豆瓣读书标签下的所有图书,按评分排名依次存储,存储到Excel中,可方便大家筛选搜罗,比如筛选评价人数>10
分类: 其他 发布时间: 10-16 23:50 阅读次数: 0

来自一个学员的反馈【python 网络爬虫入门】

最近两天学习了一下python,并自己写了一个网络爬虫的例子。python版本: 3.5IDE : pycharm 5.0.4要用到的包可以用pycharm下载:File->Default Settings->Default Project->Project Interpreter选择python版本并点右边的加号安装想要的包我选择的网站是中国天气网中的苏州天气,准备抓取最近7天的天气以及最高/最低气温http://www.weather.com.cn/weat...
分类: 其他 发布时间: 10-16 23:50 阅读次数: 0