自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 收藏
  • 关注

原创 ClassPathResource读取资源文件报错问题解决

如果要读取的文件在jar中,就会报错:java.lang.IllegalArgumentException: URI is not hierarchical原因:jar包中的文件不能通过这种方式读取,因为目录是不透明的原代码final ClassPathResource classPathResource = new ClassPathResource("logo.png");final File file = classPathResource.getFile();Image srcImg =

2021-10-15 20:11:24 4762

原创 引入javacv后报错ValueExtractorManager问题

问题描述引入javacv这个包后,启动报错ValueExtractorManager解决办法:修改依赖后解决,记录一下<dependency> <groupId>org.bytedeco</groupId> <artifactId>javacv</artifactId> <version>1.4.4</version> </dependency><dependency> <g

2021-10-09 20:11:22 402

原创 rtsp通过javacpp ffmpeg视频抓拍截图并上传到oss中

直接上代码了依赖:<dependency> <groupId>org.bytedeco</groupId> <artifactId>javacv</artifactId> <version>1.5.6</version></dependency><dependency> <groupId>org.bytedeco</groupId> <artifactI

2021-10-09 16:15:38 550

原创 微服务架构设计模式笔记--第九章 微服务架构中的测试策略(上)

微服务架构设计模式笔记--第九章 微服务架构中的测试策略(上)1. 微服务架构中的测试策略概述1.1 什么是测试1.2 微服务架构中的测试挑战1.3 部署流水线为服务编写单元测试传统的测试方法通常都在开发完成后执行,开发人员将他们的代码扔给隔壁的QA团队,QA团队验证软件是否按预期工作。更糟糕的是,他们的大多数测试都是手动执行的。这种测试方法现在不管用了,原因有两个:手动测试效率极低:你永远不应该让人类去做一台机器可以做得更好的事情。与机器相比,手动测试执行的速度很慢,不能全天候工作。如果依赖手动测试

2021-03-07 22:14:17 370 3

原创 微服务架构设计模式笔记--第八章 外部API模式

1. 外部API设计难题设计应用程序外部API的任务因其客户端的多样性而变得更具挑战性。不同客户端通常需要不同的数据。通常,基于桌面浏览器的用户界面显示的信息远远多于移动应用程序。此外,不同的客户端通过不同类型的网络访问服务。防火墙内的客户端使用高性能局域网,防火墙外的客户端使用性能较低的互联网或移动网络。因此,你会发现,拥有单一、适合所有客户端的API通常没有意义。存在的问题:多次客户端请求导致用户体验不佳缺乏封装导致前端开发做出的代码修改影响后端服务可能选用对客户端不友好的进程间通信机制.

2021-03-03 20:01:49 480 1

原创 微服务架构设计模式笔记--第七章 在微服务架构中实现查询

微服务架构设计模式笔记--第七章 在微服务架构中实现查询本章导读1. 使用API组合模式进行查询1.1 什么是API组合模式1.2 API组合模式的设计缺陷由谁来担任API组合器的角色1.3 弊端2. 使用CQRS模式2.1 什么是CQRS2.2 CQRS的好处2.3 CQRS 的弊端3. 设计CQRS视图3.1 可供选择的查询端视图存储库3.2 设计数据访问模块3.3 添加和更新CQRS视图本章导读在微服务架构中查询数据的挑战何时以及如何使用APl组合模式实现查询何时以及如何使用CQRS模式实现

2021-02-19 22:17:48 371 1

原创 微服务架构设计模式笔记--第六章 使用事件溯源开发业务逻辑

微服务架构设计模式笔记--第六章 使用事件溯源开发业务逻辑1. 使用事件溯源开发业务逻辑概述1.1 传统持久化技术的问题1.2 什么是事件溯源事件溯源通过事件来持久化聚合事件代表状态的改变聚合方法都和事件相关1.3 使用乐观锁处理并发更新1.4 事件溯源和发布事件1.5 使用快照提升性能1.6 幂等方式的消息处理1.7 领域事件的演化1.8 事件溯源的好处和弊端2 实现事件存储库2.1 Eventuate Local 事件存储库的工作原理2.2 Eventuate 的 Java 客户端框架3 同时使用Sag

2021-02-19 00:00:16 580

原创 微服务架构设计模式笔记--第五章 微服务架构中的业务逻辑设计

微服务架构设计模式笔记--第四章 微服务架构中的业务逻辑设计1. 业务逻辑的组织模式1.1 使用事务脚本模式设计业务逻辑1.2 使用领域模型模式设计业务逻辑1.3 关于领域驱动设计2. 使用聚合模式设计领域模型2.1 模糊边界所带来的问题2.2 拥有明确的边界2.3 聚合的规则2.4 聚合的颗粒度2.5 使用聚合设计业务逻辑3. 发布领域事件3.1 为什么需要发布变更事件3.2 什么是领域事件3.3 事件增强3.4 识别领域事件3.5 生成和发布领域事件如何可靠地发布领域事件3.6 消费领域事件企业应用程

