落雁沙吹牛逼大王

的文章
  • create-react-scripts工程支持antd的按需加载,less,css-modules
    在create-react-scripts创建的项目中,我们要使用antd组件库,由于antd是less的,而create-react-scripts默认的是支持saas,所以我们要在配置上做一些调整,使其支持ant按需加载,less,以及css-modules。 根据官网文档,我们可以使用@craco/craco来修改webpack的配置。 调整后的craco.config.js文件如下 const CracoAntDesignPlugin = require("craco-antd"); const CracoLessPlugin = require('craco-less'); mod...
    •  0
    •  0
    •  2020-10-11
  • spring MVC 下restful接口的返回值处理
    在当前的主流环境下,大部分项目都是基于restful的接口来开发的。那么对于接口的返回形式很多时候就会有各种方式,比如说,要不要在最外层包装一层?其实这个主要是根据项目的情况来处理,就我个人而言,我觉得内部业务是不需要包装的,但是按照restful的风格,要么没有返回值,如果有返回值一定是一个Object,不要返回一个string这种就可以了。然而,如果是对外的接口给第三方使用之类的,还是包装一层比较好,毕竟最外层的几个基础字段更便于理解。 1.直接返回数据,用httpStatus表示成功与否 我们要返回这么一结果 {   "title": "三国演义",   "content": "测试" ...
    •  0
    •  0
    •  2020-10-09
  • seata-XA模式
    1.什么是XA模式 XA是由X/Open组织提出的分布式事务的规范。 XA规范主要定义了(全局)事务管理器(TM)和(局 部)资源管理器(RM)之间的接口。主流的关系型 数据库产品都是实现了XA接口的。 XA接口是双向的系统接口,在事务管理器 (TM)以及一个或多个资源管理器(RM)之 间形成通信桥梁。 XA之所以需要引入事务管理器是因为,在分布 式系统中,从理论上讲两台机器理论上无法达 到一致的状态,需要引入一个单点进行协调。 由全局事务管理器管理和协调的事务,可以跨 越多个资源(如数据库或JMS队列)和进程。 全局事务管理器一般使用 XA 二阶段提交协议 与数据库进行交互。 2.seata...
    •  0
    •  0
    •  2020-09-28
  • seata-AT模式
    1.什么是AT模式 seata的AT模式是一个无侵入的分布式事务。 2.AT模式的工作原理 AT模式是基于一个全局的事务管理器来管理的。例如,在全局事务下,当我们存在A,B两个服务的时候,A和B的提交都会生成一个undo_log的记录,会记录下执行前和执行后的镜像,如果一段提交没有错误的话,则会进行二段提交,如果在全局事务中有异常抛出,则根据undo_log进行回滚。 3.全局事务的标记 在seata中,全局事务会有一个TX_ID来标记。这个主要体现在 io.seata.core.context.RootContext#bind() 。在分布式系统中不管分成多少个子系统,我们用请求生命周期的概...
    •  1
    •  0
    •  2020-09-28
  • 分布式事务
    1.事务的概念 事务处理可以用来维护数据库的完整性,保证成批的 SQL 语句要么全部执行,要么全部不执行。 2.事务的特性 事务是必须满足4个条件(ACID):原子性(Atomicity,或称不可分割性)、一致性(Consistency)、隔离性(Isolation,又称独立性)、持久性(Durability)。 原子性:一个事务(transaction)中的所有操作,要么全部完成,要么全部不完成,不会结束在中间某个环节。事务在执行过程中发生错误,会被回滚(Rollback)到事务开始前的状态,就像这个事务从来没有执行过一样。 一致性:在事务开始之前和事务结束以后,数据库的完整性没有被破坏。这...
    •  2
    •  1
    •  2020-09-28
  • typeorm如何设置字段驼峰转下划线
    在用ts的时候,我们一般会遵循驼峰写法,但是,数据库字段的设计我们一般是用的下划线。那么,在typeorm中,我们需要怎么做,才能让entity中的属性,在映射到数据库的时候,默认转下划线。 添加依赖: yarn add typeorm-naming-strategies 修改database的配置文件 const SnakeNamingStrategy = require('typeorm-naming-strategies').SnakeNamingStrategy; export default ()=>({   database:{     type: 'mysql',     ho...
    •  1
    •  0
    •  2020-08-17
  • 用nestjs初始化一个restful应用
    在是用nodejs作为服务端语言的时候,之前我们会选择express或者koa作为服务框架。虽然es7的语法已经让javascript很类似java了,但是如果是习惯用Java的人来说,写起来是不太顺手,毕竟js的写法很多人还是适应不了的。最近看到有个新的框架 nestjs,于是看了下文档,感觉风格很像spring 于是打算写个demo试试。 1.初始化框架 yarn global add @nestjs/cli nest new project-name 脚手架会生成一个基本的nestjs项目。里面有基本的hello word的应用。但是,这些还不够,一个完整的应用,我们需要有数据库,需要...
    •  2
    •  1
    •  2020-08-17
  • 配置docker私仓的地址和账户密码
    在做自动化构建的时候,我们会把项目打包成镜像然后再推送到docker私仓,k8s的各个节点再去拉取这个镜像。私仓一般都是有账号密码的,那么我们需要去设置一下这个。 以阿里云为例,我们找一台机器,在上面执行 docker login 操作,这样就会自动在 root/.docker下生成一个 config.json文件。查看文件内容,如下: {     "auths": {         "registry-vpc.cn-shanghai.aliyuncs.com": {             "auth": "xxxxxxxxx"         }     },     "HttpHead...
    •  0
    •  0
    •  2020-08-11
  • centos8+kubeadm1.18.3+calico环境安装
    由于一些原因,需要重新部署一套k8s的测试环境。但是,又不想用二进制按照,之前使用二进制安装,各种脚本写的要吐。经过一些咨询,决定使用Kubeadm进行部署。 这里,我们就简单的使用1台master,1台Node进行测试。 环境配置 centos8 kubeadm 1.18.3 calico1.14.2 1.更新系统 yum upgrade -y 2.关闭防火墙 systemctl stop firewalld systemctl disable firewalld 3.关闭selinux setenforce 0 sed -i 's/^SELINUX=enforcing$/SELINU...
    •  0
    •  0
    •  2020-08-02
  • sku组合生成的函数
    在做电商项目的管理后台的时候(当然,我说的是比较正规的,不是那种只是一个商品列表的那种电商),需要对用户选择的sku属性进行组合,得到商品的所有规格。那么这个功能应该怎么去做呢?我们可以把规格属性理解成多个数组,我们需要得到的就是这几个数组所有的组合方案,这个有点类似回溯算法,但好像又不是。 比如,我们要对["a","b","c"],["d","e","f"],["g","h"] 这三组属性进行组合。按照我们的思路就是 a->d->g,a->d->h,a->e->g,a->e->h 总结来说,就是遍历->再递归。 函数如下: const _ = require("lodash"); let r...
    •  0
    •  0
    •  2020-06-25