shell的dirname $0和readlink用法

shell的dirname $0和readlink用法

閱讀本文約花費: 1 (分鐘) 获取当前脚本路径 path.sh #!/bin/bash path=$(cd `dirname $0`;pwd) echo $path path2=$(dirname $0) echo $path2 当前脚本存在路径:/home/software sh path.sh /home/software . 解释: dirname $0 只是获取的当前脚本的相对路径. cd `dirname $0`;pwd 先cd到当前路径然后pwd,打印成绝对路径 方法二: path.sh #!/bin/bash path=$(dirname $0) path2=$(readlink -f $path) echo path2 sh path.sh /home/software 解释: readlink -f $path 如果$path没有链接,就显示自己本身的绝对路径 readlink readlink是linux用来找出符号链接所指向的位置 例1: readlink -f /usr/bin/awk 结果: /usr/bin/gawk #因为/usr/bin/awk是一个软连接,指向gawk 例2: readlink -f /home/software/log /home/software/log #如果没有链接,就显示自己本身的绝对路径 获取路径的比较 path.sh…

Read More Read More

9种设计模式在Spring中的运用

9种设计模式在Spring中的运用

閱讀本文約花費: 19 (分鐘) 9种设计模式在Spring中的运用,一定要非常熟练! Spring中涉及的设计模式总结 1.简单工厂(非23种设计模式中的一种) 实现方式: BeanFactory。Spring中的BeanFactory就是简单工厂模式的体现,根据传入一个唯一的标识来获得Bean对象,但是否是在传入参数后创建还是传入参数前创建这个要根据具体情况来定。 实质: 由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类。 实现原理: bean容器的启动阶段: 读取bean的xml配置文件,将bean元素分别转换成一个BeanDefinition对象。然后通过BeanDefinitionRegistry将这些bean注册到beanFactory中,保存在它的一个ConcurrentHashMap中。将BeanDefinition注册到了beanFactory之后,在这里Spring为我们提供了一个扩展的切口,允许我们通过实现接口BeanFactoryPostProcessor 在此处来插入我们定义的代码。典型的例子就是:PropertyPlaceholderConfigurer,我们一般在配置数据库的dataSource时使用到的占位符的值,就是它注入进去的。 容器中bean的实例化阶段:实例化阶段主要是通过反射或者CGLIB对bean进行实例化,在这个阶段Spring…

Read More Read More

10分钟带你逆袭Kafka!

10分钟带你逆袭Kafka!

閱讀本文約花費: 56 (分鐘) Apache Kafka 是一个快速、可扩展的、高吞吐的、可容错的分布式“发布-订阅”消息系统, 使用 Scala 与 Java 语言编写,能够将消息从一个端点传递到另一个端点。较之传统的消息中间件(例如 ActiveMQ、RabbitMQ),Kafka 具有高吞吐量、内置分区、支持消息副本和高容错的特性,非常适合大规模消息处理应用程序。 从未如此简单:10分钟带你逆袭Kafka! Kafka 官网: http://kafka.apache.org/ Kafka 主要设计目标如下: 以时间复杂度为 O(1) 的方式提供消息持久化能力,即使对 TB 级以上数据也能保证常数时间的访问性能。高吞吐率。即使在非常廉价的商用机器上也能做到单机支持每秒 100K 条消息的传输。支持 Kafka Server 间的消息分区,及分布式消费,同时保证每个 Partition 内的消息顺序传输。同时支持离线数据处理和实时数据处理。支持在线水平扩展。 Kafka 通常用于两大类应用程序: 建立实时流数据管道,以可靠地在系统或应用程序之间获取数据。构建实时流应用程序,以转换或响应数据流。 要了解 Kafka 如何执行这些操作,让我们从头开始深入研究 Kafka 的功能。首先几个概念: Kafka 在一个或多个可以跨越多个数据中心的服务器上作为集群运行。Kafka 集群将记…

Read More Read More

围观CTO的工作

围观CTO的工作

