常用web记录

常用的网站记录 在线markdown docker国内镜像加速 另一个maven仓库 java全栈知识体系 jdk版本-爪哇我话你知 代码随想录-算法 labuladong 的算法小抄 Data Structure Visualizations 股票自动交易助手 excalidraw v2ex 免费图床 Redis命令集 在线搜索代码网站 Doug Lea’s Home Page 编程之路 ubuntu微信

常用命令记录

常用命令记录 通用命令 -- 查询系统超过100M的文件 sudo find / -type f -size +100M -- 查找某某文件 sudo find / -name *.java ubuntu常用命令 -- 安装jdk sudo apt install openjdk-8-jdk -- 卸载jdk sudo apt purge openjdk-8-jdk -- 切换java版本 sudo update-alternatives --config java

apache shenyu的spi机制

什么是spi SPI就是Service Provider Interface,是一种动态的服务发现机制。 可以基于运行时动态的加载接口的实现类。通过(接口编程 + 策略模式 + 配置文件) 实现解耦和扩展。 应用 数据库驱动 基于该接口的实现有MySQL,PostgreSQL,SqlServer等。 SLF4J日志框架 Dubbo的SPI扩展 dubbo apache shenyu spring boot starter jdbc的应用 日志的应用 apache shenyu的spi应用 dubbo的spi应用 实现方式 市面上常见的SPI的实现方式有: JDK的SPI实现 Dubbo的SPI实现、ShenYu的 SPI Spring的SPI实现 JDK的SPI实现流程为 在类路径的META-INF/services目录创建一个以接口全限定名称命名的文件(本质是一个properties)文件,例如命名为java.sql.Driver 该文件中可以指定具体的实现类,也就是每个实现类的全类型限定名为单独一行 例如 META-INF/services/java.sql.Driver # META-INF/services/java.sql.Driver文件内容 com.mysql.jdbc.Driver org.postgresql.Driver 最后通过java.util.ServiceLoader对该文件进行加载,实例化接口的对应实现类(这里隐含了一个约定,所有实现类必须提供无参构造函数,用来反射调用) 底层的实现涉及到类加载、双亲委派等内容,这里不展开。基于这种设计思路,很多主流框架实现了一套SPI扩展,例如Dubbo的SPI扩展模块,就是读取类路径 下META-INF/services/dubbo目录的文件内容进行类加载。ShenYu-SPI模块也是沿用类似的设计思路。 JDK SPI 的代码示例 接口定义 public interface Search { public List<String> searchDoc(String keyword); } 实现类 public class FileSearch implements Search{ @Override public List<String> searchDoc(String keyword) { System.out.println("文件搜索 "+keyword); return null; } } public class DatabaseSearch implements Search{ @Override public List<String> searchDoc(String keyword) { System.

dubbo是否有对文件上传下载导入导出的支持

dubbo是否有对文件上传下载导入导出的支持 项目当前架构: HTTP请求 -> 网关SpringCloudGateway -> 网关路由匹配 -> 网关dubbo泛化调用 -> dubbo服务 但与文件相关的操作,还是需要以Controller的形式暴露服务,因为涉及HttpServletResponse、ModelAndView、MultipartFile这些对象,如: @PostMapping("/upload") public Result uploadFile(@RequestParam("file") MultipartFile file) { ...... } **问题:**请问dubbo可支持文件类型的操作,向外暴露服务,从而去除掉controller ? 对于大文件类型的操作,我们建议在首次接收到 MultipartFile 请求之后将文件存储到 HDFS 或者 OSS 等存储介质上,然后在后端传递的时候直接通过一个标识符传递。对于小文件,将 file 转换成 byte 数组传递就行。 这个想的有点大,dubbo专注于分布式式RPC框架,如果把MVC功能,或者消息堆积之类的功能都实现了,就不太好专注于RPC,想的大一些其实可以考虑一些子项目Dubbo-MVC, Dubbo-MQ ,Dubbo-Framework 😄 dubbo是否有对文件上传下载导入导出的支持

apache shenyu 打包命令集

打包常用的命令 # example打包 ./mvnw -B clean install -Pexample -DskipTests -f ./shenyu-examples/shenyu-examples-springcloud/pom.xml ./mvnw -B clean install -Pexample -DskipTests -f ./shenyu-examples/shenyu-examples-dubbo/pom.xml ./mvnw -B clean install -Pexample -DskipTests -f ./shenyu-examples/shenyu-examples-http/pom.xml ./mvnw -B clean install -DskipTests -f ./shenyu-client/pom.xml ./mvnw -B clean install -Pexample -DskipTests -f ./shenyu-examples/pom.xml ./mvnw -B clean install -Prelease -DskipTests -f ./shenyu-dist/pom.xml ./mvnw -B clean install -Pdocker -DskipTests -f ./shenyu-dist/pom.xml # 集成测试打包 ./mvnw -B clean install -Pit -DskipTests -f ./shenyu-integrated-test/shenyu-integrated-test-spring-cloud/pom.xml ./mvnw -B clean install -Pit -DskipTests -f .