场景应用

分布式消息队列应用场景之异步处理、应用解耦、流量削锋和消息通讯理解分析

时光怂恿深爱的人放手 提交于 2020-04-07 17:33:27
摘要:消息队列中间件是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削锋等问题。实现高性能,高可用,可伸缩和最终一致性架构。是大型分布式系统不可缺少的中间件。 目前在生产环境,使用较多的消息队列有ActiveMQ,RabbitMQ,Kafka等。 消息队列应用场景 以下介绍消息队列在实际应用中常用的使用场景。异步处理,应用解耦,流量削锋和消息通讯四个场景。 1.异步处理 场景说明:用户注册后,需要发注册邮件和注册短信。传统的做法有两种1.串行的方式;2.并行方式。 (1)串行方式:将注册信息持久化后,发送注册邮件,再发送注册短信。三个业务全部完成后,返回给客户端。 (2)并行方式:将注册信息持久化后,发送注册邮件的同时,发送注册短信。三个业务全部完成后,返回给客户端。与串行的差别是,并行的方式可以提高处理的时间。 假设三个业务节点每个使用100毫秒钟,不考虑其他开销,则串行方式的时间是300ms,并行的时间可能是200毫秒。则串行的方式1秒内可处理3次请求,并行方式1秒内可处理5次请求,综上所述,传统的方式系统的性能(并发量,吞吐量,响应时间)会有瓶颈。如何解决这个问题呢? 引入消息队列,将不是必须的业务逻辑,异步处理。如下图所示 按照上图,用户的响应时间相当于是注册信息写入数据库的时间和将消息插入消息队列,也就是105毫秒。注册邮件,发送短信消息写入队列后,直接返回

一文最全科普FPGA技术知识

馋奶兔 提交于 2020-04-06 13:55:03
FPGA 是可以先购买再设计的“万能”芯片。FPGA (Field Programmable Gate Array)现场可编程门阵列,是在硅片上预先设计实现的具有可编程特性的集成电路,它能够按照设计人员的需求配置为指定的电路结构,让客户不必依赖由芯片制造商设计和制造的 ASIC 芯片。广泛应用在原型验证、通信、汽车电子、工业控制、航空航天、数据中心等领域。 Altera LUT4 架构 FPGA 硬件三大指标: 制程、门级数及 SERDES 速率,配套 EDA 软件工具同样重要。比较 FPGA 产品可以从技术指标入手。从 FPGA 内部结构来看,主要包括:可编程输入/输出单元(I/O)、可编程逻辑块(LC)、 完整的时钟管理(CMT)、嵌入块式 RAM(BRAM)、布线资源、内嵌的底层功能单元和专用硬件模块等。 根据赛灵思披露的数据,一个 LUT6 等效 1.6 个 LC,一个 LC 对应几十到上百“门”,1000 万门约等于 10 万 LC,即 100K CLB 级别 FPGA。与 ASIC 不同的是,客户在选购 FPGA 产品不仅考虑硬件参数,配套 EDA 软件的性能也同样重要。目前国内厂商高端产品在硬件性能指标上均与赛灵思高端产品有较大差距。 相对于ASIC,FPGA具有3点优势: 1、可编辑,更灵活 2、产品上市时间短,节省了 ASIC 流片周期 3、避免一次性工程费用

总结Docker的存储和网络相关

亡梦爱人 提交于 2020-04-05 23:02:03
一、Docker概述 LXC所实现的隔离性主要是来自kernel的namespace, 其中pid, net, ipc, mnt, uts 等namespace将container的进程, 网络, 消息, 文件系统和hostname 隔离开。 cgroups 实现了对资源的配额和度量。 cgroups 的使用非常简单,提供类似文件的接口,在 /cgroup目录下新建一个文件夹即可新建一个group,在此文件夹中新建task文件,并将pid写入该文件,即可实现对该进程的资源控制。 二、网络 (1)网络模型 bridge:网桥网络 当Docker进程启动时,会在主机上创建一个名为docker0的虚拟网桥,此主机上启动的Docker容器会连接到这个虚拟网桥上。虚拟网桥的工作方式和物理交换机类似,这样主机上的所有容器就通过交换机连在了一个二层网络中。 host:主机网络 如果启动容器的时候使用host模式,那么这个容器将不会获得一个独立的Network Namespace,而是和宿主机共用一个Network Namespace。容器将不会虚拟出自己的网卡,配置自己的IP等,而是使用宿主机的IP和端口。但是,容器的其他方面,如文件系统、进程列表等还是和宿主机隔离的。 none:禁用容器网络 container:容器网络 这个模式指定新创建的容器和已经存在的一个容器共享一个 Network

微服务架构设计模式

