科技新闻

总结补充

一世执手 提交于 2020-03-22 02:00:05
1.wpf 在xaml 字符串格式化 <TextBlock VerticalAlignment="Center" Foreground="#000080" HorizontalAlignment="Left" Text="{Binding, StringFormat='yyyy-MM-dd HH:mm:ss'}"></TextBlock> 2.wpf mvvm消息传递 注册: Messenger.Default.Register<string>(this, "WinClosed", (message) => { this.Close(); }); 消息发送: Messenger.Default.Send<string>(string.Empty, "WinClosed"); 3.wpf 自带消息弹出窗口 MessageBox.Show("信息!", "提示", MessageBoxButton.OK, MessageBoxImage.Error, MessageBoxResult.OK); 4.wpf mvvm RideoButton的使用 <StackPanel Orientation="Horizontal" Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="2" > <Label Foreground="OrangeRed"

消息队列rabbitmq

扶醉桌前 提交于 2020-03-22 01:01:02
异步逻辑,在工程,集群中,实现 1 通信解耦 2 消峰限流 系统功能 : 秒杀 , 前台门户网站接收海量并发请求 , 只做消息的发送 ( 生产端 ), 发送到消息队列 . 由消费系统实现消费逻辑 , 将秒杀的用户 / 商品入库 ; 历史 业务系统与认证系统的认证(具有高效,权威的算法机构)通信 Rabbitmq 支持企业级别的消息队列功能;性能极高(并发性能),内部使用erlang语言编写交换机的组件,实现多种使用模式的消息队列; 结构 客户端 :rabbitmq不同的模式,对接的客户端语言不同 角色:生产端,负责发送消息到交换机; 消费端,监听队列,获取队列的消息,进行消费; 核心组件 连接对象:长连接(connection),信道连接(channel) 客户端创建单个长连接,在长连接上频繁使用,销毁短连接 交换机:基于erlang语言开发的,并发语言,程序的运行可以控制线程等cpu资源,实现并发的定义.并发能力超高;交换机需要绑定队列使用;在rabbitmq中存在一个默认的交换机AMQP Default 名字是"",绑定一切队列;生产端只能将消息发送给交换机处理 交换机的类型:topic ( 主题类型 ) ,fanout ( 发布订阅 ) ,direct ( 路由类型 ); AMQP default 类型路由类型; 队列 QUEUE: 实现消息存储 , 被消费的位置的内存组件

RabbitMQ入门-Routing直连模式

