param

微服务架构四大金刚利器

江枫思渺然 提交于 2019-11-30 18:39:01
概述 互联网应用发展到今天,从单体应用架构到SOA以及今天的微服务,随着微服务化的不断升级进化,服务和服务之间的稳定性变得越来越重要,分布式系统之所以复杂,主要原因是分布式系统需要考虑到网络的延时和不可靠,微服务很重要的一个特质就是需要保证服务幂等,保证幂等性很重要的前提需要分布式锁控制并发,同时缓存、降级和限流是保护微服务系统运行稳定性的三大利器。 随着业务不断的发展,按业务域的划分子系统越来越多,每个业务系统都需要缓存、限流、分布式锁、幂等工具组件,distributed-tools组件(暂未开源)正式包含了上述分布式系统所需要的基础功能组件。 distributed-tools组件基于tair、redis分别提供了2个springboot starter,使用起来非常简单。 以使用缓存使用redis为例,application.properties添加如下配置 redis.extend.hostName=127.0.0.1 redis.extend.port=6379 redis.extend.password=pwdcode redis.extend.timeout=10000 redis.idempotent.enabled=true 接下来的篇幅,重点会介绍一下缓存、限流、分布式锁、幂等的使用方式。 缓存 缓存的使用可以说无处不在,从应用请求的访问路径来看,用户user

Passing an urlencoded URL as parameter to a controller / action at CakePHP

橙三吉。 提交于 2019-11-30 17:51:05
问题 I'm fairly new on CakePHP and because of so, there are some basic things that I used to do with Zend Framework that I'm beaten up with Cake. I'm working on a project where I have to pass a named parameter to a controller / action. Setting up the route and passing the parameter is fairly simple, my problem is when the parameter is a urlencoded url. For example: http://www.cakephp.com/controller/action/http%3A%2F%2Fwww.google.com regardless of the controller and action setup, will throw a 404,

sitemesh简单使用

痴心易碎 提交于 2019-11-30 17:25:46
一、简介 SiteMesh 是一个网页布局和修饰的框架,利用它可以将网页的内容和页面结构分离,以达到页面结构共享的目的。 官网:http://wiki.sitemesh.org/wiki/display/sitemesh/Home 二、配置 1、下载jar包 自行百度吧,这里就不多说明。 2、web.xml配置 <!-- sitemesh 过滤器 注意:如果和其他技术一起使用比如springmvc一定要注意顺序--> <filter> <filter-name>sitemesh</filter-name> <filter-class>com.opensymphony.sitemesh.webapp.SiteMeshFilter</filter-class> </filter> <filter-mapping> <filter-name>sitemesh</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> 3、 在WEB-INF/新建一个decorators.xml文件,包含以下内容: <?xml version="1.0" encoding="UTF-8"?> <decorators > <decorator name="front" page="/common/front"> //前台页面母版页

函数的初始

馋奶兔 提交于 2019-11-30 16:20:57
定义一个函数 def my_len(): 函数体 调用函数 my_len() 函数名+() # 多次调用就是执行多次 # 可以循环调用 return return的内容返回给了函数的调用 return下方的代码不执行,终止这个函数 return返回多个内容的时候还是元组形式 return没有写返回值的时候返回的是None,不写return返回也是None 位置传参: def yue(a,b,c): #形参 print("打开手机") print(f"打开{a},{c}{b}") print("附近的妹子") print("聊一聊") yue=(True(12,4,3),[1,2,3,4])实参 默认参数 # def func(a,b=1): #b=1 默认参数 # print(a,b) # func(3,8) 位置参数 # 姓名,性别,年龄 # def userinfo(name,age,sex="男"): # 位置参数 > 默认参数 # print(name,sex,age) # 混合参数 # def func(a,b,c): # print(a,b,c) # func(1,2,c=5) # 混合参数 形参:函数定义的时候叫形参 实参:函数的调用括号里就是实参 位置传参是 形参和实参必须是一一对应 传参:将实参传递给形参的过程就是传参 函数的参数 形参: 函数定义的时候叫做形参

递归算法应用