孤街醉人 提交于 2020-04-05 18:36:59
目录 什么是微服务模式 单体结构的历程 单体地狱的银弹-微服务架构 扩展立方体和服务 微服务架构的好处和弊端 优点 大型的复杂应用程序可以持续交付和持续部署 每个服务都相对较小并容易维护 更好的容错性 更容易实验和采纳新的技术 弊端 服务的拆分和定义是一项挑战 分布式系统带来的各种复杂性 开发者需要思考到底应该在应用的什么阶段使用微服务架构 服务的拆分策略 识别系统操作 创建抽象领域模型 定义系统操作 根据业务能力进行服务拆分 从业务能力到服务 根据子域进行服务拆分 上帝类的处理 什么是微服务模式 随着网络基础设施的高速发展,以及越来越多的个体接入互联网,在考虑构建支持海量请求以及多变业务的软件平台时,微服务架构成为多数人的首选。微服务架构的出现时服务事物发展规律的:当问题足够大,有足够多的的不确定因素时,人们习惯于把大的问题拆分成小的问题。通过分割,抽象和重用小而可靠的功能模块来构建整体方案。但是当这些小的,可重用的部分多来越多的时候,又会出现新的问题。再相似的阶段,人们遇到的问题也是相似的,这个时候人们需要一些共识,需要用一些通用的词汇来描述问题以及解决方案,这也是人们知识的总结,微服务模式就是这样的总结和概括,是一种可以通用的共识,用于描述微服务领域的中的问题及解决方案。 单体结构的历程 在企业发展的初期,应用程序相对较小,所有的代码运行在一个应用程序中有以下好处

join() 方法详解及应用场景