2021-02-17 23:33:13 730 3

原创 微服务架构设计模式笔记--第四章 使用Saga管理事务

微服务架构设计模式笔记--第四章 使用Saga管理事务1. 微服务架构下的事务管理1.1 微服务架构对分布式事务的需求1.2. 传统解决办法存在的问题1.3. 使用Saga模式维护数据一致性示例Saga: Create Order SagaSaga使用补偿事务来回滚所做出的改变2. Saga的协调模式2.1 协同式Saga可靠的事件通信协同式Saga的好处和弊端2.2 编排式Saga实现编排式的 Create order saga把Saga编排器视为一个状态机编排式Saga的好处和弊端3. 解决隔离问题3.

2021-02-14 20:53:50 751 2

原创 微服务架构设计模式笔记--第三章 微服务架构中的进程间通信

第二章 微服务架构中的进程间通信1. 微服务架构中的进程间通信概述1.1 交互方式一对一的交互方式一对多的交互方式1.2 在微服务架构中定义API1.3 API的演化1.4 消息的格式2. 基于同步远程过程调用模式的通信2.1 使用REST2.2 使用gRPC2.3 使用断路器模式处理局部故障2.4 使用服务发现应用层服务发现模式平台层服务发现模式3. 基于异步消息模式的通信3.1 什么是消息传递3.2 使用消息机制实现交互方式3.3 为基于消息机制的服务API创建API规范记录异步操作记录事件发布3.4

2021-02-12 01:23:32 2312 11

原创 微服务架构设计模式笔记--第二章 服务的拆分策略

1. 微服务架构到底是什么第1章描述了微服务架构的关键思想是如何进行功能分解。你可以将应用程序构建为组服务,而不是开发一个大型的单体应用程序。一方面,将微服务架构描述为一种功能分解是有用的。但另一方面,它留下了几个未解决的问题,包括:微服务架构如何与更广泛的软件架构概念相结合?什么是服务?服务的规模有多重要?为了回答这些问题?我们需要退后一步,看看软件架构的含义。软件的架构是一种抽象的结构,它由软件的各个组成部分和这些部分之间的依赖关系构成。正如你将在本节中看到的,软件的架构是多维的,因此有多种方法可以

2021-02-10 23:14:59 771 5

原创 微服务架构设计模式笔记--第一章 逃离单体地狱

第一章 逃离单体地域迈向单体地狱的漫长旅途拯救之道:微服务架构1. 扩展立方体和服务2. 微服务架构作为模块化的一种形式3. 每个服务都拥有自己的数据库4. FTGO的微服务架构微服务架构的好处和弊端1. 微服务架构的好处2. 微服务架构的弊端微服务架构的模式语言微服务之上:流程和组织1. 进行软件开发和交付的组织2. 进行软件开发和交付的流程迈向单体地狱的漫长旅途单体架构存在着巨大的局限性,渴求成功的应用程序,往往都不断地在单体架构的基础之上扩展。每一次开发冲刺(Sprint),开发团队就会实现更多的

2021-02-08 22:19:54 1541 6

原创 过磅微服务架构整理

现状目前市面上过磅软件基本和十年前的没有什么变化,基本还都是C/S模式,这里的C/S不是Client/Server,而是Client/SQL Server,本地装一个SQL Server数据库,安全稳定都谈不上,客户也是真不懂,花大钱买的软件无法更新,没有售后,不能跟随业务变化进行优化升级。云智磅ERP是钉钉上架的一款SaaS模式的过磅软件,以每年收取服务费方式对客户提供优质服务。云智磅目前版本也是C/S模式,这里的S是直接调用Web服务器,electron做底座,界面用Vue开发的,客户端原来用C#

2021-02-05 21:20:24 585 2

原创 COLA架构学习

关于云智磅云智磅ERP是一款钉钉上架应用,中小企业ERP,主要功能包括:商城、订单、过磅、质检、结算、报表等。2020年开通试用656家,主要客户来源是钉钉平台。团队是8个人的小团队,4个后端、2个前端、1个产品、1个客服。产品主要是线上SaaS模式,技术要求高可用、分布式,避免出现单点故障。存在的问题上线初期是单jar包运行在两个服务器中,通过阿里负载均衡服务做负载均衡,架构采用三层架构(controller、service、dao),代码混乱,学习成本高,沟通困难,经常改一个bug会出现另外一

2021-02-03 22:41:23 3771

原创 rinetd 端口转发 ssl转发

1. 背景钉钉云中采用白名单机制,禁止服务器访问白名单以外的ip地址,如果需要访问二方或者三方接口,需要添加白名单,然而只能添加IP,不允许添加域名,可以用rinetd解决,可以转发443端口数据。2. 安装apt-get install rinetd3. 配置配置文件在/etc/rinetd.conf,比较简单,不做说明了。## this is the configuration file for rinetd, the internet redirection server## you

2021-02-03 10:05:00 1729

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除