正文内容加载中...
posted @ 2020-03-03 09:29 李福春 阅读(108) 评论(1) 推荐(1) 编辑
正文内容加载中...
posted @ 2019-08-16 15:01 李福春 阅读(68) 评论(0) 推荐(0) 编辑
正文内容加载中...
posted @ 2019-08-16 15:00 李福春 阅读(0) 评论(0) 推荐(0) 编辑
正文内容加载中...
posted @ 2015-09-18 03:25 李福春 阅读(3292) 评论(0) 推荐(1) 编辑
正文内容加载中...
posted @ 2014-07-01 10:23 李福春 阅读(41147) 评论(0) 推荐(5) 编辑
正文内容加载中...
posted @ 2014-06-27 14:53 李福春 阅读(36285) 评论(2) 推荐(2) 编辑
正文内容加载中...
posted @ 2014-03-13 17:02 李福春 阅读(808) 评论(1) 推荐(1) 编辑
正文内容加载中...
posted @ 2014-03-11 21:11 李福春 阅读(517) 评论(0) 推荐(0) 编辑
正文内容加载中...
posted @ 2014-03-10 17:48 李福春 阅读(477) 评论(0) 推荐(0) 编辑
正文内容加载中...
posted @ 2014-03-10 17:36 李福春 阅读(417) 评论(0) 推荐(0) 编辑
正文内容加载中...
posted @ 2014-03-07 15:57 李福春 阅读(178) 评论(0) 推荐(1) 编辑
正文内容加载中...
posted @ 2014-03-07 15:05 李福春 阅读(2594) 评论(0) 推荐(0) 编辑
正文内容加载中...
posted @ 2014-03-05 14:16 李福春 阅读(13962) 评论(0) 推荐(0) 编辑
正文内容加载中...
posted @ 2014-03-05 09:47 李福春 阅读(534) 评论(0) 推荐(0) 编辑
正文内容加载中...
posted @ 2014-03-03 14:43 李福春 阅读(5778) 评论(1) 推荐(0) 编辑
正文内容加载中...
posted @ 2013-11-20 17:52 李福春 阅读(433) 评论(0) 推荐(0) 编辑
正文内容加载中...
posted @ 2013-11-20 14:48 李福春 阅读(256) 评论(0) 推荐(0) 编辑
正文内容加载中...
posted @ 2013-06-18 18:35 李福春 阅读(4349) 评论(0) 推荐(0) 编辑
正文内容加载中...
posted @ 2012-10-05 12:12 李福春 阅读(5608) 评论(4) 推荐(3) 编辑
正文内容加载中...
posted @ 2012-07-18 23:17 李福春 阅读(129) 评论(0) 推荐(0) 编辑
摘要:图中是暗黑领域,非常牛逼的技能。 背景 DDD中出现的名词: 领域,子领域,核心域,通用域,支撑域,限界上下文,聚合,聚合根,实体,值对象 都是关键概念,但是又比较晦涩,在开始DDD之前,搞清楚这些关键概念名词非常的重要。 那它们作用体现在哪里呢? 领域-子领域 领域是: 从事专门活动或者事业的范围 阅读全文
posted @ 2020-05-30 23:39 李福春 阅读(28) 评论(0) 推荐(0) 编辑
摘要:背景 名词解释 如果你的团队目前正是构建微服务架构风格的软件系统,问自己两个问题? 软件架构演进 软件架构大致经历了从单机架构,集中式架构,分布式微服架构,程序的层次图如下所示。 单机架构 特点如下: 1, 面向过程的设计方法; 2, 结构为CS; 3,程序的层次分两层,即UI层和数据库层; 4, 阅读全文
posted @ 2020-05-30 15:49 李福春 阅读(68) 评论(3) 推荐(0) 编辑
摘要:简介 scalable open financial architecture stack , 可扩展开放的金融架构栈; github: https://github.com/sofastack/sofa-boot 快速构建金融级别云原生架构的中间件。 特点: 开放,金融级别,云原生; 微服务体系组 阅读全文
posted @ 2020-05-26 22:56 李福春 阅读(27) 评论(0) 推荐(0) 编辑
摘要:cola扩展点使用和设计初探 封装变化,可灵活应对程序的需求变化。 扩展点使用 步骤: 定义扩展点接口,类型可以是校验器,转换器,实体; 必须以ExtPt结尾,表示一个扩展点。 比如,我定义一个云枢的组织结构的扩展点接口,消息发送扩展点,二开扩展点,webapi的rest接口扩展点点。 定义扩展点接 阅读全文
posted @ 2020-05-25 23:23 李福春 阅读(91) 评论(0) 推荐(0) 编辑
摘要:导弹拦截,精准防御。 背景 拦截器:在不修改应用程序业务逻辑的情况下,一组基于事件的可插拔的逻辑处理链; 类比springMVC的拦截器: 这些都是通过配置拦截器,插入到应用程序中,实现可插拔的修改业务逻辑; kafka在0.10.0.0版本中开始引入拦截器。分为生产者拦截器和消费者拦截器,类似责任 阅读全文
posted @ 2020-05-06 14:09 李福春 阅读(245) 评论(0) 推荐(0) 编辑
摘要:如何设计出核心功能稳定,业务功能不断扩展的软件系统,我想到了微内核架构。 定义 微内核架构又叫做插件架构,是面向功能进行拆分的可扩展架构。 比如:Eclipse插件,Linux ; 架构图 插件管理 插件注册表机制:名字,位置,加载时机; 插件连接 指的是插件如何连接到核心系统。 插件间通信 插件之 阅读全文
posted @ 2020-04-27 20:08 李福春 阅读(50) 评论(0) 推荐(0) 编辑
摘要:背景 这里的kafka值得是broker,broker消息丢失的边界需要对齐一下: 1 已经提交的消息 2 有限度的持久化 如果消息没提交成功,并不是broke丢失了消息; 有限度的持久化(broker可用) 生产者丢失消息 这个发送消息的方式是异步的;fire and forget,发送而不管结果 阅读全文
posted @ 2020-04-27 00:14 李福春 阅读(116) 评论(0) 推荐(0) 编辑
摘要:背景 保证kafka高吞吐量的另外一大利器就是消息压缩。就像上图中的压缩饼干。 压缩即空间换时间,通过空间的压缩带来速度的提升,即通过少量的cpu消耗来减少磁盘和网络传输的io。 消息压缩模型 消息格式V1 kafka不会直接操作单条消息,而是直接操作一个消息集合。 消息格式V2: 1, 抽取了消息 阅读全文
posted @ 2020-04-24 23:57 李福春 阅读(290) 评论(0) 推荐(1) 编辑
摘要:背景 kafka如何支撑海量消息的集中写入? 答案就是消息分区。 核心思想是:负载均衡,采用合适的分区策略把消息写到不同的broker上的分区中; 其它的产品中有类似的思想。 比如monogodb, es 里面叫做 shard; hbase叫region, cassdra叫vnode; 消息的三层结 阅读全文
posted @ 2020-04-22 23:18 李福春 阅读(352) 评论(0) 推荐(1) 编辑
摘要:使用场景 大数据:数据量和速率激增,数据类型越来越复杂 应用开发:消息引擎,应用解耦,分布式存储,流处理 Kafka的体系结构 topic : 主题(消息的逻辑分类) 客户端: 细分为生产者(朝主题发送消息), 消费者(读取主题的消息); 服务端: broker (1 处理客户端发送和提供消费支持 阅读全文
posted @ 2020-04-17 10:56 李福春 阅读(81) 评论(0) 推荐(0) 编辑
摘要:最近在积极找工作,入手了一本面试指导书,觉得还不错,分享出一些面试的一些要点。 希望跟我一样的面试者少走弯路。 面试的侧重点 反问面试官的问题:了解公司近况,询问项目,职位相关的问题 面试就当平常的技术交流,体现出软实力(整体的规划和设计)和硬实力(高质量的代码) 面试的形式 简历通过筛选之后就进入 阅读全文
posted @ 2020-04-15 12:07 李福春 阅读(101) 评论(0) 推荐(1) 编辑
摘要:面试中被问到为什么要使用微服务架构?springcloud的核心组件有哪些? 拿我们国家的兵种来说,如何把战争这个单体架构微服务化,就是根据适用的场景,拆分出不同的兵种(微服务) 然后每个兵种之间通过军区指挥部采用特有的通信协议连接起来(RPC) ; 每个兵种内部自治,有自己的业务,数据,部署单元( 阅读全文
posted @ 2020-04-13 15:28 李福春 阅读(431) 评论(0) 推荐(2) 编辑
摘要:线程池原理和使用在面试中被高频问到,比如阿里的面试题。下面我们针对问题来进行回答。 为什么要使用线程池? 线程池的使用场景有2: 1, 高并发场景:比如tomcat的处理机制,内置了线程池处理http请求; 2,异步任务处理:比如spring的异步方法改造,增加@Asyn注解对应了一个线程池; 使用 阅读全文
posted @ 2020-04-11 23:50 李福春 阅读(269) 评论(0) 推荐(0) 编辑
摘要:今天的问题是:负载均衡是为了解决什么问题?有哪几种实现负载均衡的方式? 解决的问题 把用户的请求分发到多台服务器(更多的资源),解决高并发的问题。 硬件负载均衡 成本比较高,并发数在百万级别,比如F5; 软件负载均衡 HTTP重定向负载均衡 负载均衡过程如上图: 1 请求到负载均衡服务器, 2 根据 阅读全文
posted @ 2020-04-10 14:48 李福春 阅读(165) 评论(0) 推荐(0) 编辑
摘要:22 缓存 问题:分布式架构中的缓存的应用场景? 背景 分布式架构中,使用缓存可以优化绝大部分的性能。 分类 按照谁来操作数据源可以分为两类缓存; 通路缓存 缓存组件直接连接数据源并更新缓存 使用场景: 1. CDN 处理静态资源; 2. 反向代理缓存 处理动态资源 旁路缓存 应用程序直接连接数据源 阅读全文
posted @ 2020-04-09 10:40 李福春 阅读(77) 评论(0) 推荐(0) 编辑
摘要:面试热点问题: 如何应对高并发问题? 场景的变化 垂直伸缩 提高服务器的硬件配置来支撑; 两个问题: 1. 物理服务器的硬件性能存在上限; 1. 投入的成本跟性能提升不成线性关系; 所以,垂直伸缩有效,但是作用有限。 水平伸缩 使用更多的服务器形成集群来支撑 分布式架构的演进 小结 本篇分析了高并发 阅读全文
posted @ 2020-04-09 10:27 李福春 阅读(104) 评论(0) 推荐(0) 编辑
摘要:背景 java程序员的开发的java应用程序,一般都会选择使用tomcat发布,但是: 如何充分的掌控tomcat,并让它发挥最优性能呢? 这也是面试的热点问题,结合多年的工作实践,我是李福春,今天总结一下。 tomcat的使用 下载 现在最新的稳定版本是tomcat9, 下载页面: "https: 阅读全文
posted @ 2020-04-09 09:42 李福春 阅读(415) 评论(1) 推荐(0) 编辑
摘要:面试中关于分布式的问题很多。(分布式事务,基本理论CAP,BASE,分布式锁)先来一个简单的。 简单说一下分布式ID的设计方案? 首先要明确在分布式环境下,分布式id的基本要求。 1, 全局唯一,在分布式集群下,不同的节点并发生成的分布式id要唯一; 2, 顺序性,分布式id是有序生成 然后给出分布 阅读全文
posted @ 2020-04-06 21:46 李福春 阅读(72) 评论(0) 推荐(0) 编辑
摘要:spring是Java软件开发的事实标准。 我是李福春,我在准备面试,今天的问题是:springBean的生命周期是怎样的? 答:spring最基础的能力是IOC(依赖注入),AOP(面向切面编程),ioc改善了模块之间的耦合问题, 依赖注入的方式:set方法,构造方法,成员变量+ ;Bean的管理 阅读全文
posted @ 2020-04-04 18:16 李福春 阅读(182) 评论(0) 推荐(0) 编辑
摘要:mysql的事务是innodb存储引擎独有的,myisam存储引擎不支持事务。 事务最经典的例子就是转账了,事务要保证的是一组数据库的操作要么全部成功,要么全部失败。是为了保证高并发场景下数据的正确性而定义。 事务并非mysql独有。在mysql中,数据库的事务隔离采用的是MVCC结合锁来实现的。 阅读全文
posted @ 2020-04-03 18:46 李福春 阅读(77) 评论(0) 推荐(0) 编辑