08 2018 档案
摘要:一、storm的并发 (1)Workers(JVMs):在一个物理节点上可以运行一个或多个独立的JVM进程。一个Topology可以包含一个或多个worker(并行的跑在不同的物理机上),所以worker process就是执行一个topology的子集, 并且worker只能对应于一个topolo
阅读全文
摘要:一、流式计算概念 利用分布式的思想和方法,对海量“流”式数据进行实时处理,源自业务对海量数据,在“时效”的价值上的挖掘诉求,随着大数据场景应用场景的增长,对流式计算的需求愈发增多,流式计算的一般架构图如下: Flume获取数据-->Kafka传递数据-->Strom计算数据-->Redis保存数据
阅读全文
摘要:一、Kafka核心组件及工作方式 Producer :消息生产者,就是向kafka broker发消息的客户端 Consumer :消息消费者,向kafka broker取消息的客户端 Topic :消息主题 ConsumerGroup(CG):这是kafka用来实现一个topic消息的广播(发给所
阅读全文
摘要:一、为什么需要消息队列 消息队列的核心作用就是三点:解耦一个系统中各个子模块的互相绑定与依赖,异步执行后台耗时逻辑,并行处理一个请求中涉及的多个操作。 以我们常见的下订单场景来说明,我们熟悉的淘宝,后台运作着成千上百的子系统,一个简单的加入购物车并下单的操作,后台要经过购物车存储记录,计费中心计算总
阅读全文
摘要:一、强一致性事务的瓶颈 在《分布式强一致性事务》一文中介绍了分布式事务的常用协议2PC二阶段提交,虽然2PC能在很大程度上实现分布式事务中各节点的ACID,但也存在同步阻塞问题,协调者单点故障,协调者因网络原因导致的通知不周或收不全参与者回复导致的异常等问题。 同时,即使能稳定的使用二阶段提交实现分
阅读全文
摘要:一、事务的概念 事务是一组操作的执行单元,相对于数据库操作来讲,事务管理的是一组SQL指令,比如增加,修改,删除等,事务的一致性,要求,这个事务内的操作必须全部执行成功,如果在此过程种出现了差错,比如有一条SQL语句没有执行成功,那么这一组操作都将全部回滚 最经典的例子便是:A向B汇款500元,B账
阅读全文
摘要:一、分布式服务框架其他组成 上一节《分布式服务框架(一)》讲述了RPC发展到SOA的过程,常见的SOA服务治理方案,以及分布式系统中常见的专业名词,这部分其实只是涉及到了一个分布式系统架构的轮廓,真正一个系统的构建,还需要很多模块互帮互助,协同工作和其他相关平台的搭建。 一个大型,稳健,成熟的分布式
阅读全文
摘要:一、RPC RPC(Remote Process Call),即远程服务调用,被广泛地应用在很多企业应用中,是早期主要的服务治理方案,其流程较为简单,客户端consumer携带参数发送RPC请求到服务提供方provider,provider根据参数路由到具体函数,方法,并将执行获得的结果返回,至此一
阅读全文
摘要:一、Mybatis的多对多映射 本例讲述使用mybatis开发过程中常见的多对多映射查询案例。只抽取关键代码和mapper文件中的关键sql和配置,详细的工程搭建和Mybatis详细的流程代码可参见《Mybatis入门和简单Demo》和《Mybatis的CRUD案例》 完整的工程代码已上传至http
阅读全文
摘要:一、Mybatis的一对多映射 本例讲述使用mybatis开发过程中常见的一对多映射查询案例。只抽取关键代码和mapper文件中的关键sql和配置,详细的工程搭建和Mybatis详细的流程代码可参见《Mybatis入门和简单Demo》和《Mybatis的CRUD案例》 完整的工程代码已上传至http
阅读全文
摘要:一、Mybatis一对一映射 本例讲述使用mybatis开发过程中常见的一对一映射查询案例。只抽取关键代码和mapper文件中的关键sql和配置,详细的工程搭建和Mybatis详细的流程代码可参见《Mybatis入门和简单Demo》和《Mybatis的CRUD案例》 案例:根据一个学生id查询对应的
阅读全文
摘要:本文来自作者 QingCloud实践课堂 在 GitChat 上分享 「Terraform,自动化配置与编排必备利器」 Terraform - Infrastructure as Code 什么是 Terraform Terraform 是一个安全、高效地部署、更改、版本化基础设施和应用程序的工具,
阅读全文
摘要:一、Mybatis的分页查询 由于第一二节较为详细讲述了Mybatis的环境搭建,文件配置,SQL编写和Java代码实现,所以接下来的讲述都将只抽取关键代码和mapper文件中的关键sql,详细的流程和案例可参见《Mybatis入门和简单Demo》和《Mybatis的CRUD案例》。 (1)无条件的
阅读全文
摘要:一、Mybatis增删改查案例 上一节《Mybatis入门和简单Demo》讲了如何Mybatis的由来,工作流程和一个简单的插入案例,本节主要继上一讲完整的展示Mybatis的CRUD操作(重复的动作如环境搭建,引入依赖,mybatis.xml的配置,通用加载工具类的编写等参照上一节。 (1)编写需
阅读全文
摘要:一、Mybatis的诞生 回顾下传统的数据库开发,JDBC和Hibernate是使用最普遍的技术,但这两种ORM框架都存在一定的局限性: JDBC:最原生的技术,简单易学,执行速度快,效率高,适合大数据量的操作,但存在代码繁琐,需要关心驱动的加载,连接的关闭等操作,对于分页等复杂用法,需要自己手动写
阅读全文
摘要:一、设计Serverless的功能模块 第一节讲了Serverless一些概念与特性,废话居多,概念的东西了解过后要有设计与构思,才能学到精髓,一个Serverless平台的形成,涉及到很多模块的架构与搭建,是需要精兵的开发团队才能完成的工作,一个Serverless开发平台涉及的功能模块,大概如下
阅读全文
摘要:一、什么是Serverless 定义:Serverless是一种无服务器的架构,区别于传统的Baas,SAAS,作为FAAS(函数即服务)而存在,函数由事件驱动触发并按需调用。 按需调用:区别于传统的7x24小时运行的服务,Serverless只会在特定事件触发时运行,并按需收费。 无需关注基础设施
阅读全文
摘要:一、供参考的完整日志配置 二、动态修改日志级别 三、自定义appender 以上介绍,均依赖于log4j2提供的官方配置,当对日志的业务逻辑复杂时,光靠配置也许满足不了需要,此时我们会想自己能操控打印的日志,做日志的路由,或保存等操作,这个时候就需要有自定义的appender,可以配置的就靠配置完成
阅读全文
摘要:一、Log4j2高级配置介绍(1) (1)日志输出到文件配置 (2)变量配置引用 (3)动态配置写入配置属性,log4j2中的参数动态匹配需使用${sys:xxx} (4)滚动机制配置 (5)生成策略及压缩配置 (6)限定第三方日志系统级别 (7)Layout格式介绍(此处参考官方API) http
阅读全文
摘要:一、log4j2概述 在日常的开发,测试和生产环境中,日志记录了应用,服务运行过程中的关键信息,以及出现异常时的堆栈,这些信息常常作为查询,定位,解决问题的关键,因此在任何系统中,对日志的使用得当,将极大的提高程序问题解决的效率。 Log4j的1.x版本虽然已经被广泛使用于很多应用程序中,但由于出现
阅读全文
摘要:一、SpringMVC支持在控制器的业务方法中写入参数作为传递过来的变量 二、SpringMVC支持限定某个业务控制方法,只允许GET或POST请求方式访问 三、SpringMVC支持在业务控制方法中写入Request,Response等传统web参数 四、在默认情况下,springmvc不能将St
阅读全文
摘要:一、各司其职 (1)HandlerMapping映射器 根据客户端请求的url,找到处理本次请求的处理器,即将请求的路径和controller关联起来 (2)HandlerAdapter适配器 对映射器查找到的controller中的方法进行调用,包括对实现了Controller接口的控制器适配,H
阅读全文