上一页 1 ··· 14 15 16 17 18 19 20 21 22 ··· 25 下一页
摘要: 前言 在上一篇关于Serlvet框架和Servlet生命周期的学习中,我们已经知道了在多线程的情况下 Servlet是线程不安全的。Servlet体系是建立在java多线程的基础之上的,它的生命周期是由Tomcat 来维护的。当客户端第一次请求Servlet的时候,tomcat会根据web.xml配 阅读全文
posted @ 2018-09-11 17:17 kaleidoscopic 阅读(4521) 评论(0) 推荐(1) 编辑
摘要: 定义接口 使用interface来定义一个接口。接口定义同类的定义类似,也是分为接口的声明和接口体,当中接口体由常量定义和方法定义两部分组成。定义接口的基本格式例如以下: 修饰符:可选,用于指定接口的訪问权限,可选值为public。假设省略则使用默认的訪问权限。接口名:必选參数,用于指定接口的名称, 阅读全文
posted @ 2018-09-11 17:01 kaleidoscopic 阅读(8781) 评论(0) 推荐(0) 编辑
摘要: 前言 不知道你是否遇到过这样的情况,去小卖铺买东西,付了钱,但是店主因为处理了一些其他事,居然忘记你付了钱,又叫你重新付。又或者在网上购物明明已经扣款,但是却告诉我没有发生交易。这一系列情况都是因为没有事务导致的。这说明了事务在生活中的一些重要性。有了事务,你去小卖铺买东西,那就是一手交钱一手交货。 阅读全文
posted @ 2018-09-11 15:30 kaleidoscopic 阅读(733) 评论(0) 推荐(0) 编辑
摘要: 问题的起源 在电商等业务中,系统一般由多个独立的服务组成,如何解决分布式调用时候数据的一致性? 在电商等业务中,系统一般由多个独立的服务组成,如何解决分布式调用时候数据的一致性? 具体业务场景如下,比如一个业务操作,如果同时调用服务 A、B、C,需要满足要么同时成功;要么同时失败。A、B、C 可能是 阅读全文
posted @ 2018-09-11 14:44 kaleidoscopic 阅读(16792) 评论(0) 推荐(1) 编辑
摘要: 当 Linux 最初开发时,在内核中并不能真正支持线程。但是它的确可以通过 clone() 系统调用将进程作为可调度的实体。这个调用创建了调用进程(calling process)的一个拷贝,这个拷贝与调用进程共享相同的地址空间。LinuxThreads 项目使用这个调用来完全在用户空间模拟对线程的 阅读全文
posted @ 2018-09-11 11:17 kaleidoscopic 阅读(992) 评论(0) 推荐(0) 编辑
摘要: 分布式消息系统作为实现分布式系统可扩展、可伸缩性的关键组件,需要具有高吞吐量、高可用等特点。而谈到消息系统的设计,就回避不了两个问题: 消息的顺序问题 消息的重复问题 RocketMQ作为阿里开源的一款高性能、高吞吐量的消息中间件,它是怎样来解决这两个问题的?RocketMQ 有哪些关键特性?其实现 阅读全文
posted @ 2018-09-10 17:54 kaleidoscopic 阅读(275) 评论(0) 推荐(0) 编辑
摘要: 消息队列已经逐渐成为企业IT系统内部通信的核心手段。它具有低耦合、可靠投递、广播、流量控制、最终一致性等一系列功能,成为异步RPC的主要手段之一。 当今市面上有很多主流的消息中间件,如老牌的ActiveMQ、RabbitMQ,炙手可热的Kafka,阿里巴巴自主开发的Notify、MetaQ、Rock 阅读全文
posted @ 2018-09-07 18:23 kaleidoscopic 阅读(357) 评论(0) 推荐(0) 编辑
摘要: 背景 不同于单一架构应用(Monolith), 分布式环境下, 进行事务操作将变得困难, 因为分布式环境通常会有多个数据源, 只用本地数据库事务难以保证多个数据源数据的一致性. 这种情况下, 可以使用两阶段或者三阶段提交协议来完成分布式事务.但是使用这种方式一般来说性能较差, 因为事务管理器需要在多 阅读全文
posted @ 2018-09-07 17:46 kaleidoscopic 阅读(864) 评论(0) 推荐(0) 编辑
摘要: 为什么使用服务发现? 想象一下,如果你在写代码调用一个有REST API或Thrift API的服务,你的代码需要知道一个服务实例的网络地址(IP地址和端口)。运行在物理硬件上的传统应用中,服务实例的网络地址是相对静态的,你的代码可以从一个很少更新的配置文件中读取网络地址。 在一个现代的,基于云的微 阅读全文
posted @ 2018-09-07 17:13 kaleidoscopic 阅读(13548) 评论(0) 推荐(0) 编辑
摘要: 概述 将单体应用改造为微服务实际上是应用现代化的过程,这是开发者们在过去十年来一直在做的事情,所以已经有一些可以复用的经验。 全部重写是绝对不能用的策略,除非你要集中精力从头构建一个基于微服务的应用。虽然听起来很有吸引力,但是风险很大,很有可能会失败。就像MartinFowler所说的:『The o 阅读全文
posted @ 2018-09-07 16:59 kaleidoscopic 阅读(1443) 评论(0) 推荐(0) 编辑
上一页 1 ··· 14 15 16 17 18 19 20 21 22 ··· 25 下一页