閱讀本文約花費: 6 (分鐘) via: https://www.quora.com/What-does-a-CTO-do 偶然读到维基百科上关于CTO的定义,和我以前理解的不太一样,再到Quora上找到一些讨论,惊喜的发现原来我现在所做的和CTO的工作有很高的重合性。Amr Awadallah总结的很详尽,也具有很强的操作性,摘译出来分享给大家。 [1] CTO的使命 (1)对长期技术策略负责 必须持续有效地思考、制定、宣传公司的技术策略方向。要确保公司在高度竞争、动态变化的环境中持续的提供最佳技术方案。是公司对内对外技术沟通的桥梁,要保证技术策略和商业策略的协同。 (2)技术布道者 激发员工对公司愿景的认同,说服外界对公司愿景的认同,以及公司是实现该愿景的最佳选择。是研发团队内关于市场需求的权威,是客户最可信赖的技术顾问,能够对不同层次的听众有效阐述技术的商业价值和投资回报率。 (3)研发团队的精神领袖和研发文化建设者 引领整个研发团队为公司长期技术策略和目标而团结努力。能够识别和吸引优秀人才的加入。帮助建立和维护良好的研发氛围。 [2] 如何评估CTO的业绩 (1)是否错失关键技术趋势?所制定的技术策略是否和商业策略一致?(2)研发氛围(3)其他关键业务部门的满意度 [3] CTO应该如何平衡内外部事务的时间分配 答案是具体情况具体分析(废话),原则是两者兼顾。CTO如果缺乏…

Read More Read More

kafka平台架构

kafka平台架构

閱讀本文約花費: 1 (分鐘) Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据。 Kafka基本架构介绍 kafka架构原理 [图文]消息队列 [图文]kafka-0.10 知识点总结 [图文]消息中间件Kafka资料 图文:Kafka架构设计与实施 kafka中文文档 kafka介绍与概念 – 图文 [图文]Kafka介绍 Kafka安装配置及使用说明 kafka架构与原理 Kafka的架构原理,你真的理解吗? 课程: Kafka原理与实践 课程:Kafka 原理剖析及实战演练 

windows常用命令行命令

windows常用命令行命令

閱讀本文約花費: 42 (分鐘) 打开”运行”对话框(Win+R),输入cmd,打开控制台命令窗口… 也可以通过cmd /c 命令 和 cmd /k 命令的方式来直接运行命令 注:/c表示执行完命令后关闭cmd窗口;/k表示执行完命令后保留cmd窗口 # 控制台命令窗口中一些技巧 复制内容:右键弹出快捷菜单,选择“标记(K)”,然后选中所需复制的内容,然后右键即可 粘贴内容:右键弹出快捷菜单,选择“粘贴(P)” 在文件夹空白处按住Shift,然后右键弹出快捷菜单,可以看到“在此处打开命令行窗口” 使用上下方向键,翻看使用过的命令 tab补齐功能 命令参数的路径:要使用反斜杠’\’,不要使用正斜杠’/’   如:del d:\test2\file\my.txt 命令参数的路径:若存在空格,应使用双引号将路径引起来  如:del “d:\program files\file\my.txt” 文件及目录名中不能包含下列任何字符:\ / : * ? ” < > | rem  // 在批处理文件中添加注解,其后的命令不会被执行,但会回显 ::  // ::也可以起…

Read More Read More

效率提升工具集合part01

效率提升工具集合part01

閱讀本文約花費: 8 (分鐘) 开发工具简述BeyondCompareBeyond Compare是一套由Scooter Software推出的文件比较工具。主要用途是对比两个文件夹或者文件,并将差异以颜色标示。比较范围包括目录,文档内容等。AxureAxure RP是美国Axure Software Solution公司旗舰产品,是一个专业的快速原型设计工具,让负责定义需求和规格、设计功能和界面的专家能够快速创建应用软件或Web网站的线框图、流程图、原型和规格说明文档。作为专业的原型设计工具,它能快速、高效的创建原型,同时支持多人协作设计和版本控制管理  。TypeAndRunTypeAndRun (TAR) 是一个可以用热键呼出的控制台,从这个控制台上你可以运行任何程序、打开各类文档、URL、电子邮件和文件目录.除了可以方便的为自己的常用程序建立别名,TypeAndRun 也内置了大量”系统别名”用自定义的快捷键调出命令行后,输入别名即可可以执行相应操作.而且TypeAndRun 可以为已经建立的别名自动补全,无需记住全部名称.也不用像一些快捷键工具一样要记住那么多快捷键.JMeterApache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域。 它…

