关于Java的惰性求值

摘要: 最近在学scala的时候,函数传参可以是传名参数,或者传值参数 1.Scala中的传名参数是什么意思?lazy关键字有什么作用? Scala官方文档的定义是:传名参数 仅在被使用时触发实际参数的求值运算。 它们与 传值参数 正好相反。 要将一个参数变为传名参数,只需在它的类型前加上 ⇒。 def c 阅读全文
posted @ 2021-08-18 15:59 mindSucker 阅读(204) 评论(0) 推荐(0) 编辑

Optional中的map函数和flatMap函数的区别

摘要: 今天在学scala的时候发现Option中有map和flatMap返回的都是Option,然后再java8中的Optional也存在这样两个函数,觉得有点多余。后来分析了一下,还是有存在的必要的。 1. map函数 map函数不用问,使用的很广泛,函数签名是public<U> Optional<U> 阅读全文
posted @ 2021-08-13 15:26 mindSucker 阅读(1741) 评论(0) 推荐(0) 编辑

Filter Pattern 2 (dubbo的实现方式)

摘要: 前一篇FilterPattern的范式,基本和Tomcat实现的filter chain是一样的; 这里介绍一下我看完dubbo关于Filter Pattern的实现思路,自己抽象出来的代码,以及理解 相关类的UML图: 可以从上图中看到这里的Invoker对应原来的Servlet,这里的Filte 阅读全文
posted @ 2021-07-28 17:33 mindSucker 阅读(38) 评论(0) 推荐(0) 编辑

DUBBO消费端Reference初始化

摘要: 1. ReferenceBean.java ReferenceBean.java 继承 ReferenceConfig.java, 主要的Reference初始化逻辑都在ReferenceBean的get()方法里,内部主要实现是在ReferenceConfig的init()方法; 2. Dubbo 阅读全文
posted @ 2021-07-02 12:00 mindSucker 阅读(218) 评论(0) 推荐(0) 编辑

Mosquitto安装与部署

摘要: 版本说明: Mosquitto版本:v2.0.10 libwebsockets版本:v3.0.1(用于支持websockets) mosquitto-go-auth(Mosquitto plugin):v1.50(提供权限认证) 1.编译前准备 因为我们准备本机编译源码包,所以要提前安装gcc yu 阅读全文
posted @ 2021-05-20 10:04 mindSucker 阅读(1769) 评论(0) 推荐(0) 编辑

Mysql Deadlock 解决方案

摘要: 重试 悲观锁,将所有需要操作的数据的id作为锁集合,组合成multilock 将大事务切分成小事务,或者尽早的提交事务 当事务类包含针对多个表的操作,或者同一个表的多行数据的操作,那么按照固定顺序(表和表之间的顺序,数据和数据按id排序)去执行,会避免死锁的情况 参考Mysql文档 阅读全文
posted @ 2021-04-22 11:42 mindSucker 阅读(193) 评论(0) 推荐(0) 编辑

DDD 实践思考

摘要: 1. 服务分层 我在这两年中的一个大型项目使用的是SpringBoot + Dubbo + Mybatis Plus的技术栈,项目结构分为 应用层 applicationService, service服务层,domain领域层; applicationService是一个http服务,对外暴露ht 阅读全文
posted @ 2021-04-22 10:59 mindSucker 阅读(107) 评论(0) 推荐(0) 编辑

MQTT 协议基本概念

摘要: 1.什么是MQTT? MQTT(Message Queuing Telemetry Transport)是一个客户端服务端 发布/订阅消息通信协议。它是IMB公司在1999为了监控卫星上的管路而设计的,具有轻量级,开源,简单,易于实现等特点,这些特性使它在包括物联网等需求性能消耗低,网络不稳定的场景 阅读全文
posted @ 2021-04-20 17:00 mindSucker 阅读(434) 评论(0) 推荐(0) 编辑

Mosquitto备忘录

摘要: 启动Mosquitto mosquitto -c /etc/mosquitto/mosquitto.conf -d 停止Mosquitto netstat -tunlp |grep 18883 kill -9 pid 创建Mosquitto user password mosquitto_passw 阅读全文
posted @ 2021-03-29 10:55 mindSucker 阅读(54) 评论(0) 推荐(0) 编辑

软件设计的五个基本原则

摘要: SOLID 1. Single Responsibility Principle(单一职责原则) single responsible很好理解,一个类,接口只能负责一个功能(职责),而不是不同功能杂糅在一起,使得可读性,可维护性降低 2. Open Closed Principle(开闭原则) op 阅读全文
posted @ 2021-02-25 12:02 mindSucker 阅读(394) 评论(0) 推荐(0) 编辑