摘要: 模型: 反应器模式做法是:汽车是乘客访问的主体(Reactor),乘客上车后,到售票员(acceptor)处登记,之后乘客便可以休息睡觉去了,当到达乘客所要到达的目的地后,售票员将其唤醒即可。 反应器模式与观察者模式在某些方面极为相似:当一个主体发生改变时,所有依属体都得到通知。不过,观察者模式与单 阅读全文
posted @ 2019-12-17 23:23 洛神灬殇 阅读(1004) 评论(0) 推荐(0) 编辑
摘要: springboot项目内置Tomcat,直接打成jar包在dos下运行即可,但有时我们需要用war包以非内嵌Tomcat的方式来部署,以下是本人的实际经验 1.首先需要修改pom.xml文件 <!-- 打war包时加入此项, 告诉spring-boot tomcat相关jar包用外部的,不要打进去 阅读全文
posted @ 2019-12-16 20:00 洛神灬殇 阅读(3703) 评论(0) 推荐(2) 编辑
摘要: 1.Accept属于请求头, Content-Type属于实体头。 Http报头分为通用报头,请求报头,响应报头和实体报头。 请求方的http报头结构:通用报头|请求报头|实体报头 响应方的http报头结构:通用报头|响应报头|实体报头 2.Accept代表发送端(客户端)希望接受的数据类型。 比如 阅读全文
posted @ 2019-12-16 17:02 洛神灬殇 阅读(576) 评论(0) 推荐(0) 编辑
摘要: 之前用Mybatis框架反向的实体,还有实体里面的Example,之前只是知道Example里面放的是条件查询的方法,可以一直不知道怎么用,到今天才开始知道怎么简单的用。 在我们前台查询的时候会有许多的条件传过来:先看个例子: ContactExample example = new Contact 阅读全文
posted @ 2019-12-10 22:56 洛神灬殇 阅读(4130) 评论(0) 推荐(0) 编辑
摘要: 前言 随着线上应用逐步采用 SpringBoot 构建,SpringBoot应用实例越来多,当线上某个应用需要升级部署时,常常简单粗暴地使用 kill 命令,这种停止应用的方式会让应用将所有处理中的请求丢弃,响应失败。这样的响应失败尤其是在处理重要业务逻辑时需要极力避免的,那么有什么更好的方式来平滑 阅读全文
posted @ 2019-12-10 09:11 洛神灬殇 阅读(417) 评论(0) 推荐(0) 编辑
摘要: 一.mapper接口中的方法解析 mapper接口中的函数及方法 int countByExample(UserExample example) thorws SQLException 按条件计数 int deleteByPrimaryKey(Integer id) thorws SQLExcept 阅读全文
posted @ 2019-12-09 22:15 洛神灬殇 阅读(249) 评论(0) 推荐(0) 编辑
摘要: SpringBoot在项目启动时如果遇到异常并不能友好的打印出具体的堆栈错误信息,我们只能查看到简单的错误消息,以致于并不能及时解决发生的问题,针对这个问题SpringBoot提供了故障分析仪的概念(failure-analyzer),内部根据不同类型的异常提供了一些实现,我们如果想自定义该怎么去做 阅读全文
posted @ 2019-12-08 10:01 洛神灬殇 阅读(2122) 评论(0) 推荐(0) 编辑
摘要: RocketMQ是阿里开源的分布式消息中间件,跟其它中间件相比,RocketMQ的特点是纯JAVA实现;集群和HA实现相对简单;在发生宕机和其它故障时消息丢失率更低。 一.RocketMQ专业术语 Producer(生产者) 消息生产者,位于用户的进程内,Producer通过NameServer获取 阅读全文
posted @ 2019-12-07 22:06 洛神灬殇 阅读(534) 评论(0) 推荐(0) 编辑
摘要: 1.故障快速定位 跨语言实现开发中在业务日志中添加调用链ID,可以通过调用链结合业务日志快速定位错误信息。 2.各个调用环节的性能分析 分析调用链的各个环节耗时,分析系统的性能瓶颈,找到系统的薄弱环节针对性优化 3.数据分析 分析用户的行为路径,经过了哪些服务器上的哪个服务加以应用。 4.调用拓扑图 阅读全文
posted @ 2019-12-06 17:32 洛神灬殇 阅读(2609) 评论(0) 推荐(0) 编辑
摘要: 问题背景 随着微服务架构的流行,服务按照不同的维度进行拆分,一次请求往往需要涉及到多个服务。互联网应用构建在不同的软件模块集上,这些软件模块,有可能是由不同的团队开发、可能使用不同的编程语言来实现、有可能布在了几千台服务器,横跨多个不同的数据中心。因此,就需要一些可以帮助理解系统行为、用于分析性能问 阅读全文
posted @ 2019-12-06 15:12 洛神灬殇 阅读(980) 评论(0) 推荐(0) 编辑
摘要: 由于公司目前有200多微服务,微服务之间的调用关系错综复杂,调用关系人工维护基本不可能实现,需要调研一套全链路追踪方案,初步调研之后选取了skywalking和pinpoint进行对比; 选取skywalking和pinpoint对比的原因是:两者都使用探针(agent)技术进行信息采集,集成到项目 阅读全文
posted @ 2019-12-06 10:15 洛神灬殇 阅读(1948) 评论(1) 推荐(0) 编辑
摘要: 最近在使用Spring Cloud Alibaba这一套微服务解决方案,但是在服务注册的时候,网关死活找不到微服务地址,自己的微服务通过网关怎么也访问不到。 查找原因 仔细一查才发现,网关去访问了一个莫名其妙的IP地址, 去Nacos服务详情去看,果然,我的微服务注册到Nacos的IP地址上也是这个 阅读全文
posted @ 2019-12-04 22:22 洛神灬殇 阅读(4384) 评论(0) 推荐(0) 编辑
摘要: 本文内容 Future 模式介绍以及核心思想 核心线程数、最大线程数的区别,队列容量代表什么; ThreadPoolTaskExecutor 饱和策略; SpringBoot 异步编程实战,搞懂代码的执行逻辑。 Future 模式 异步编程在处理耗时操作以及多任务处理的场景下非常有用,我们可以更好的 阅读全文
posted @ 2019-12-04 21:54 洛神灬殇 阅读(564) 评论(0) 推荐(0) 编辑
摘要: 最近在实现一个聚合搜索的需求时,由于需要从五个索引中查询数据,然后再将搜索结果组合返回给前端app展现,显然这个地方不能再用同步的方式来操作了,如果有一个索引查询出现耗时较长,那么其余的请求都会排同步等待这一个慢查询,这个时候就考虑采用线程池+异步任务来实现这个聚合搜索的功能,顺便借助这次异步实现来 阅读全文
posted @ 2019-12-04 21:41 洛神灬殇 阅读(823) 评论(0) 推荐(0) 编辑
摘要: 最近的一次上线突然发现系统的某些数据库查询偶尔会超过300ms, 正常的情况都只有100ms,我花了一段时间开始调查原因,这篇文章记录了整个过程。 项目背景 项目提供了一个支持水平扩展的功能,扩展是基于扩展多数据库来分散压力,我就是在这个大场景下要求新增一些数据库来环境线上的压力。 线上分为南方和北 阅读全文
posted @ 2019-12-01 18:04 洛神灬殇 阅读(1730) 评论(1) 推荐(0) 编辑