|
2018年12月23日
摘要:
阿里巴巴Java开发手册 链接:https://pan.baidu.com/s/11I9ViOrat-Bw_HA8yItXwA 密码:x5yi 2. DO/BO/DTO/VO/AO/PO PO(persistant object) 持久对象 在 o/r 映射的时候出现的概念,如果没有 o/r 映射, 阅读全文
摘要:
23种设计模式,实际工作中,都是怎么出现的呢? 有哪些示例呢? 本文探讨 生活 与 工作实践中 的设计模式, 但这里不想牵扯 UML了。 01、简单工厂模式 简单工厂模式 又称为 静态工厂模式 模式场景:在一个披萨店中,要根据不同客户的口味,生产不同的披萨,如素食披萨、希腊披萨等披萨。 凡是看到一个 阅读全文
摘要:
本文主要讨论行为型模式 职责链模式: 职责链模式(Chain of Responsibility Pattern):避免请求发送者与接收者耦合在一起,让多个对象都有可能接收请求,将这些对象连接成一条链,并且沿着这条链传递请求,直到有对象处理它为止。职责链模式是一种对象行为型模式。 职责链模式结构的核 阅读全文
摘要:
这里我们主要讨论 结构型模式 适配器模式,: ● Target(目标抽象类):目标抽象类定义客户所需接口,可以是一个抽象类或接口,也可以是具体类。 ● Adapter(适配器类):适配器可以调用另一个接口,作为一个转换器,对Adaptee和Target进行适配,适配器类是适配器模式的核心,在对象适配 阅读全文
2018年12月22日
摘要:
总结下自己关于设计模式的一些思考。(我终于看穿了爱情,不过就是一圈圈圈圈烟圈圈圈圈 用来解闷消遣。。) 设计模式是对一些 常用的类的行为规范的一个最佳实践的提取。 设计模式不是架构模式,设计模式关注的是代码的可读性,拓展性。而架构关注的是 性能、稳定性、可用性 开闭原则,并不是说,我们能完全的 能够 阅读全文
2018年12月16日
摘要:
在讨论常见架构前,先简单了解下CAP理论: CAP 是 Consistency、Availablity 和 Partition-tolerance 的缩写。分别是指: 一致性(Consistency):每次读操作都能保证返回的是最新数据; 可用性(Availablity):任何一个没有发生故障的节点 阅读全文
摘要:
接口幂等 什么是接口幂等?就是一个接口,被重复调用多次,却能够保证对系统内部产生的影响是一致的,也就是调用多次和调用一次,数据的变化是一样的,是相同的,不会因为调用多次而出现任何数据问题。分布式系统中,接口幂等性是系统可行性论证的第一个步骤。很多地方需要把接口设计成幂等。 思路基本上是3种: 1 当 阅读全文
摘要:
本文大概围绕如下几点进行阐述: 1、为什么要使用消息队列? 分析:一个用消息队列的人,不知道为啥用,这就有点尴尬。没有复习这点,很容易被问蒙,然后就开始胡扯了。回答:这个问题,咱只答三个最主要的应用场景(不可否认还有其他的,但是只答三个主要的),即以下六个字:解耦、异步、削峰 2、使用了消息队列会有 阅读全文
摘要:
什么是可靠消息? 为什么我们需要它,为什么我们要强调可靠? 生产方 消息发送出去了,如果生产方收到了消息的正常反馈,那么我们就可以知道消息的确切的状态。 如果消息无响应 或者超时了呢? 有多个情况, 1 消息未到达mq,发送途中 就某些原因丢失了, 2 消息送达mq,但是mq处理未完成就丢失(这里又 阅读全文
2018年12月15日
摘要:
什么是分布式事务 分布式事务就是指事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上。简单的说,就是一次大的操作由不同的小操作组成,这些小的操作分布在不同的服务器上,且属于不同的应用,分布式事务需要保证这些小操作要么全部成功,要么全部失败。本质上来说,分布 阅读全文
摘要:
What's it? 事务, 基本上要求 多个sql操作 就向一个sql操作一样。(是一个系统,是一个整体,但对外表现就是像一个不可切割的个体。) 特别需要注意的是,一般我们说事务的时候,一般就是指那种Read committed或 Repeatable read 隔离级别的事务,是需要保证 一定的 阅读全文
2018年12月14日
摘要:
什么是事务,一个事务是一个只包含所有读/写操作成功的集合。通常可以认为 事务包含了多个 写操作 sql 。 事务的四个特点 一个事务本质上有四个特点,也就是ACID: 这里的一致性,有点不好理解。 其实可以这么理解: 重点说说 隔离性 隔离性,虽然按我理解是 一种 不是特性的特性,更像是特点, 但普 阅读全文
摘要:
比起CAP的生硬来, 我更加喜欢BASE。BASE 显得更加好理解。尽管BASE 这个名字本身有迎合语言习惯的恶臭味,为什么不是缩写为 BaSsEc 呢? 基本介绍 介绍1 上面的说明,非常的棒! 但是我也看到了,即使 BASE 理论, 同样是不方便做 量化的,完全不同于 数学、 物理或者化学的 哪 阅读全文
摘要:
分布式系统、理论、协议 非常非常多, 它们多cap 的支持是怎么样的呢? 需要注意的是,分布式系统 为了应付各种 复杂 应用场景,支持各种各样的功能,可能有的提供了选项或某种机制, 某个时刻,支持CP,另外某个时刻 又变成了支持AP 等等等 角色不是一成不变的。CAP 的出现是2000 年, 现在差 阅读全文
摘要:
关于P P, 即 Partition字面意思是网络分区,其实 包括了 各种网络问题, 我们要把它理解 一个 广义的 分区问题。 P 涉及到了 时间, 这么说吧, 出现了分区, 那就是节点之间 “长久的” 不能通信, 出现 延迟、超时 就是 “暂时的” 不能通信 —— 到底多久才算是 超时呢? 所以说 阅读全文
2018年12月13日
摘要:
谈及分布式,必然谈到 CAP, CAP 已经是被说烂了的一个 话题, 绕不开, 逃不掉。 而且, 理解起来 会有些吃力。 分布式的CAP理论告诉我们 “任何一个分布式系统都无法同时满足 一致性(Consistency)、可用性(Availability)和分区容错性(Partition tolera 阅读全文
摘要:
为了解决分布式一致性问题,产生了不少经典的分布式一致性算法,本文将介绍其中的2PC和3PC。2PC即Two-Phase Commit,译为二阶段提交协议。3PC即Three-Phase Commit,译为三阶段提交协议。 分布式系统和分布式一致性问题 分布式系统,即运行在多台不同的网络计算机上的软硬 阅读全文
2018年12月12日
摘要:
一、为什么要使用分布式锁我们在开发应用的时候,如果需要对某一个共享变量进行多线程同步访问的时候,可以使用我们学到的Java多线程的18般武艺进行处理,并且可以完美的运行,毫无Bug! 注意这是单机应用,也就是所有的请求都会分配到当前服务器的JVM内部,然后映射为操作系统的线程进行处理!而这个共享变量 阅读全文
2018年11月29日
摘要:
问题是这样的: 有1个生产者生产 产品, 60个消费者消费产品, 产品可以被同时消费,而且需要等到每个消费者都消费一遍后, 才能够把它删除。 问题其实也不难, 只是稍微有点技巧。实现方式其实很多种, 下面的应该是最简单的吧。 阅读全文
摘要:
完全 模仿ReentrantLock, 通过继承 java.util.concurrent.locks.Lock , 内置 AbstractQueuedSynchronizer 实现类,限制可以重入次数的锁。 这个其实不难, 只要稍微注意一点就好了 ReenterLimitedLock 关键实现: 阅读全文
2018年9月6日
摘要:
开始时, 代码是这样的: spring-security session超时后, 查询按钮仍然可以点击, 而且没有跳转, 观察发现这个方法有问题. 了解到ajax 请求的更多的用法后, 发现, 问题在于这个请求是json 格式的, spring-security session超时后, 返回的是 重 阅读全文
2018年8月30日
摘要:
一个比较老的web项目, IDEA 导入后不能用, 出现了各种问题, 但是, 别人用eclipse 导入就不会有问题, 我折腾了半天, 还是各种问题, 真是郁闷了. 哎, 承认很难配置吧, 遂下载了eclipse, 配置Tomcat ( Tomcat 通过eclipse 自动下载的 版本是7, 具体 阅读全文
2018年8月14日
摘要:
scp 不能用? 原来是 scp 两边机器都需要安装 .. 阅读全文
摘要:
这样的配置有问题吗? 有的, 出现mybatis 错误: 似曾相识的错误: org.apache.ibatis.builder.IncompleteElementException: Could not find result map java.util.HashMap Caused by: jav 阅读全文
2018年7月21日
摘要:
#关于事务: activemq 遇到的不能消息确认的问题。 Session session = connection.createSession(Boolean.FALSE, Session.AUTO_ACKNOWLEDGE); 有两种情况: 1 开启事务当createSession第一个参数为tr 阅读全文
摘要:
我的微服务中, activemq 消费 一条消息的时候, 出了错, 结果导致了 那条消息就一直处于pending 状态, 可以看到 pending 是1 , dequeue 是0 , 而消费者是1, 明明存在1个消费者, 但是却一直不消费, 不dequeue 是什么意思?? 本想直接在那个管理界面上 阅读全文
2018年7月20日
摘要:
神奇bug, Timestamp 会四舍五入也会引起 bug .. 神奇bug, Timestamp 会四舍五入也会引起 bug .. 神奇bug, Timestamp 会四舍五入也会引起 bug .. 神奇bug, Timestamp 会四舍五入也会引起 bug .. 神奇bug, Timesta 阅读全文
2018年7月17日
摘要:
我们知道, 现在很多浏览器都已经是直接支持 websocket 协议的了, 除此之外, sockjs, 也可以实现 websocket 功能.. 当然, 其原理是不同的. 一开始 websocket 已经做好了, 但是后面发现 websocket不能穿透zuul , 出现 com.netflix.z 阅读全文
摘要:
Content-Type 无疑是http中一个非常重要的属性了, request 中可以存在, 也可以不存在( request的Content-Type 默认是 */*, 实际上呢, 如果不存在Content-Type请求头, 那么 就是text.. 待确定 ), response也是这样. 如果是 阅读全文
2018年7月12日
摘要:
我只想安静的传个数组类型的参数, 为什么各种报错... 不行, 报错: Cannot generate variable name for non-typed Collection parameter type 改吧: 不行, 这回不报错了, 但是连参数都传递不了, idList 永远值是空的,, 阅读全文
2018年7月6日
摘要:
昨天还好好的, 今天我的spring boot 项目就不能正常运行了! 出现: FilterRegistrationBean 是存在的, 但是其package 是: org.springframework.boot.web.servlet.FilterRegistrationBean 而不是 org 阅读全文
摘要:
参考: https://www.cnblogs.com/xingzc/p/5778090.html http://www.runoob.com/java/java8-optional-class.html 返回空的 Optional 实例。 判断其他对象是否等于 Optional。 如果值存在,并且 阅读全文
摘要:
反序列化失败: 仔细一想, 是我之前把Tenant 信息放到了redis 中, 然后, 重启了服务, 然后再次获取的时候, 就出现了这样的情况. 可以看到根本原因在于: local class incompatible: stream classdesc serialVersionUID = -67 阅读全文
摘要:
springboot 中是可以通过 jar 将整个项目打包成一个fat jar 的, 这个大家都知道. 除此之外, 这个好像也可以的哦: 但是, 我还是遇到了 xxx.jar 中没有主清单属性, 后面一排查, 原来, 运行错了个jar, 我运行的不是fat jar ,而是普通jar, 因为它们在同一 阅读全文
摘要:
其实是很简单的, 下面的语句中多了个as, 不应该的. 本来就是简单的sql 语法错误, 还以为是日期格式问题, 搞了几个小时, 也是郁闷了. 原因还是不够细心, 没注意到 BadSqlGrammarException 这个提示. 阅读全文
2018年4月12日
摘要:
背景: 当前我们项目,所有的配置基本都是通过本地properties 文件进行配置的,比如ip地址、端口、消息中间件和数据库连接的各种参数,当我们需要切换环境或调整参数的时候,我们必须手动的修改这些配置。如果只有一个配置文件还好,但是,如果有很多这样的配置文件,而且又分布式部署在多台机器,那么这样, 阅读全文
2018年2月28日
摘要:
一、 名词介绍: E:ElasticSearch 搜索,简称es L:Logstash 管理日志和事件的工具 K:Kibana 功能强大的数据显示客户端 Beats 轻量级数据传输组件,这里我们主要使用FileBeat 二、 应用包准备: elasticsearch-6.1.2.tar.gz log 阅读全文
2018年1月3日
摘要:
Openface 简单入门 背景 Openface是一个开源的人脸识别框架,同类软件产品还有 seetaface ,DeepID等,当然,如果算上商业的产品,那就更多了。 Openface人脸比对结果的准确度可能不是很好,它是有待提升的。如果有能力的话, 可能通过源码进行优化。 一般来说,置信度小于 阅读全文
2017年12月16日
摘要:
Spring Security简介 之前项目都是用shiro,但是时过境迁,spring security变得越来越流行。spring security的前身是Acegi, acegi 我也玩过,那都是5年的事情了! 如今spring security已经发布了很多个版本,已经到了5.x.x 了。其 阅读全文
2017年12月12日
摘要:
这个错误我也见过很多次了,今天终于理解了其出现的原因。 错误是这样的: 其实仔细看就会发现原因: SpelView 需要 timestamp 这么一个变量,以进行渲染, 它其实是来自于 DefaultErrorAttributes 以配合SpelView 使用的。但是呢, 由于我自定义了boot 的 阅读全文
|