(1)消息中间件可以做什么:应用解耦,异步通讯,流量削峰 应用解耦:没有使用消息中间件之前是A应用要和B应用,C应用通讯,一般采用http接口方式,这时A和B,C是耦合的。采用消息中间件后,A,B,C只和消息中间件通讯,实现了应用之间的解耦 异步通讯:对于非主要业务的逻辑可以采用发送消息的方式 流量 ...
分类:
其他好文 时间:
2019-08-08 13:24:33
阅读次数:
83
获取自定义机器人webhook 步骤一,在机器人管理页面选择“自定义”机器人,输入机器人名字并选择要发送消息的群。如果需要的话,可以为机器人设置一个头像。点击“完成添加”,完成后会生成Hook地址,如下图: 步骤二,点击“复制”按钮,即可获得这个机器人对应的Webhook地址,其格式如下: 使用自定 ...
分类:
其他好文 时间:
2019-08-04 19:46:10
阅读次数:
8378
架构模式: 事务发件箱 同时被称作 Application events(系统事件) 上下文 服务命令通常需要更新数据库并发送消息/事件。例如,参与saga的服务需要以原子方式更新数据库并发送消息/事件。同样,发布域事件的服务必须以原子方式更新聚合并发布事件。数据库更新和发送消息必须是原子的,以避免 ...
分类:
其他好文 时间:
2019-08-03 10:42:58
阅读次数:
108
kafka-python地址:https://github.com/dpkp/kafka-python 安装kafka-python:pip install kafka-python 接收消息 发条消息尝试接收,结果是byte类型 发送消息 执行投递消息,查看消费者的输出 窗口也可以展示 ...
分类:
编程语言 时间:
2019-08-02 00:25:52
阅读次数:
139
消息 1. 大多应用中,可通过消息服务中间件来提升系统异步通信、扩展解耦能力 2. 消息服务中两个重要概念: 消息代理(message broker)和目的地(destination) 当消息发送者发送消息以后,将由消息代理接管,消息代理保证消息传递到指定目 的地。 3. 消息队列主要有两种形式的目 ...
分类:
编程语言 时间:
2019-07-31 00:49:32
阅读次数:
94
消息无序产生的原因消息队列,既然是队列就能保证消息在进入队列,以及出队列的时候保证消息的有序性,显然这是在消息的生产端(Producer),但是往往在生产环境中有多个消息的消费端(Consumer),尽管消费端在拉取消息时是有序的,但各个消息由于网络等方面原因无法保证在各个消费端中处理时有序。场景分析先后两次修改了商品信息,消息A和消息B先后同步写入MySQL,接着异步写入消息队列中发送消息,此时
分类:
其他好文 时间:
2019-07-30 12:54:41
阅读次数:
93
Redis发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息 Redis客户端可以订阅任意数量的频道 发布订阅(PUB/SUB)命令 PSUBSCRIBE pattern 订阅一个或多个符合给定模式的频道 PUBSUB subcommand 查看订阅与发 ...
分类:
其他好文 时间:
2019-07-30 01:05:08
阅读次数:
174
作为一个IM系统,核心场景为单聊、群聊。单聊是1对1聊天;群聊是,多个人在一个群里聊天。无论是单聊还是群聊,抽象出会话确实不错,单聊就是两个人在一个会话中聊天,群聊就是多个人在一个会话中聊天。假设会话模型叫做session,则应该有如下的特征: 对于单聊场景,A发送消息给B,AB构成的会话ID由A/ ...
分类:
其他好文 时间:
2019-07-26 11:52:13
阅读次数:
100
1、并发编程模型的两个关键问题:线程之间的通信和同步。 2、并发线程模型有两种: (1)共享内存:线程之间有公共状态,通过读-写内存中的公共状态进行隐式通信,显示同步。 (2)消息传递:线程之间没有公共状态,必须通过发送消息进行显示通信,隐式同步。 3、Java的并发采用共享内存模型,线程间的通信总 ...
分类:
编程语言 时间:
2019-07-20 13:06:17
阅读次数:
101