Vue2和vue3的区别(由浅入深)

前言

vue2和vu3之前的区别,一直以来是面试必考题目,如何回答,回答的层次决定了面试者的对于vue2,3的理解,以及对于vue3目前稳定版本发展的方向的了解,即考察使用程度,又考察了学习能力,可以说是回答即可以很简单,也可以很不简单,这里需要注意的是面试官的面试程度,需要我们层层递进,由浅入深来回答,这样可以体现出面试者的考虑全面,又能体现知识广度。简而言之,vue2升级vue3之后变得更快,更轻,协作更方便。无论对于我们开发者的体验或者用户使用方面都是升级优化,但是本质区别是什么,下面分为几个部分进行讲解。

Vue3和vue2的区别?好在哪里?

vue3和vue2的区别?

一、好在哪里?

1、更小

引入tree-shaking,可以将无用模块“剪辑”,仅打包需要的,使打包的整体体积变小了;

2、更友好

vue3在兼顾vue2的options API的同时还推出了composition API,大大增加了代码的逻辑组织和代码复用能力;

Spring.profiles.active的使用

以前在工作中总是不明白spring是如何区分不同环境的,今天写了一个简单的小demo,明白了。记录一下,以备自己以后独立开发项目使用。 首先应该在pom.xml中添加以下配置:

利用SVN多仓库统一管理公司文档资料

SVN 服务器端的搭建-及多仓库管理

1、首先安装SVN这个软件

1
apt-get install subversion

2、在home目录下创建一个名为svn的文件夹(文件夹的名字随便起)

1
sudo mkdir /kk/svn/rda8501_common

3、创建数据仓库(可以根据需要创建多个)

1
svnadmin create /kk/svn/rda8501_common

4、启动/停止svn网络服务

1
svnserve -d -r /kk/svn/rda8501_common

其中 -d 参数让 svnserve 运行在后台,-r 参数限定了数据仓库,在网络上可以访问的地址。 /kk/svn/rda8501_common指定svn数据仓库存放的目录位置

Uni App多环境配置实现自动部署的方式详解

前言

uni-app 项目在不同阶段需要部署到不同的环境,比如开发环境(dev)、测试环境(test)、UAT 环境(uat)、生产环境(prod)等,那么如何通过自动化构建工具实现在多环境下自动部署呢?我们先来看看不同打包方式下的环境配置。

JMeter自动化测试工具

在进行网页或应用程序后台接口开发时,一般要及时测试开发的接口能否正确接收和返回数据,对于单次测试,Postman插件是个不错的Http请求模拟工具。

image

但是Postman只能模拟单客户端的单次请求,而对于模拟多用户并发等性能测试,就必须借助其他的工具了,这里推荐功能强大的JMeter自动化测试工具

Nginx(OpenResty)+Lua+RedisIP限流10s内

使用 OpenResty 可以不用再次编译nginx 就能集成对应lua环境 可以扩展的模块比较丰富

1.使用redis 控制限流 ip 访问频度

创建对应lua脚本 access_by_limit_frequency.lua

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
local function close_redis(red)  
    if not red then  
        return
    end 
    --释放连接(连接池实现)  
    local pool_max_idle_time = 10000 --毫秒  
    local pool_size = 100 --连接池大小  
    local ok, err = red:set_keepalive(pool_max_idle_time, pool_size)  
    if not ok then  
        ngx.say("set keepalive error : ", err)  
    end  
end
 
local function errlog(...)
    ngx.log(ngx.ERR, "redis: ", ...)
end
 
local redis = require "resty.redis"  --引入redis模块
local red = redis:new()  --创建一个对象,注意是用冒号调用的
 
--设置超时(毫秒)  
red:set_timeout(1000) 
--建立连接  
local ip = "127.0.0.1"  
local port = 6379
local ok, err = red:connect(ip, port)
if not ok then  
    close_redis(red)
    errlog("Cannot connect");
    return ngx.exit(ngx.HTTP_INTERNAL_SERVER_ERROR)   
