redis连接池配置
添加maven依赖
1234567891011121314<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> <exclusions> <exclusion> <groupId>io.lettuce</groupId> <artifactId>lettuce-core</artifactId> </exclusion> </exclusions> </dependency> <dependency> ...
分布式事务:
刚性事务:强一致性(seata)
柔性事务:最终一致性(MQ事务消息)
seataSeata 是一款开源的分布式事务解决方案,强一致性,要么同时成功,要么同时失败
结合公司内部框架版本,集成seata
版本信息
SpringCloud:Hoxton.SR3
SpringBoot:2.2.5.RELEASE
seata:1.1.0
nacos:1.2.1
mysql:5.7
服务端集成步骤seata-server下载下载地址:https://github.com/seata/seata/releases/download/v1.1.0/seata-server-1.1.0.zip
创建seata数据库及表
数据库名为seata
创建表结构
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556-- -------------------------------- The script used when sto ...
1. 简介
ElasticSearch是⼀个开源,是⼀个基于Apache Lucene库构建的Restful搜索引擎. Elasticsearch是在Solr之后⼏年推出的
提供了⼀个分布式,多租户能⼒的全⽂搜索引擎,具有HTTP Web界⾯(REST)和⽆架构JSON⽂档
Elasticsearch的官⽅客户端库提供Java,Groovy,PHP,Ruby,Perl,Python,.NET和Javascript。
官网:https://www.elastic.co/cn/elasticsearch/
2. 单节点安装docker版
创建挂载目录并分配权限:
123mkdir -p /home/dockerdata/elasticsearch/configmkdir -p /home/dockerdata/elasticsearch/datachmod 777 -R /home/dockerdata/elasticsearch
修改配置文件,让ES可以对外访问
1echo "http.host: 0.0.0.0" >> /home/docker ...
1. RestTemplate
RestTemplate是Spring提供的用于访问Rest服务的客户端
底层通过使用java.net包下的实现创建HTTP 请求
通过使用ClientHttpRequestFactory指定不同的HTTP请求方式,主要提供了两种实现方式
SimpleClientHttpRequestFactory(默认)
底层使用J2SE提供的方式,既java.net包提供的方式,创建底层的Http请求连接
主要createRequest 方法( 断点调试),每次都会创建一个新的连接,每次都创建连接会造成极大的资源浪费,而且若连接不能及时释放,会因为无法建立新的连接导致后面的请求阻塞
HttpComponentsClientHttpRequestFactory
底层使用HttpClient访问远程的Http服务
2. RestTemplate报错2.1 Broken pipe
服务端向前端socket连接管道写返回数据时链接(pipe)已经断开了
从应用角度分析,这是因为客户端等待返回超时了,主动断开了与服务端链接
连接数设置太小,并发量增加后,造 ...
@Async用于在Spring中执行异步任务
1. 使用方式
启动类里面使用@EnableAsync注解开启功能,自动扫描
定义异步任务类并使用@Component标记组件被容器扫描,异步方法加上@Async
2. @Async失效情况
注解@Async的方法不是public方法
注解@Async的返回值只能为void或者Future
注解@Async方法使用static修饰也会失效
spring无法扫描到异步类,没加注解@Async 或 @EnableAsync注解
调用方与被调方不能在同一个类
Spring 在扫描bean的时候会扫描方法上是否包含@Async注解,动态地生成一个子类(即proxy代理类),当这个有注解的方法被调用的时候,实际上是由代理类来调用的,代理类在调用时增加异步作用
如果这个有注解的方法是被同一个类中的其他方法调用的,那么该方法的调用并没有通过代理类,而是直接通过原来的那个 bean,所以就失效了
所以调用方与被调方不能在同一个类,主要是使用了动态代理,同一个类的时候直接调用,不是通过生成的动态代理类调用
一般将要异步执行的方法单独抽取成一个类
类中需 ...
1. 简介高性能对象存储,高性能,可扩展性,云的原生支持
官方网站:http://www.minio.org.cn/
英文官网:https://min.io/
中文文档:http://docs.minio.org.cn/docs/
2. 单机版docker安装12345678docker run -d \ -p 9000:9000 \ -p 9001:9001 \ --name minio \ -v /home/dockerdata/minio/data:/data \ -e "MINIO_ROOT_USER=root" \ -e "MINIO_ROOT_PASSWORD=aacopy.cn" \ minio/minio server /data --console-address ":9001"
客户端访问地址:http://192.168.80.128:9001/
3. 基础概念
Object
存储到MinIO的基本对象,如文件
Bucket
用来存放Object的空间,每个Bucket之间的数据是 ...
1. 简介kafka是一个高吞吐量的分布式发布订阅系统,可以实时的处理大量数据
2. 安装2.1 docker安装kafka
安装zookeeper
1docker run --name zookeeper -p 2181:2181 -d zookeeper
安装kafka(10.66.106.86为本机ip)
1234docker run --name kafka -p 9092:9092 -e KAFKA_BROKER_ID=0 -e KAFKA_ZOOKEEPER_CONNECT=10.66.106.86:2181 -e ALLOW_PLAINTEXT_LISTENER=yes -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://10.66.106.86:9092 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 -d bitnami/kafka:3.0.0#如果在win版本docker中挂载kafka数据目录加上以下启动参数-v C:\dockerData\kafka\data:/bitnami/ka ...
官方文档:https://wwv.flowable.com/open-source/docs/bpmn/ch15-REST/
使用docker启动flowable-rest
编写docker-compose.yml
123456789101112131415161718version: '3.6'services: flowable-ui-app: image: flowable/flowable-rest environment: - SERVER_PORT=8098 - SPRING_DATASOURCE_DRIVER-CLASS-NAME=com.mysql.cj.jdbc.Driver - SPRING_DATASOURCE_URL=jdbc:mysql://10.66.106.86:3306/flowable_learn?characterEncoding=UTF-8 - SPRING_DATASOURCE_USERNAME=root - SPRING_DATASOURCE_PASSWORD ...
官方文档:https://wwv.flowable.com/open-source/docs/bpmn/ch14-Applications/
使用docker启动flowable-UI
编写docker-compose.yml
123456789101112131415161718version: '3.6'services: flowable-ui-app: image: flowable/flowable-ui environment: - SERVER_PORT=8099 - SPRING_DATASOURCE_DRIVER-CLASS-NAME=com.mysql.cj.jdbc.Driver - SPRING_DATASOURCE_URL=jdbc:mysql://10.66.106.86:3306/flowable_learn?characterEncoding=UTF-8 - SPRING_DATASOURCE_USERNAME=root - SPRING_DATASOURCE_PASS ...
Flowable 开源代码库相关的数据库表名以ACT _开头。特定于 Flowable Work 或 Engage 的数据库表以FLW _前缀开头。
**ACT_RE_ ***:“RE”代表存储库(repository)。带有此前缀的表包含“静态”信息,例如流程定义和流程资源(图像、规则等)。
**ACT_RU_ ***:“RU”代表运行时间(runtime)。这些是包含流程实例、用户任务、变量、作业等的运行时数据的运行时表。Flowable 仅在流程实例执行期间存储运行时数据,并在流程实例结束时删除记录。这使运行时表既小又快。
ACT_HI_ *:’HI’ 代表历史(history)。这些是包含历史数据的表,例如历史的流程实例、变量、任务等。
ACT_GE_ *:通用数据(general ),用于各种用例。
App Engine
ACT _ APP _ DEPLOYMENT
当通过应用引擎部署应用模型时,会存储一条记录以指示此部署。部署的实际内容被引用,并存储在ACT_APP_DEPLOYMENT_RESOURCE表。
ACT_APP_DEPLOYME ...