在线预览pdf项目 官方文档 搭建教程 在线pdf预览 --- 这个人的博客可以看看,有没有推荐其他好用的小工具的
源码地址 https://gitee.com/kekingcn/file-online-preview
docker搭建 docker run -p 8012:8012 --name kkfileview \ -d keking/kkfileview 其它的,一些在线pdf https://view.officeapps.live.com/op/view.aspx?src=http://blog.java1234.com/cizhi20211008.docx
You have recently been introduced to a new client, Mike, who has GBP £1,000,000 in a savings account. Following the client profiling stage and based on the client’s investment objectives and risk profile, you have decided to invest 20% of the portfolio into high yield bonds. Discuss the subsequent decisions you need to make with respect to that allocation and the alternative investment vehicles for the implementation of this decision. (Word Limit 500 words) (25 marks)
Andrew, 61 years old, and Clare, 59 years old, are a married couple. They have no children and their parents have died. Both are considering retirement and they want to have a chat with their financial adviser on their retirement options. Both have a High Attitude to Risk, and they have High Capacity for Loss. Clare has a Defined Contribution pension plan from her work that is currently worth £1.25mm (she has been able to access this pension from the age of 55).
云原生的概念最近非常火爆,企业落地云原生的愿望也越发强烈。看过很多关于云原生的文章,要么云山雾罩,要么曲高和寡。 所以笔者就有了写《大话云原生》系列文章的想法,期望用最通俗、简单的语言说明白云原生生态系统内的组成及应用关系。那么,开始吧,这是第一篇!
这真的是一篇讲架构技术的文章,不是小说!建议您看下去!
一、周末煮饺子聊到容器问题 周末和老婆一起包了顿饺子,“老公,我去买瓶醋,你把饺子先煮一下吧”。我笨手笨脚准备半天,还没煮完,老婆就回来了。我看着这一锅饺子问道:“老婆,你说这 饭店是怎么煮饺子的啊? 每个人口味不一样,饭量也都不一样啊,想想都头疼!”
小娜同学一边用手比划一边说:“饭店当然不能像家里这么煮饺子啊,他们有一种特制的锅,就是那个、那个样子的”。 我感觉自己娶了一个傻女人,“到底是哪个样子的?用手能比划出来啊?你是不是爱情公寓看多了?”。老婆听到我的抱怨,拿起手机搜索了一下:“诺,就是这个样子的,你个白痴!”
“饭店就是用这种锅煮饺子的,水是一锅水,炉是一个炉,分成多个容器,每个容器里面放入一个客人点的饺子就可以啦。”作为生活小能手的小娜同学知道的可真多。 “哎我去,这不就是一个服务器启动了多个docker容器么?”同样作为程序员的小娜赞到:“老公,你说的还真对哈,我最近可是刚看了docker呢,但我还不太会用!”。
二、说说docker与煮饺子的容器 你一个前端学什么docker。小娜不服气了,哎,你别瞧不起人,我还知道k8s呢。这可让我有点意外,正当我意外之时,老婆一句话差点让我喷出来:那k8s到底是个什么东西啊?,我们商量好饭后她刷碗,我给她说说docker与k8。
不一会就开始了饭后辅导: 饭店煮饺子本身就是一种服务(应用服务),煮饺子的锅就像一个服务器,锅里的每一个网状笼就像一个docker容器,通常情况下一个网状笼只煮一种饺子,就像一个docker容器通常只提供一个服务(微服务)。同一个服务器上的docker容器之间能够进行必要的隔离,避免资源冲突(不同馅的饺子煮混)。又能充分的共享服务器资源(那一锅水和供电),达到资源的合理利用,避免浪费。
小娜微笑点点头表示明白了,”那饭店规模变大,客人越来越多,就得买更多的大锅(服务器)啊?
那是当然喽,你看哈,当服务器越来越多的时候就组成了集群。docker容器还有一个好处就是它的标准化,标准化在这里就代表了部署灵活性。假如一号锅突然断电了,煮饺子的师傅就可以把煮饺子的容器拔出来插入二号锅,因为容器的标准是一样的。就像docker容器可以灵活快速的启动,在不同的服务器上启动提供服务。
小娜同学再次的点了点头,向我投来仰慕的眼光。趁热打铁,我总结道:”docker容器有效的实现了服务的环境封装的标准化,以及同服务器容器之间的环境隔离,资源共享“。
三、聊聊集群煮饺子(k8s) 小娜同学对于接下来的内容已经迫不及待了,docker我懂了,快说说k8s。我故弄玄虚的说到,你看哈,现在这个饭店的集群容器煮饺子的模式还需要解决哪些问题?我们俩讨论了一下,总结了下面这几条:
饭店的客流量不总是满的,大锅的个数肯定是按照最大需求买的,但是肯定有部分的时间大锅是闲置的。 客流量肯定是有一定的规律的吧?比如周末比工作日客流量大,下班后比上班时间客流量大。 假如突然来了一个旅游团进来用餐,谁来做应急管理?快速的给大锅插电?烧水?满足用餐需求? 如果为了避免煮出来的饺子味道混淆,是不是素馅类不同容器的放到一个大锅里面煮?肉馅的放在一起煮、海鲜馅的放在一起煮会好一些? 是不是得有人定期的对“大锅”和大锅里面的容器进行卫生检查、运行状态(健康检查)? 是不是得有一个人清楚的知道,素馅的一两饺子是唐僧的,肉馅的四两饺子是猪八戒的? 其实还有很多需要注意的问题,所有的这些都可以归纳为:任务分配或者是服务编排,或者是容器的编排问题。k8s的主要作用就是用来解决类似这样的一些问题:
根据访问量大小快速的对容器数量进行扩容、缩容。 遵循一定的预定计划来执行容器编排工作、应急管理工作、健康检查工作 合理的编排容器,有些容器放在CPU密集型的服务器上,有些容器放在内存密集型容器上。毕竟有的容器运行的是计算型微服务,有的容器运行的是耗内存的微服务。合理的编排能够达到资源的最大利用率。 以上等等这些进行容器管理、编排的问题,都需要k8s来管理支撑,而且是自动化支撑。 说到这里,小娜同学若有所思,“我听是听明白了,但是感觉这东西好庞大、好复杂啊。开发一个应用放在一起部署不好么?为什么搞这么复杂?”
还别说,小娜同学还真问道点子上了。但这也不能一次全都讲完啊,否则明天的碗谁来刷?
欢迎关注我的博客,更多精品知识合集 本文转载注明出处(必须带连接,不能只转文字):字母哥博客 - zimug.com
My binary search solution:
class Solution { public int[] searchRange(int[] nums, int target) { if(nums==null || nums.length==0) return new int[]{-1,-1}; int l =0, r = nums.length-1; while(l+1<r){ int mid = (l+r)/2; if(nums[mid]>=target) r=mid; else l=mid; } int start = -1; if(nums[l]==target) start=l; else if(nums[r]==target) start=r; if(start!=-1){ int end = start; for(int i=start+1;i<nums.length;i++){ if(nums[i]==target) end++; } return new int[]{start, end}; } else return new int[]{-1,-1}; } }
html代码
<div> <form role=form method=post enctype=multipart/form-data th:action=@{/upload}> <div> <label>File input</label> <input type=file id=exampleInputFile name=file_upload> </div> <div> <label>Batch File input</label> <input type=file id=batchInputFile name=files_upload multiple> </div> <button type=submit class=btn btn-primary>Submit</button> </form> </div> Controller代码
@PostMapping(/upload) public String fileUpload(@RequestParam String email, @RequestParam String password, @RequestPart MultipartFile file_upload,@RequestPart MultipartFile[] files_upload) throws IOException { if (!file_upload.isEmpty()) { String originalFilename = file_upload.getOriginalFilename(); // UUID随机生成新文件名 String newFileName = UUID.randomUUID().toString().replaceAll(-, ) + originalFilename.substring(originalFilename.lastIndexOf(.)); file_upload.transferTo(new File(D:\\ + newFileName)); } if (files_upload.
错误
C:\Users\86157\Documents>pip install requestsLooking in indexes: https://pypi.tuna.tsinghua.edu.cn/simpleWARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ProtocolError('Connection aborted.', FileNotFoundError(2, 'No such file or directory'))': /simple/requests/WARNING: Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ProtocolError('Connection aborted.', FileNotFoundError(2, 'No such file or directory'))': /simple/requests/WARNING: Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ProtocolError('Connection aborted.', FileNotFoundError(2, 'No such file or directory'))': /simple/requests/WARNING: Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ProtocolError('Connection aborted.
文档:DOM中的“D” 摘抄 当创建了一个网页并把它加载到Web浏览器中时,DOM就在幕后悄然而生。它把你编写的网页文档转换为一个文档对象。
在人类语言中,“对象”这个词的含义往往不那么明确,它几乎可以用来称呼任何一种东西。但在程序设计语言中,“对象”这个词的含义非常明确。
评论 划重点,DOM将我们编写的网页文档转换为一个文档对象。也就是没有太阳怎么会有阳光呢?没有太阳怎么会有发射阳光的动作呢?
对象:DOM中的“O” 摘抄 你应该还记得,“对象”是一种自足的数据集合。与某个特定对象相关联的变量被称为这个对象的属性;只能通过某个特定对象去调用的函数被称为这个对象的方法。
评论 文档对象应该有它自己的属性和方法。对象可以由多种基本数据类型组合起来。比如,黄子涵是一个对象,那么黄子涵的年龄、身高等等是这个对象的属性,通过黄子涵这个对象所产生的动作也就是调用函数,比如,黄子涵唱歌、黄子涵做饭等等,也就是这个对象的方法。
对象的分类 摘抄 JavaScript语言里的对象可以分为三种类型。
用户定义对象(user-defined object):由程序员自行创建的对象。 内建对象(native object):内建在JavaScript语言里的对象,如Array、Math 和Date等。 宿主对象(host object):由浏览器提供的对象。 即使是在JavaScript的最初版本里,对编写脚本来说非常重要的一些宿主对象就已经可用了,它们当中最基础的对象是window对象。 评论 了解一下JavaScript中的三种对象类型。其实,宿主对象应该是JavaScript语言独有的,像其他两种的那样有类似的情况,用户自定义的函数和C语言自带的库函数。
BOM 摘抄 window对象对应着浏览器窗口本身,这个对象的属性和方法通常统称为BOM(浏览器对象模型),但我觉得称为Window Object Model(窗口对象模型)更为贴切。BOM提供了window.open和window.blur等方法,这些方法某种程度上要为到处被滥用的各种弹出窗口和下拉菜单负责。难怪JavaScript会有一个不好的名声!
值得庆幸的是,我们不需要与BOM打太多的交道,而是把注意力集中在浏览器窗口内的网页内容上。document对象的主要功能就是处理网页内容。
评论 血压一下子上来,原来浏览器的弹窗都是这个通过这个对象搞出来的,“是兄弟就来砍我!”,以前真的是,这种弹窗真的是烦死人。
模型:DOM中的“M” 摘抄 DOM中的“M”代表着“Model”(模型),但说它代表着“Map”(地图)也未尝不可。模型也好,地图也罢,它们的含义都是某种事物的表现形式。就像一个模型火车代表着一列真正的火车、一张城市街道图代表着一个实际存在的城市那样,DOM代表着加载到浏览器窗口的当前网页。浏览器提供了网页的地图(或者说模型),而我们可以通过JavaScript去读取这张地图。
既然是地图,就必须有诸如方向、等高线和比例尺之类的图例。要想看懂和使用地图,就必须知道这些图例的含义和用途,这个道理同样适用于DOM。要想从DOM获得信息,必须先把各种表示和描述文档的“图例”弄明白。
DOM把一份文档表示为一棵树(这里所说的“树”是数学意义上的概念),这是我们理解和运用这一模型的关键。更具体地说,DOM把文档表示为一棵家谱树。
家谱树本身又是一种模型。家谱树的典型用法是表示一个人类家族的谱系,并使用parent(父)、child(子)、sibling(兄弟)等记号来表明家族成员之间的关系。家谱树可以把一些相当复杂的关系简明地表示出来:一位特定的家族成员既是某些成员的父辈,又是另一位成员的子辈,同时还是另一位成员的兄弟。
家谱树模型非常适合用来表示一份用(X)HTML语言编写出来的文档。
评论 其实说的和数据结构中的树没啥区别,就拿上面的蜘蛛图片也可以看做中心点为根节点的树。想象一下,按照上面的说法,JavaScript就像这只蜘蛛,我们可以通过这只蜘蛛寻找在蜘蛛网上的猎物。
元素节点、属性节点、文本节点之间的关系 摘抄 评论 元素节点包含着属性节点和文本节点,一个元素节点可以构成一棵树,但是一个元素节点也可以包含其他元素节点,类似于数据结构中的树的概念。
继承 摘抄 类似于DOM,CSS也把文档的内容视为一棵节点树。节点树上的各个元素将继承其父元素的样式属性。
软件开发基本流程:需求分析(需求调研)、总体设计(概要设计)、详细设计、代码编写、系统测试
总体设计 需求分析可分为功能性需求和非功能性需求。非功能性需求包括性能需求、可靠性需求、兼容性需求、易用性需求、可维护性需求、环境需求等。 总体设计部分包括功能框图、软件架构、数据库设计等。
解决方法一:
进入docker容器
$ docker exec -it 容器ID 或 name bash 输入
date 会显示时间
设置时区
$ cp /usr/share/zoneinfo/PRC /etc/localtime 退出
exit 重启容器
docker restart 容器ID 或 name 解决方法二:
// 方法一:使用命令(优点:不需要重启MySQL服务,缺点:一旦MySQL服务被重启,设置就会消失) mysql> set time_zone = '+8:00'; mysql> set global time_zone = '+8:00'; // 方法二:修改my.ini配置文件(优点:永久保存设置,缺点:需重启MySQL服务) [mysqld] // 设置默认时区 default-time_zone='+8:00'