Read More Read More

如何保证Kafka不丢失消息

如何保证Kafka不丢失消息

閱讀本文約花費: 6 (分鐘) 生产者丢失消息的情况 生产者(Producer) 调用send方法发送消息之后,消息可能因为网络问题并没有发送过去。 所以,我们不能默认在调用send方法发送消息之后消息消息发送成功了。为了确定消息是发送成功,我们要判断消息发送的结果。但是要注意的是  Kafka 生产者(Producer) 使用  send 方法发送消息实际上是异步的操作,我们可以通过 get()方法获取调用结果,但是这样也让它变为了同步操作,示例代码如下: SendResult<String, Object> sendResult = kafkaTemplate.send(topic, o).get();if (sendResult.getRecordMetadata() != null) { logger.info(“生产者成功发送消息到” + sendResult.getProducerRecord().topic() + “-> ” + sendRe sult.getProducerRecord().value().toString());} 但是一般不推荐这么做!可以采用为其添加回调函数的形式,示例代码如下: ListenableFuture<SendResult<String, Object>> futu…

Read More Read More

PLSQL Developer常用设置及快捷键

PLSQL Developer常用设置及快捷键

閱讀本文約花費: 7 (分鐘) 1、登录后默认自动选中My Objects (已验证可用)    默认情况下,PLSQL Developer登录后,Brower里会选择All objects,如果你登录的用户是dba,要展开tables目录,正常情况都需要Wait几秒钟,而选择My Objects后响应速率则是以毫秒计算的。 设置方法:Tools菜单 –> Brower Filters,会打开Brower Folders的定单窗口,把“My Objects”设为默认即可。Tools菜单--Brower Folders,中把你经常点的几个目录(比如:Tables Views Seq Functions Procedures)移得靠上一点,并加上颜色区分,这样你的平均寻表时间会大大缩短,试试看。 2、记住密码        这是个有争议的功能,因为记住密码会给带来数据安全的问题。 但假如是开发用的库,密码甚至可以和用户名相同,每次输入密码实在没什么意义,可以考虑让PLSQL Developer记住密码。 设置方法:菜单Tools –> Preferences –> Oracle –> Logon History –…

Read More Read More

张朝阳与马云的颠倒人生

张朝阳与马云的颠倒人生

閱讀本文約花費: 23 (分鐘) 张朝阳再一次通过特殊的方式站在公众面前。   在搜狐最新财报发出后,张朝阳通过视频直播召开了财报说明会。但这次因为疫情没能召开媒体见面会,但大家所关心的问题老张也均一一回答了。   根据搜狐2019年第四季度财报显示,搜狐集团第四季度搜狐营收4.90亿美元,同比增长5%;全年总收入为18.5亿美元,同比增长2%。   非美国通用会计准则下,第四季度剔除与公司核心业务无关的投资减值影响后,归于搜狐公司净利润为700万美元,实现转亏为盈;搜狐集团全年亏损从2018年的2.07亿美元减少到9300万美元,减亏55%。   张朝阳说,搜狐从2018年Q4 7500万美元的亏损减到2019 Q4 的4600万美元,第四季度一个季度减少了接近3000万美元的亏损;2018年全年集团层面不算两个分公司,媒体、视频实际上也是亏损的,亏损了3.26亿美元。   另外,2019年不止第四季度减亏,第一、二、三、四季度共减亏2.46亿美元,比3.26亿美元减了8000万美元。正是因为集团层面大幅减亏,加上畅游、搜狗还算不错的贡献,实现了700万盈利。   2018年10月18日,美团创始人王兴还在自己的社交账号上感叹“天哪,好久没关注,搜狐的市值竟然跌到6.8亿美元了”,如今17个月过去了,搜狐的市值又比王兴感叹时跌去了50%之多,已呈腰斩之势。   搜狐的市值已经不如…

Read More Read More