end  
 
local key = "limit:frequency:login:"..ngx.var.remote_addr
 
--得到此客户端IP的频次
local resp, err = red:get(key)
if not resp then  
    close_redis(red)
    return ngx.exit(ngx.HTTP_INTERNAL_SERVER_ERROR) --redis 获取值失败
end 
 
if resp == ngx.null then   
    red:set(key, 1) -- 单位时间 第一次访问
    red:expire(key, 10) --10秒时间 过期
end  
 
if type(resp) == "string" then 
    if tonumber(resp) > 10 then -- 超过10
        close_redis(red)
        return ngx.exit(ngx.HTTP_FORBIDDEN) --直接返回403
    end
end
 
--调用API设置key  
ok, err = red:incr(key)  
if not ok then  
    close_redis(red)
    return ngx.exit(ngx.HTTP_INTERNAL_SERVER_ERROR) --redis 报错 
end  
 
close_redis(red)  

2.在 nginx.conf 中配置对应的 路径的使用情况处理

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
      location ^~/frequency/ {
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
 
        # default_type 'text/plain';
        # charset 'utf-8';
        access_by_lua_file  D:\openresty-1.15.8.3-win64\lua\local\access_by_limit_frequency.lua;
        # content_by_lua '
        #     ngx.say(ngx.time() * 1000);
        #     ngx.exit(200)
        # ';   
        # content_by_lua_block {
        #     ngx.say("{\"error\":0, \"status\":0,\"msg\":\"ok\"}");
        #     ngx.exit(200);
        # }
       root D:/ds_wechat_files;
   }

以上是从其他地方找到的。大杂烩,如有侵权请联系我

Nginx+lua实现限流降级(使用lua的lua Resty Limit Traffic)

前言

虽然nginx中自带了限流的模块,只能直接限定超出的数量,但对于允许范围内的流量如何进行限流是个问题。nginx的限流方式!

1
2
3
 limit_conn perserver 100;
 limit_conn perip 15;
 limit_rate 512k;

但是比如这100的允许的值,0-30个请求去mysql读数据,31-70去redis读数据,71-100去文件直接读数据,nginx不好做这个事情,所以引入lua的lua-resty-limit-traffic来设计。

用lua扩展你的Nginx

一. 概述

Nginx是一个高性能,支持高并发的,轻量级的web服务器。目前,Apache依然web服务器中的老大,但是在全球前1000大的web服务器中,Nginx的份额为22.4%。Nginx采用模块化的架构,官方版本的Nginx中大部分功能都是通过模块方式提供的,比如Http模块、Mail模块等。通过开发模块扩展Nginx,可以将Nginx打造成一个全能的应用服务器,这样可以将一些功能在前端Nginx反向代理层解决,比如登录校验、js合并、甚至数据库访问等等。 但是,Nginx模块需要用C开发,而且必须符合一系列复杂的规则,最重要的用C开发模块必须要熟悉Nginx的源代码,使得开发者对其望而生畏。淘宝的agentzh和chaoslawful开发的ngx_lua模块通过将lua解释器集成进Nginx,可以采用lua脚本实现业务逻辑,由于lua的紧凑、快速以及内建协程,所以在保证高并发服务能力的同时极大地降低了业务逻辑实现成本。 本文向大家介绍ngx_lua,以及我在使用它开发项目的过程中遇到的一些问题。

Nginx+lua+redis防刷和限流

防刷的概念:

防刷的目的是为了防止有些IP来爬去我们的网页,获取我们的价格等信息。不像普通的搜索引擎,这种爬去行为我们经过统计最高每秒300次访问,平均每秒266次访问。 由于我们的网站的页面都在CDN上,导致我们的CDN流量会定时冒尖。为了防止这种情况,打算将网页页面的访问从CDN切回主站。同时开启防刷功能,目前设置一秒200次访问即视为非法,会阻止10分钟的访问。