☆樱花仙子☆ 提交于 2020-04-01 01:01:42
总结:join方法的功能就是使 异步执行的线程变成同步执行 。也就是说,当调用线程实例的start方法后,这个方法会立即返回,如果在调用start方法后后需要使用一个由这个线程计算得到的值,就必须使用join方法。如果不使用join方法,就不能保证当执行到start方法后面的某条语句时,这个线程一定会执行完。而使用join方法后,直到这个线程退出,程序才会往下执行。 ============================= 在某些情况下,主线程创建并启动了子线程,如果子线程中需要进行大量的耗时运算,主线程往往将早于子线程结束之前结束,如果主线程想等待子线程执行完毕后,获得子线程中的处理完的某个数据,就要用到join方法了,方法join()的作用是等待线程对象被销毁。 public class Test { public static class MyThread extends Thread { @Override public void run() { try { int m = (int) (Math.random() * 10000); System.out.println("我在子线程中会随机睡上0-9秒,时间为="+m); Thread.sleep(m); } catch (InterruptedException e) { e.printStackTrace(); }

中国银行金融科技建设实践与经验谈

旧城冷巷雨未停 提交于 2020-03-30 15:45:53
2013年,着手研究云计算、分布式技术,提出开放银行概念,构建易商产品系列; 2014年,深入对人工智能、区块链、大数据等新技术进行研究并尝试应用; 2017年,积极推进新技术之间的交叉与融合,规划并逐步构建一系列平台; 2018年,基于人工智能平台构建的“中银大脑”项目荣获人民银行科技发展奖一等奖; …… 这些年,中国银行持续加大金融科技投入力度,加强金融与新技术的融合,并实实在在应用于各大业务场景,对运营效率有显著的影响。 金融与新技术深度融合并落地应用 中国银行陆续规划并构建了云计算、大数据、人工智能三大平台,作为技术转型的基础平台,支撑细分场景下定制化系统的建设和落地应用。 首先,新技术的研究及应用按照“技术预研-原型研发-平台规划-试点应用到规模化应用”的思路,有节奏的推进各系统的建设与落地。 其次,坚持以客户为中心,打造极致客户体验。例如,通过语音导航,可从手机银行上百项功能中直接定位到客户所需的业务功能,并识别客户意图,自动完成预填单,这是运用语音识别、语义分析、智能搜索、机器学习等感知智能和认知智能结合的成功范例,可极大提升客户体验。还可以通过客户画像和行为分析,实现界面功能展示的“千人千面”,并能通过认知大脑分析客户偏好、客户资产和行为偏好,自动推荐适合产品。 第三,筑牢风控合规底线,提升管理智能化水平。通过大数据、人工智能等新技术推动传统风控体系进行智能化转型

node应用场景

你。 提交于 2020-03-30 04:36:21
2.1 Web开发:Express + EJS + Mongoose/MySQL express 是轻量灵活的Nodejs Web应用框架,它可以快速地搭建网站。Express框架建立在Nodejs内置的Http模块上,并对Http模块再包装,从而实际Web请求处理的功能。 ejs 是一个嵌入的Javascript模板引擎,通过编译生成HTML的代码。 mongoose 是MongoDB的对象模型工具,通过Mongoose框架,可以进行访问MongoDB的操作。 mysql 是连接MySQL数据库的通信API,可以进行访问MySQL的操作。 通常用Nodejs做Web开发,需要3个框架配合使用,就像Java中的SSH。 2.2 REST开发:Restify restify 是一个基于Nodejs的REST应用框架,支持服务器端和客户端。restify比起express更专注于REST服务,去掉了express中的template, render等功能,同时强化了REST协议使用,版本化支持,HTTP的异常处理。 2.3 Web聊天室(IM):Express + Socket.io socket.io 一个是基于Nodejs架构体系的,支持websocket的协议用于时时通信的一个软件包。socket.io 给跨浏览器构建实时应用提供了完整的封装,socket

摄像头定位:ICCV2019论文解析

爱⌒轻易说出口 提交于 2020-03-29 07:54:29
摄像头定位: ICCV2019论文解析 SANet: Scene Agnostic Network for Camera Localization 论文链接: http://openaccess.thecvf.com/content_ICCV_2019/papers/Yang_SANet_Scene_Agnostic_Network_for_Camera_Localization_ICCV_2019_paper.pdf The code is available at: https://github.com/ sfu-gruvi-3dv/sanet_relocal_demo 摘要 提出了一种场景不可知的摄像机定位神经网络结构,模型参数和场景相互独立。尽管最近在基于学习的方法方面取得了进展,但大多数方法都需要对每个场景逐一进行训练,这不适用于 SLAM和机器人导航等在线应用,因为在这些应用中,模型必须建立在平面上。本文的方法学习建立分层的场景表示,并预测查询的密集场景坐标图给定任意场景的地面上的 RGB图像。利用预测出的场景坐标图可以估计出查询图像的 6D摄像机姿态。此外,稠密预测还可用于其他在线机器人和 AR应用,如避障。本文在室内和室外基准上证明了本文的方法的有效性和效率,实现了最先进的性能。 1. Introduction

AIOps基本概念以及能力分级

牧云@^-^@ 提交于 2020-03-28 14:55:04
AIOps 自从 Gartner 于2016年提出至今已有一段时间,虽然在顶级互联网及电信企业,已有较多落地,但至今仍无基于生产实践的理论体系及实施指南。 高效运维社区和云计算开源产业联盟(OSCAR联盟)牵头,和互联网大厂如 BATJ、360、华为、平安科技等的 AIOps 负责人联合编写了国内外首个《企业级 AIOps 实施建议》白皮书,以缩AIOps 实施路径。 一、整体介绍 AIOps,即 Artificial Intelligence for IT Operations,智能运维,将人工智能应用于运维领域,基于已有的运维数据(日志、监控信息、应用信息等),通过机器学习的方式来进一步解决自动化运维没办法解决的问题。 早期的运维工作大部分是由运维人员手工完成的,这被称为手工运维或人肉运维。这种落后的生产方式,在互联网业务快速扩张、人力成本高企的时代,难以维系。 这时,出现了自动化运维,用可被自动触发的、预定义规则的脚本,来执行常见的、重复性的运维工作,从而减少人力成本,提高运维效率。 自动化运维可以认为是一种基于行业领域知识和运维场景领域知识的专家系统。 但是,随着整个互联网业务急剧膨胀,以及服务类型的复杂多样,“基于人为指定规则”的专家系统逐渐变得力不从心。自动化运维的不足,日益凸显,这也为 AIOps 带来发展机遇。 AIOps 不依赖于人为指定规则

Java反射机制概念及应用场景

你。 提交于 2020-03-28 07:25:42
Java的反射机制相信大家在平时的业务开发过程中应该很少使用到,但是在一些基础框架的搭建上应用非常广泛,今天简单的总结学习一下。 1. 什么是反射机制? Java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法;这种动态获取的以及动态调用对象的方法的功能称为Java的反射机制。 通俗理解:通过反射,任何类对我们来说都是透明的,想要获取任何东西都可以,破坏程序安全性? 先来看看反射机制都提供了哪些功能。 2. 反射机制能够获取哪些信息? 在运行时判定任意一个对象所属的类; 在运行时构造任意一个类的对象; 在运行时判定任意一个类所具有的成员变量和方法; 在运行时调用任意一个对象的方法; 生成动态代理; 主要的反射机制类: java.lang.Class; //类 java.lang.reflect.Constructor;//构造方法 java.lang.reflect.Field; //类的成员变量 java.lang.reflect.Method;//类的方法java.lang.reflect.Modifier;//访问权限 2.1 class对象的获取 //第一种方式 通过对象getClass方法Person person = new Person();Class<?> class1 = person