Docker 镜像的构建与推送
发表于
|
分类于
网站运维
下列代码展示了完整的 Docker 镜像构建、标记和推送到 Docker Hub 的流程,包括单平台和多平台构建。下面我将详细解释每个步骤:
SpringCloud 组件原理
发表于
|
分类于
springcloud
spring 多线程保证事务特性
发表于
|
分类于
多线程
在业务逻辑中,开启多线程,可以提高性能,但是子线程报错,主线程难以捕获,导致事务特性难以保证。即主线程异常,如何回滚所有子线程,一个子线程异常,如何回滚主线程和其它所有子线程。经过实践,封装了一个工具类,用以保证多线程事务特性。
思路:
线程相互等待。主线程等子线程执行,如子线程有异常,主线程手动抛出,如无异常,子线程等主线程执行,如主线程有异常,回滚事务,如无,提交事务,等所有子线程执行完事务,主线程返回结果。
代码如下:
stream 流用法
发表于
|
分类于
java
准备
初始一个集合对象,以供测试:
1 | List<User> list = new ArrayList<>(); |
filter
1 | list.stream().filter(u -> u.getAge() >= 18).collect(Collectors.toList()); |
1 | User{name='王五', age=18} |
Elasticsearch 解析
发表于
|
分类于
开源框架
面试突击-中间件篇
发表于
|
分类于
面试相关
为什么使用MQ (优缺点)
优点
1.解耦
一个系统可能有abcd四个模块,a 模块是核心模块,bcd 都需要从 a 获取数据,那么就需要在 a 模块写3个接口给bcd传输数据,这样的话,不管是模块增减,还是数据有变,都需要在a模块修改代码,强耦合。此时 ,mq 可以解耦,a 把数据发送到mq,bcd 自行订阅消费即可。
2.异步
一个接口可能调用多个模块的接口,耗时较大。通过 mq ,可以让各个模块自行在后台消费,该接口只需要执行完自己的操作即可返回结果。
3.削峰
系统可能在某个时间点,有大量请求过来,可能会导致系统直接崩掉,而其他时间请求很少,此时就可以通过 mq 存储数据,在后台以每秒系统能够承受的压力去处理请求。