next

Nginx负载均衡权重,ip_hash

依然范特西╮ 提交于 2020-12-21 02:32:46
nginx 为后端web服务器( apache ,nginx, tomcat ,weblogic)等做反向代理 几台后端web服务器需要考虑文件共享, 数据库 共享,session共享问题.文件共享可以使用nfs,共享存储(fc,ip存储都行)+redhat GFS集群文件系 统,rsync+inotify文件同步等.小规模的集群中使用更多的是nfs.对于内容管理系统,单台进行发布信息,向多台同步使用rsync+inotify就是个不错的选择. 小规模集群,单台高性能 数据库 (如志强双四核,32/64/128G内存)即可,大规模集群可能要考虑数据库集群了,可以使用mysql官方提供的集群软件,也 可以使用keepalived+lvs读写分离做Mysql集群. session共享问题是一个大问题,如果nginx采用ip_hash的轮询方法,每个ip在一定时间内会被固定的后端服务器,这样我们不用解决session共享问题.反之, 一个ip的请求被轮询分发到多台服务器上,就要解决session共享的问题,可以使用nfs共享session,把session写入mysql或者memcache等方法,当机器规模比较大 时,一般使用把session写入memcache里面. 后端的web服务器如何配置我们这里就不讨论了,后端服务器可能是apache,nginx,tomcat

Android uni-app 封装原生插件

我们两清 提交于 2020-12-20 23:03:06
前言 据广大用户的需求,需要把我们anyRTC的SDK,封装到uni-app来使用,并且实现音视频通话。这边文章图文讲解一下怎么封装原生插件,并且在下一章uni-app实现音视频通话。 anyRTC开发者中心 1.uni-app是什么? 一个使用Vue.js开发所有前端应用框架,开发者编写一套代码,可发布到ios、Android、H5、以及各种小程序(微信/支付宝/百度/头条/QQ/钉钉)等多个平台。 如果你还没有了解uni-app是什么: 点击这里:这篇文章举例说明。 2.uni-app的特点 1、跨平台更多 真正做到“一套代码、多端发行”! 条件编译:优雅的在一个项目里调用不同平台的特色功能! 2、运行体验好 组件、api与微信小程序一致 兼容weex原生渲染 3、通过技术栈,学习成本低 vue的语法、微信小程序的api 内嵌mpvue 4、开放生态,组件更丰富 5、支持通过npm安装第三方包 6、支持微信小程序自定义组件及SDK 7、兼容mpvue组件及项目 8、App端支持和原生混合编码 9、DCloud将发布插件市场 3.uni-app封装原生插件 3.1 Android离线SDK下载: 点击下载 ,两个SDK均可。 下载完成,解压备用: 3.2 新建Android项目 打开Android Studio,建立一个No Activity项目。在菜单栏选择 File>New

单源最短路模板(dijkstra)

荒凉一梦 提交于 2020-12-20 04:22:56
单源最短路(dijkstra算法及堆优化) 弱化版 题目链接 n^2 dijkstra模板 1 #include<iostream> 2 #include<cstdio> 3 #include<algorithm> 4 #include<cstring> 5 using namespace std; 6 int i,j,n,m,s,dis[ 10010 ]; 7 bool v[ 10010 ]; 8 struct Node{ 9 int to; 10 int w; 11 Node * next; 12 } node[ 10010 ]; 13 Node *head[ 10010 ]; 14 int main() 15 { 16 scanf( " %d%d%d " ,&n,&m,& s); 17 for (i= 1 ;i<=n;i++ ) 18 { 19 dis[i]= 0x7fffffff ; 20 head[i]= new Node; 21 head[i]->next= NULL; 22 } 23 int x,y,w; 24 for (i= 1 ;i<=m;i++ ) 25 { 26 scanf( " %d%d%d " ,&x,&y,& w); 27 Node *p= new Node; 28 p->next=head[x]-> next; 29 head[x]->next= p;

eclipse离线安装Activiti Designer插件

拟墨画扇 提交于 2020-12-20 04:05:28
今天安装个插件费了半天的劲,特此记录一下。 1.在线安装 按照网上说的,菜单选择Help–Install New Software,点击Add,输入Name:Activiti BPMN 2.0 designer, Location:http://activiti.org/designer/update/ ,基本可以放弃了,提示以下错误: 2.离线通过安装包安装 a. 通过网盘下载所需文件。链接:https://pan.baidu.com/s/18ZElHHoPY8xGtWCDDoiNrw 密码:gha5 b.将下载好的jars文件夹里的3个jar文件复制到eclipse安装目录的plugins目录下。并删除eclipse安装目录下,configuration文件夹里的org.eclipse.update文件夹,启动eclipse。 c.打开eclipse,在Help->Install New Software后的弹出窗点击Available Software Sites,删除以前安装失败的资源信息。 d.点击Add,点击local…,选择本地的解压缩activiti-designer-5.14.1文件夹,一路next,finish,成功。 e.查看是否安装成功,在eclipse中,File–>New–>Other–>搜索activiti出现以下界面,安装成功。 参考:https:/

vue+axios 前端实现登录拦截(路由拦截、http拦截)

╄→гoц情女王★ 提交于 2020-12-20 02:37:34
一、路由拦截 登录拦截逻辑 第一步:路由拦截 首先在定义路由的时候就需要多添加一个自定义字段 requireAuth ,用于判断该路由的访问是否需要登录。如果用户已经登录,则顺利进入路由, 否则就进入登录页面。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 const routes = [ { path: '/' , name: '/' , component: Index }, { path: '/repository' , name: 'repository' , meta: { requireAuth: true , // 添加该字段,表示进入这个路由是需要登录的 }, component: Repository }, { path: '/login' , name: 'login' , component: Login } ]; 定义完路由后,我们主要是利用 vue-router 提供的钩子函数 beforeEach() 对路由进行判断。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 router.beforeEach((to, from , next) => { if (to.meta.requireAuth) { // 判断该路由是否需要登录权限 if (store.state

vue+axios 前端实现登录拦截(路由拦截、http拦截)

白昼怎懂夜的黑 提交于 2020-12-20 02:32:26
一、路由拦截 登录拦截逻辑 第一步:路由拦截 首先在定义路由的时候就需要多添加一个自定义字段 requireAuth ,用于判断该路由的访问是否需要登录。如果用户已经登录,则顺利进入路由, 否则就进入登录页面。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 const routes = [ { path: '/' , name: '/' , component: Index }, { path: '/repository' , name: 'repository' , meta: { requireAuth: true , // 添加该字段,表示进入这个路由是需要登录的 }, component: Repository }, { path: '/login' , name: 'login' , component: Login } ]; 定义完路由后,我们主要是利用 vue-router 提供的钩子函数 beforeEach() 对路由进行判断。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 router.beforeEach((to, from , next) => { if (to.meta.requireAuth) { // 判断该路由是否需要登录权限 if (store.state

LeetCode

你。 提交于 2020-12-20 00:17:58
Topic Array Two Pointers Binary Search Description https://leetcode.com/problems/find-the-duplicate-number/ Given an array of integers nums containing n + 1 integers where each integer is in the range [1, n] inclusive. There is only one duplicate number in nums, return this duplicate number. Follow-ups : How can we prove that at least one duplicate number must exist in nums ? Can you solve the problem without modifying the array nums ? Can you solve the problem using only constant, O(1) extra space? Can you solve the problem with runtime complexity less than O(n²) ? Example 1 : Input: nums =

vue+axios 前端实现登录拦截(路由拦截、http拦截)

北战南征 提交于 2020-12-19 18:53:12
vue+axios 前端实现登录拦截(路由拦截、http拦截) 一、路由拦截 登录拦截逻辑 第一步:路由拦截 首先在定义路由的时候就需要多添加一个自定义字段 requireAuth ,用于判断该路由的访问是否需要登录。如果用户已经登录,则顺利进入路由, 否则就进入登录页面。 const routes = [ { path: '/', name: '/', component: Index }, { path: '/repository', name: 'repository', meta: { requireAuth: true, // 添加该字段,表示进入这个路由是需要登录的 }, component: Repository }, { path: '/login', name: 'login', component: Login } ]; 定义完路由后,我们主要是利用 vue-router 提供的钩子函数 beforeEach() 对路由进行判断。 router.beforeEach((to, from, next) => { if (to.meta.requireAuth) { // 判断该路由是否需要登录权限 if (store.state.token) { // 通过vuex state获取当前的token是否存在 next(); } else { next({ path:

使用selenium模拟登录知乎

非 Y 不嫁゛ 提交于 2020-12-19 14:53:40
网上流传着许多抓取知乎数据的代码,抓取它的数据有一个问题一定绕不过去,那就是模拟登录,今天我们就来聊聊知乎的模拟登录。 获取知乎内容的方法有两种,一种是使用request,想办法携带cookies等必要参数去请求数据,但是使用requests的话,不仅要解析Cookies,还要获取XSRF,比较麻烦,所以我想到了selenium。 我直接控制Chrome请求知乎,然后模拟输入用户名和密码,这样不也可以吗,嘿嘿 接下来说一下大体流程:   首先控制selenium模拟请求知乎登录界面:https://www.zhihu.com/signup?next=%2F      但是默认为注册,所以需要控制鼠标来点击上边那个登录按钮,就变成这样了。      然后我们在控制浏览器找到输入用户名、密码的这两个input标签,使用send_keys()来将用户名密码输入进去即可,部分代码如下:      但就在我正要点击登录按钮时问题出现了:验证码   经过测试, 知乎的验证码分为两种 ,而且两种验证码所对应的代码是不一样的:     第一种:4位英文数字组成的图片,用户输入对应的英文数字即可。     第二种:纯中文组成的图片,用户使用鼠标来点击图片中倒立的汉字进行验证。   但是我发现验证码也不是次次都出现的,而且如果验证码要出现,当用户输入完密码之后就可以看见了。  

Axure RP 8.0软件安装教程

拥有回忆 提交于 2020-12-19 14:31:31
Axure8.0(32/64)位下载地址: 链接:https://pan.baidu.com/s/1qYSLkKW 密码:skaw 软件介绍: Axure RP是一个专业的快速原型设计工具,让负责定义需求和规格、设计功能和界面的专家能够快速创建应用软件或Web网站的线框图、流程图、原型和规格说明文档。作为专业的原型设计工具,它能快速、高效的创建原型,同时支持多人协作设计和版本控制管理。 安装步骤: 1、选择下载的软件压缩包,鼠标右击选择解压到“Axure8.0\(E)”。 2、在解压文件夹找到AxureRP-Setup.exe鼠标右击选择打开。 3、点击Next。 4、勾选I Agree,然后点击Next。 5、点击Browse更改安装路径建议安装到除C盘以外的磁盘,可在D盘或者其他盘创建一个Axure 8文件夹。然后点击Next。 6、点击Next。 7、点击Next。 8、等待1分钟左右。 9、取消勾选Run Axure RP 8使其处于未选中状态,然后点击Finish。 10、在桌面找到Axure RP 8,鼠标右击选择打开。 11、点击确定。 12、取消勾选Check for upadteswhen Axure RP start使其处于未选中状态,点击Close。 13、勾选Don’t show this at startup,点击Close并关闭软件。 14