你离开我真会死。 提交于 2019-11-30 14:45:07
一、递归的定义 递归就是程序在运行的过程中调用自己(用自己定义自己) 递归的三要素: 边界条件 递归前进段 递归返回段 递归和栈     递归和栈有这紧密的联系,大多数编译器都是使用栈来实现递归的,当调用方法时,编译器会把这个方法的所有参数和返回地址都压入栈中,然后把控制转移给这个方法。当方法返回时,这些值退栈。参数消失了,并且控制权重新回到返回地址处。     调用一个方法时,所进行的步骤:     1)当一个方法被调用时,它的参数和返回地址压入栈中     2)这个方法可以通过获取栈顶元素访问参数     3)当这个方法返回时,它查看栈已获取返回地址,然后这个地址和所有参数退栈,并且销毁   下图是求阶乘的图示,帮助理解:    二、求整数n的阶乘  1 /** 2 * 求整数n的阶乘 3 * 4 * @param n 整数n 5 * @return 6 */ 7 public static int factorial(int n) { 8 if (n < 0) { 9 return -1;//返回-1证明参数有问题 10 } 11 if (n == 1 || n == 0) { 12 return 1; 13 } else { 14 return n * factorial(n - 1); 15 } 16 } 三、在有序数组中查找目标值(二分法) 1 /** 2 *

(十七)Python爬虫:爬取豆瓣电影TOP250

扶醉桌前 提交于 2019-11-30 13:34:00
爬取目标:豆瓣电影TOP250,并且存入csv文件中 爬取内容: 首页请求地址: https://movie.douban.com/top250?start=0&filter= 多查看几页的请求地址我们可以发现以下规律: 1、每页显示25条内容,共10页; 2、每页的请求地址只改变start的值,第一页为0,第二页为25,第三页为50,所以第n页为(n-1)*25。 右键查看网页源代码我们可以发现每部电影的信息都在li标签中: 这就表明我们不需要去抓包分析。 思路很简单了:发送请求→获取网页源代码→正则匹配→保存匹配信息。 实现代码: import requests from requests import RequestException import re import logging import csv logging.captureWarnings(True) headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36 QIHU 360SE'} proxyIp = {'http':'106.75.9.39:8080','http':'118.190.95.35

What does @param mean in a class?

六眼飞鱼酱① 提交于 2019-11-30 13:13:15
问题 What does the @param mean when creating a class? As far as I understand it is used to tell the script what kind of datatype the variables are and what kind of value a function returns, is that right? For example: /** * @param string $some * @param array $some2 * @return void */ Isn´t there another way to do that, I am thinking of things like: void function() { ... } or something like that. And for variables maybe (int)$test; 回答1: @param doesn't have special meaning in PHP, it's typically used

String.valueOf()和StringUtils.isBlank()一起用出现的问题

怎甘沉沦 提交于 2019-11-30 09:39:24
  String.valueOf()方法当传入的参数为一个引用且该引用引用的是null时,方法返回字符串"null",此时若用StringUtils.isBlank()这类方法判断时将返回true 前端不传这个变量,后端用@RequestParam Map<String,Object> param 接收变量,转化为string字符串,null会变为"null"    String name1=String.valueOf(param.get("name"));      StringUtils.isBlank()只会判断""," ",null,判断参数:是否为空,长度是否为0,值是否包含空白字符。所以在接收前端值时转换类型是用 getOrDefault String name=param.getOrDefault("name", "").toString(); // name为"" 来源: https://www.cnblogs.com/zhouke233/p/11576941.html

Activity生命周期

做~自己de王妃 提交于 2019-11-30 08:50:37
子曰:溫故而知新,可以為師矣。《論語》 学习技术也一样,对于技术文档或者经典的技术书籍来说,指望看一遍就完全掌握,那基本不大可能,所以我们需要经常回过头再仔细研读几遍,以领悟到作者的思想精髓。 近来回顾了一下关于Activity的生命周期,参看了相关书籍和官方文档,也有了不小的收获,对于以前的认知有了很大程度上的改善,在这里和大家分享一下。 熟悉javaEE的朋友们都了解servlet技术,我们想要实现一个自己的servlet,需要继承相应的基类,重写它的方法,这些方法会在合适 的时间被servlet容器调用。其实android中的Activity运行机制跟servlet有些相似之处,Android系统相当于 servlet容器,Activity相当于一个servlet,我们的Activity处在这个容器中,一切创建实例、初始化、销毁实例等过程都是容器 来调用的,这也就是所谓的“Don't call me, I'll call you.”机制。 我们来看一下这一张经典的生命周期流程图: 相信不少朋友也已经看过这个流程图了,也基本了解了Activity生命周期的几个过程,我们就来说一说这几个过程。 1.启动Activity:系统会先调用onCreate方法,然后调用onStart方法,最后调用onResume,Activity进入运行状态。 2

How to work with infinity arguments in a function (like PHP's isset())

自作多情 提交于 2019-11-30 07:59:15
You know how PHP's isset() can accept multiple (no limit either) arguments? Like I can do: isset($var1,$var2,$var3,$var4,$var5,$var6,$var7,$var8,$var9,$var10,$var11); //etc etc How would I be able to do that in my own function? How would I be able to work with infinity arguments passed? How do they do it? func_get_args will do what you want: function infinite_parameters() { foreach (func_get_args() as $param) { echo "Param is $param" . PHP_EOL; } } You can also use func_get_arg to get a specific parameter (it's zero-indexed): function infinite_parameters() { echo func_get_arg(2); } But be