此生再无相见时 提交于 2020-03-22 00:56:17
Hello World模式,告诉我们如何一对一发送和接收消息; Work模式,告诉我们如何多管齐下高效的消费消息; Publish/Subscribe模式,告诉我们如何广播消息 那么有没有灵活强一点的既可以高效消费,又可以同时送达多个消费者的模式? 有,这就是Routing模式,我又称之为Direct直连模式。 Routing模式 一个生产者P,一个交换机X,多个消息队列Q以及多个消费者C 在Exchange和Queue中,我们看到了不同的规则,也就是Routing Key 显然从图中的说明,我们就知道这是一个log日志根据级别派发消息的例子。熟悉Log日志系统的应该都知道,一般的log系统分为error、info、warn和debug等。从图中我们可以看出,将日志级别为error的定向的派发到第一个消息队列,将error、warn和info级别的日志派发到第一个消息队列。 该模型首先实现了定向派发,而不再是订阅模式那种广播式的派发。同一条消息既可以派发给一个Queue,也可以同时派发给两个或者多个Queue,这就是该模式的灵活之处。下面来看看实例 发送端 /** * Created by jackie on 17/8/7. */ public class EmitLogDirect { private static final String EXCHANGE_NAME =

RabbitMQ学习第一记:用java连接RabbitMQ

 ̄綄美尐妖づ 提交于 2020-03-22 00:56:01
1、什么是RabbitMQ    MQ(Message Queue):消息队列,是服务端设计的一个可以存储大量消息的队列,并提供客户端操作队列的方法:生产队列(向队列中添加数据)、消费队列(从队列中取数据)。RabbitMQ就是基于消息队列的一个典型应用。RabbitMQ除了普通的生产消费功能,还有一些高级功能:公平分发 ,轮询分发,路 由模式,通配符模式,发布订阅,队列持久化。 2、java实现 RabbitMQ的连接 2.1、RabbitMQ客户端jar包 <dependency> <groupId>com.rabbitmq</groupId> <artifactId>amqp-client</artifactId> <version>4.0.2</version> </dependency> 2.2、java连接RabbitMQ工具类 public class ConnectionUtil { private static Logger logger = Logger.getLogger(ConnectionUtil.class); public static Connection getConnection() { try { Connection connection = null; //定义一个连接工厂 ConnectionFactory factory = new

事件通知

心不动则不痛 提交于 2020-03-21 23:37:41
3 月,跳不动了?>>> 在 zookeeper 中,我们可以监控特定的 znode 节点,当节点发生变化时,便会给监控方发送事件通知。这有点类似于发布-订阅模式,拿 Redis 来说,当我们发布新消息时, Redis 便会通知订阅者。 从设计模式上来说,事件通知属于观察者模式。当被观察者发生某种变化时,通知观察者,观察者对通知作出处理。 在业务上,将事件通知独立成一个微服务:事件中心,目的是解耦业务。本质上, kafka 能做什么,事件中心就能做什么。记得看过一句话,大概的意思的是: 任何问题,都能通过抽象一个中间服务层来解决 。 实现一个事件中心,主要包括两部分: 创建事件 订阅事件 拿客户端冷启动的事件为例,我们可能需要在用户打开 APP 的时候,做一些特殊的业务逻辑(这种情况应该挺常见的)。事件中心的业务处理流程包括: 在事件中心创建一个客户端冷启动的标识 业务在后台订阅这个标识,并配置一个请求地址,用于接受回调通知 客户端冷启动时,通知事件中心,事件中心触发回调通知 事件中心充当了代理的角色,因为有了事件中心作为中间层,发布事件的逻辑和消费事件的逻辑可以并行开发,同时,如果有别的业务也需要关注客户端冷启动事件,在事件中心订阅这个事件就可以了。 来源: oschina 链接: https://my.oschina.net/u/3017278/blog/3207906

Laravel 队列发送邮件

泄露秘密 提交于 2020-03-21 23:37:04
批量处理任务的场景在我们开发中是经常使用的,比如邮件群发,消息通知,短信,秒杀等等,我们需要将这个耗时的操作放在队列中来处理,从而大幅度缩短Web请求和相应的时间。下面讲解下Laravel中队列的使用 配置文件 config/queue.php <?php return [ 'default' => env('QUEUE_DRIVER', 'sync'), 'connections' => [ 'sync' => [ 'driver' => 'sync', ], 'database' => [ 'driver' => 'database', 'table' => 'jobs', 'queue' => 'default', 'retry_after' => 90, ], 'beanstalkd' => [ 'driver' => 'beanstalkd', 'host' => 'localhost', 'queue' => 'default', 'retry_after' => 90, ], 'sqs' => [ 'driver' => 'sqs', 'key' => 'your-public-key', 'secret' => 'your-secret-key', 'prefix' => 'https://sqs.us-east-1.amazonaws.com/your

消息推送平台高可用实践(上)

落花浮王杯 提交于 2020-03-21 19:47:37
本文来自 网易云社区 作者:李弈远 消息推送平台为公司内部和第三方应用提供统一消息推送服务,支持广播、私信、组播、附件等多种消息推送方式,覆盖IOS、Android、PC、Web等多种终端,并根据应用特定需求制定各种解决方案。 平台支持水平扩展,支持C5000K高并发下的实时消息推送,通过动态负载均衡、隔离部署、LXC虚拟化和监控报警等多种机制确保系统 的高可用,通过高可用消息队列、自动重连和ACK等机制实现消息可靠性(QoS1),并提供SDK方便产品和应用接入。 本文将在介绍消息推送服务相关功能/非功能特性的基础上,就系统为实现高可用进行的架构设计及部署方案进行探讨。 一、系统特性 1.1 功能特性 提供服务端SDK和各类终端SDK简化产品接入 对接入的产品服务端和终端进行安全认证 支持跨产品消息推送 支持广播、私信、组播、附件推送等多种消息推送方式 根据自定义条件筛选终端用户进行推送 支持IOS、Android、Web、PC、智能设备等多种终端 针对典型应用场景的各种解决方案 对接入的各产品进行统一配置管理 对推送效果进行统计 系统运行时监控及异常报警 1.2 非功能特性 消息可靠性满足QoS1 各种消息推送方式互不阻塞 具备快速水平扩展能力 系统高可用,无单点故障 异常隔离不扩散 消息推送路径跟踪及快速故障诊断 服务质量实时监测 易运维 支持C5000K高并发

RocketMQ之简单使用

亡梦爱人 提交于 2020-03-21 15:59:49
在之前我们是使用 RocketMQ 自带的程序来验证功能,今天我们自己实现下消息的生产和消费。 一、简单使用 1.1 引入依赖: <dependency> <groupId>org.apache.rocketmq</groupId> <artifactId>rocketmq-client</artifactId> <!--和安装的 MQ 版本一致--> <version>4.7.0</version> </dependency> 1.2 新建配置类: public class RocketMQConfig { // 服务器地址 public static final String NAME_SERVER = "192.168.137.47:9876"; } 1.3 新建消费者: public class Producer { public static void main(String[] args) throws MQClientException, RemotingException, InterruptedException, MQBrokerException { // 创建生产者对象,指明了生产者组名 DefaultMQProducer producer = new DefaultMQProducer("simple"); // 设置服务器地址 producer

RocketMQ之Producer

我的未来我决定 提交于 2020-03-21 15:57:21
一、Producer 发送消息的步骤 1) 设置 Producer 的 GroupName(Producer Group是一类 Producer 的集合); 2) 设置 InstanceName,当一个 JVM 需要启动多个 Producer 时,需要指定不同的 InstanceName 来区分,不显式设置时使用默认名称 "DEFAULT"; 3) 设置发送失败重试次数,默认值是2次,可能会出现重复消息,因此需要消费端进行控制; 4) 设置 NameServer 地址; 5) 组装数据并发送 二、不同类型的生产者 生产者向消息队列中写入消息,根据不同的业务场景需要采用不同的写入策略,如同步发送、异步发送、延迟发送和发送事务消息等。 2.1 同步发送 public class Producer { public static void main(String[] args) throws MQClientException, RemotingException, InterruptedException, MQBrokerException { // 创建生产者对象 DefaultMQProducer producer = new DefaultMQProducer("producerGroupName"); // 设置实例化名称 producer.setInstanceName(

雅虎被裁员工写博客表达悲凉心境:晕眩数分钟

ε祈祈猫儿з 提交于 2020-03-21 15:53:01
北京 时间2月14日,据国外媒体报道,雅虎的裁员 工作 已经展开,而被裁员工则在 博客 上发表文章写下了自己的境遇。 正在 计划 进行重组以提高在线广告市场占有率的雅虎于周二向大约1000名员工发出了解雇通知书。曾担任雅虎个人业务部门 管理 人员 的苏珊·梅尼特(Susan Mernit)是被解雇员工之一。她在自己的博客中写道:“今天(星期二)是我在雅虎的最后一天,也是我开始新生活的一天。有什么想法?没有,到目前为止。” 曾负责雅虎运动战略的高级管理人员瑞安·库德尔(Ryan Kuder)也在被解雇之列。他在博客中详细地写下了自己的心境。他说,当天自己是带着“极为紧张的”心情去工作的,最后得到被解雇消息后,“我晕眩了几分钟。人事部门的人过来收走了我的笔记本。”库德尔向自己的同事告别,看起来就像是世界末日般沮丧。“在等待人事部门的招呼的时间里,我只能去收拾我的东西。快点,快点,我很忙。让这一切都结束吧。” 萨利姆·伊斯梅尔(Salim Ismail)的描述则引起了一些争议。曾担任雅虎创新部门Brickhouse主管的伊斯梅尔称自己是自愿离开的。他在自己的博客中写道:“在认真地思考之后,我决定离开雅虎。我有很多自己的计划,我希望借此机会去实现它们。”然而,伊斯梅尔的博客内容引起了一些类似于个人攻击的批评。一向以言辞激烈著称的科技博客“ValleyWag”批评伊斯梅尔说: