如何在Outlook 2019/Office 365中运行VBA脚本邮件规则 如果你公司的邮件系统是Microsoft Exchange Server + Outlook,能在Outlook中执行VBA邮件规则,自动化处理邮件,可以节省大把的时间。自Outlook 2016开始,运作VBA邮件规则需要费一番周折了,跟博主来看看如何做吧。
如何使用一个老旧的CentOS 5.8系统 找运维同事要一台32位Linux服务器,只有CentOS 5.8的镜像,使用这个老旧系统的第一个挑战就是要找到Yum源,否则安装软件是个难题。[root@demo yum.repos.d]# yum -y updateLoaded plugins: fastestmirrorLoading mirror speeds from cached hostfileYumRepo Er...
在Windows 10上安装TensorFlow及PyCharm开发环境 有时候在查看官方文档时,常常看到很多的分支,所以作为开发者我们都喜欢把最佳实践总结出来。下面一起来看看如何在Windows 10上安装一个TensorFlow和PyCharm开发环境。安装Anaconda 安装Anaconda以后,即可获得运行TensorFlow所需的Python运行环境。比起直接安装Python,Anaconda安装了丰富的工具,省去了不少麻烦。从http...
揭秘IBM架构设计方法论 —— Solution Design II 接上篇:揭秘IBM架构设计方法论 —— Solution Design I2. 设计解决方案2.1 开发架构概览 架构概览是解决方案要构建系统的高阶抽象,开发架构概览的主要目的是和项目的干系人沟通系统的主要结构和重要特征,因为不同的干系人的关注点有所差异,系统的架构概览也有不同的展现形式,但其描述的重点都是目标系统。 第一张示例展现的是企业视角,常用于和项目发起人的业务...
使用Cucumber和Spring实践行为驱动开发(BDD) BDD简介 TBD搭建并启动被测服务 本文使用了Spring Getting Started中的Rest Service,https://spring.io/guides/gs/rest-service/,读者可以自行尝试搭建并启动。启动成功以后,在浏览器中访问http://localhost:8080/greeting?name=User,收到响应{"id":1,"cont...
(图文)如何在Jenkins中配置CheckStyle 使用CheckStyle可以使团队开发的代码风格保持一致,是提升代码质量一个手段,本文将介绍如何在Jenkins中配置CheckStyle,以将相关的检查增加到持续集成流程中。在Jenkins中安装CheckStyle插件 Jenkins中CheckStyle插件的作用是图形化的展示CheckStyle输出的结果,可以在Jenkins > 系统管理 > 管理插件 ...
2017年软件架构设计师考试磁盘读取和处理时间计算题 这个题目中含有一个假设:磁盘是单向不停的转啊转,如果上面缓存去依次排列,“使用单缓冲区”,处理完一个缓冲区,下一个要处理的缓冲区已经转过去啦!还需要3*8=24ms转过8个缓冲区才能再次转到要处理的缓冲区。最长时间为(3+6)+(24+3+6)*9=306ms假设优化为处理为一个正好转到下一个要读的数据库,则最少处理时间为(3+6)*10=90...
CISC和RISC的区别 CISC(Complex Instruction Set Computers,复杂指令集计算集)和RISC(Reduced Instruction Set Computers)是两大类主流的CPU指令集类型,其中CISC以Intel,AMD的X86 CPU为代表,而RISC以ARM,IBM Power为代表。RISC的设计初衷针对CISC CPU复杂的弊端,选择一些可以在单个CPU周期完成...
Linux平台上的Java应用CPU问题定位——以WebSphere为例 Linux上使用命令top -H,即可看到使用CPU高的线程号,转换成16进制即可1. 获得最顶端输出并查找与之前启动了现占用 CPU 的 WAS 的那个用户 ID 相关联的 PID。2. 通过 kill -3 <PID> 对 WebSphere Application Server 进行若干 Thread Dump3. 将步骤 1 中的 PID 号转换为一个十六进制值。4. (用于 ...
IBM JDK生成Javacore的方法 根据IBM JDK的文档,有以下的方法可以选择生成Javacore:1. JVM执行异常时,自动生成Javacore1.1 发生了引起JVM停止运行的本地错误时,会自动产生Javacore文件1.2 JVM内存不足时,会自动产生Javacore文件2. 触发JVM生成JDK2.1 从命令行中发出kill -3 <pid>指令,生成Javacore2.2 在应用中调用com.ib...
如何使用Jenkins将War包发布到Tomcat 8.5 使用Jenkins可以有多种方法发布一个Tomcat应用,比如把war包放到tomcate的webapps目录下,或者把应用打入一个Docker镜像。本文介绍通过Tomcat manager来发布Tomcat应用。安装所需的Jenkins插件 安装Jenkins,选择常用的组件安装,然后启动以后。进入菜单系统管理->管理插件,在可选插件中选择并安装Deploy to c...
Oralce 11g客户端的配置 作为开发人员,在使用一些工具软件,如PL/SQL,TOAD for Oracle时,需要安装配置Oracle Client。如果你是个新手,不知从何下手配置Oracle Client,可参考以下的步骤:1. 使用Oracle Client安装程序,安装管理员或运行时类型2. 安装后启动Net Configuration Assitant 配置好了。重启工具,应当可以在服务列表中看到新...
中国太平保险集团私有云平台建设实践 何宁 青云QingCloud原文地址:https://mp.weixin.qq.com/s/1IUta4X59S1Wpw93UCvc1A 前言:本文为中国太平运营管理处副处长何宁在青云QingCloud 保险沙龙上的技术分享整理而来。文中,何宁详细分享了太平保险集团独特的信息化建设之路,以及实现太平云建设的历程和多年积累的云计算实践经验,非常值得从业者借鉴与学习。1 私有云是一个伪命题关于太...
揭秘IBM架构设计方法论 —— Solution Design I Solution Design概述 Solution Design是IBM历史上一个知名的方法论,其设计的初衷始于售前的解决方案设计,因其对庞大复杂的UMF框架做了精选,相对简单又不失完整,在项目实施过程中也广受架构师欢迎。前几年,随着用户体验的崛起,客户越来越注重体验,IBM开始大力推行Design Thinking作为解决方案设计方法论。但是架构师、开发工程师和运维工程师难以使用De...
Agile、CI、CD和DevOps的区别和联系 今天看到一张图,有一种豁然开朗的感觉,赶紧分享给大家。 可以看出,敏捷开发(Agile Development)、持续集成(Continuous Integration)、持续交付(Continuous Delivery)和开发运维一体化(DevOps),所覆盖的软件生命周期的阶段不同。参考资料1.https://mp.weixin.qq.com/s/wCFM6L...
Scrum精要(更新中…) 什么是Scrum? Scrum是一个用于管理复杂产品开发的流程框架,而并非一项构建产品的流程或技术,在敏捷开发方法流行起来后,Scrum成了最流行的敏捷开发流程框架。其它的敏捷开发流程框架还包括Kanban, Lean等。 Scrum的理念 Scrum是基于实证流程控制理论(Empirical process control theory)设计的。TBD 下...
一致性哈希算法(Consistent Hashing) 一致性哈希(Consistent Hashing)是在分布式缓存系统中的常用的一种算法。在一个大型的缓存系统中,缓存的内容通常都分布式的存储在多台缓存服务中的,如何更好的定位客户端所需的缓存?传统哈希算法 哈希是一种信息特征提取的方法,可以将长度的信息映射成固定长度的特征值,映射的过程也就是哈希算法。例如有3台缓存服务器时,可以使用对3取模作为哈希算法,按照哈希的结果0~2将缓存的请...
Zookeeper架构学习笔记 Zookeeper的需求目标 分布式应用需要组成员管理,主结点选举,元数据(配置信息)管理,分布式锁等协同服务,Zookeeper的目标是为分布式应用提供了实现这些协同服务的中心化工具。同时,Zookeeper的目标还包括:高性能 支持高吞吐、低延时,以用于大型的分布式系统 高可用 避免成为一个单点故障 Zookeeper的目标不包括大量的数据存储,在设计采用Zookeep...
MongDB高可用可扩展架构验证方案(附实战命令) 1. 验证目标验证MongoDB的高可用部署。高可用部署条件下,MongoDB和MySQL的性能对比。MongoDB可扩展架构的性能损耗。测试在可扩展架构下增加数据分区的影响。2. 环境定义2.1. MongoDB高可用环境 如图,MongoDB的最小高可用环境由三个节点构成一个复制集(Replica Set),三个节点可以是主、副节点和Arbiter节点。其中仅有主节点可写可读,副节点(...
NOVARICA业务和技术趋势报告:寿险公司业务架构地图 (译者注:NOVARICA 2018年4月发布了业务和技术趋势报告:个人寿险行业。https://novarica.com/business-technology-trends-individual-life-insurance/,其中的保险核心系统地图可以让我们一窥人寿保险公司IT系统的架构全貌) 个人寿险公司为了在竞争性市场中寻求差异性,正在投资于分析、核心系统和服务相关的技术。...
使用Rocket.Chat搭建属于自己的Slack服务和Hubot聊天机器人 如果你在企业的层层Firewall之后连接Slack之后,可以考虑为团队搭建一个Rocket.Chat服务,实现类似Slack的团队聊天功能。本文使用的方法适合于快速试用一下Rocket.Chat服务,如果是用于正式环境,还请参考官方文档。安装并启动Rocket.Chat服务器 可以使用Docker Compose在本地安装一个Rocket.Chat服务,在目录中新建一个docker...
使用swagger2markup和asciidoctor生成美观的Restful API文档 目前,大家通常都是用Swagger来编写Rest API文档,使用Swagger注解和Springfox,可以方便的从源代码生成文档,保持文档和源码一致。使用Swagger-ui工具,接口的消费方可以查看接口定义并从浏览器直接调用接口。...
智能(语音)对话系统架构研究 本文所谈及的架构主要指使用已有的智能对话服务来搭建一个应用系统,而不会深入的探讨智能对话服务内部的架构。智能对话系统的需求目标 智能对话系统可以提供回答问题的能力,即在理解自然语言的基础上,解答用户提出的问题。进一步的,可以提供基于任务的对话能力,及判断用户的意图,通过多轮对话收集必要的信息,完成订票,查找音乐等服务。智能对话系统的架构概览 上图是阿里云智能对话平台文档中的智能...
MongoDB架构学习笔记 MongoDB的需求目标 MongoDB是一款知名的NoSQL数据库,其设计哲学是结合关系型数据库的核心能力和NoSQL的关键技术。 上图的左侧即MongoDB目标实现的关系型数据库的关键能力:善于表达的查询语言:用户应能够使用丰富的方法访问和操作数据,以支持联机应用和分析应用。辅助索引:索引是高效访问数据的关键,数据库系统应提供对索引的原生支持。强一致性:应用应当立即读到提交到数据库...
分布式系统的CAP原理及其应用 什么是分布式系统的CAP原理 在分布式系统中,一致性(C)指每一次读都得到最近的写数据,或者一个异常;可用性(A)指每一个请求都得到一个非异常的响应,而不保证取得最近的写数据;分区容错性(P)是指结点间网络异常时,系统仍然可以继续运行。原理指出,一个分布式系统最多只能提供CAP中的两个保障。 值得注意的是,CAP原理指的是在分区发生时,只能在保证一致性或可用性中二选其一。而非因为分区不...
Spring Cloud架构学习笔记 Spring Cloud的需求目标 微服务架构风格本质上是分布式系统,为了迎合这一潮流,Spring Cloud提供了一些分布式系统常用的开发工具(或模式),使开发者可以方便的把这些模式应用于自己的微服务系统。Spring Cloud提供支持的微服务的模式包括:开发模式:配置管理;异步消息路由模式:服务注册发现;服务路由客户端弹性模式:客户端负载均衡;断路器(Circuit breaker)...
Python中的列表推导(List Comprehension) 列表推导(List Comprehension)是在一些编程语言中存在的一种语法,目的是从一个存在的列表创建另一个列表。最便于理解这种语法的方法是来看看它的来源——集合的构建式表示法。请看以下的集合表达式:其中的N是自然数集合,则集合S是由平方大于3的自然数乘以2组成的,这其中N是已存在的集合,x平方大于3是过滤条件,而2乘以x是产生新元素的表达式。下面来看一下Python中列表推导的语法...
K8s(Kubernetes)架构学习笔记 K8s满足的需求 K8s的主要职责是容器编排(Container Orchestration),即在一组服务器上启动、监控、回收容器,在满足排程的同时,保证容器可以健康的运行。K8s架构的概念/术语 学习K8s架构之前,需要了解一些K8s特有的概念:Cluster 集群 K8s可利用的主机、存储和网络资源的集合。Node 结点 单台主机,可以是物理的或虚拟的计算机。结点分为主结点(ma...
持续交付学习笔记 1. CD介绍1.1 要点什么是CD? 以一种可承受的方式,安全、快速地落实变更的能力 为什么要CD? 无痛release,降低风险;加速进入市场;提高软件质量和稳定性;减少软件开发的成本;让客户和员工开心;快速获得反馈 许多Agile项目的问题,在原来的water fall中增加了scrum: (PMO+finance)研究+批准->设计+计划; (‘Agile’ team迭代)分析、开发...
云计算基础——IBM云计算应用架构和开发训练营 什么是云计算5特征:随需应变的自服务;无所不在的网络存取;区域独立的资源池;快速的弹性;灵活的价格模型 IaasIaas(Networking+Storage+Servers+Virtualization)平台提供全功能的虚拟计算机,用户可以按需安装软件。例如OpenStack。IBM offerings: Softlayer; IBM Cloud Orchestrator; PureApplic...
微服务的集成架构设计 微服务集成框架的模式 微服务已经在架构界流行起来了,但在实践中,难免需要利用其它软件厂商系统的能力,同时也没有办法一步到位把企业内的所有系统都改造成微服务架构的系统,所以系统集成仍然是 一个非常重要的问题。在笔者项目的早期阶段,集成是由微服务系统的组件直接对接其它系统处理的,这种方式点对点的集成方式造成了系统和被集成系统的强耦合,影响了微服务系统的进一步发展。 在接手集成框架的设计工作...
使用GPU加速TensorFlow机器学习 在Thinkpad X260上运行一个CNN图像分类的样例程序时,发现速度特别慢,迭代一轮要将近5分钟,那么迭代200轮需要1000分钟,16个小时!在看到TensorFlow相关的书籍时,总是提到GPU加速,对于这样的问题,应该能派上用场吧。TensorFlow目前只支持NVIDIA显卡,笔者手头没有,阿里云上有GPU计算型ECS,便“按量付费”买了一台,开始了一场“坎坷小贵”的验证之旅...
产生式规则和Rete算法解析 Rete可以发音为REH-te或者RAY-tay,在拉丁语中有“网络”的含义,Rete算法是Charles Forgy博士1974年发明的一个算法。后来成为了产生式规则系统(Production Rule System)的大脑。Drools就是基于产生式规则系统演化而来的。产生式规则 产生式规则是一种常用的知识表示方法,它以"IF-THEN"的形式表现了因果关系。这种形式的规则反映了...
JBoss Drools如何动态加载并更新规则? JBoss Drools中提供了一个类KieScanner,可以支持从Maven存储库动态的加载并更新规则。官方给出的例子没有很好的证明这一能力,笔者经过几天研究,成功实验出了如何达到动态更新的效果,整理出来供大家参考。相关的源代码可以从Gitee下载。程序结构和运行目标如图所示,演示项目共包含四个项目:my-dynamic-rule: 父项目my-kjar: 一个kjar项目,其中包含了kmod...
如何在Minikube中运行gRPC服务 如何在Minikube中运行gRPC服务本文通过一个具体的例子介绍了如何在Minikube中运行gRPC服务。 本文使用了Ubuntu 16.04.3 LTS操作系统。0.1 安装并配置Docker、Minikube和kubectl。注意:Minicube的安装和运行需要连接Google的网站wget -qO- https://get.docker.com | shcurl -Lo miniku...
如何在CentOS 6上安装Python 2.7 + Ansible 笔者今天想在阿里云的CentOS 6.8镜像上安装Ansible,因系统自带的是Python 2.6而安装失败,又折腾了半天安装Python 2.7,文章介绍了安装的过程。
如何从Spring RedisTemplate中获得Jedis实例 本文的方案是从RedisConnectionFactory中取得Redis连接(JedisConnection实现类),然后使用反射的方法从中取得Jedis实例,即可直接执行其中的方法
互联网应用的十大架构规则 互联网应用的十大架构规则最近读了陈斌翻译的《架构真经-互联网技术架构的设计原则》,原著是Martin l. Abbott和Michael T. Fisher合著的Scalablity Rules: Principles for Scaling Web Sites, Second Edition。精选其中的十个架构规则分类列出,供大家在做互联网应用时参考。
使用Spring Cloud Config搭建配置中心 笔者的微服务项目中需要使用一个统一的管理分布式系统的配置中心,之前试用过Disconf。同时笔者也在留意是否有其它的可选方案。最近接触到Spring Cloud Config,认为也是一个搭建配置中心不错的选择,在此和大家分享一下试用的经验,供大家参考。
制作WebSphere MQ Docker镜像 前几天已经把WebSphere MQ 7.5安装在CentOS 7上了,今天经理又要求在另外一个云的另一台服务器上准备一个新环境,看起来安装MQ的需求还是很旺盛的。因此笔者决定制作一个Docker镜像,以加速MQ的准备MQ软件的安装1) 在一台Linux服务器上安装Docker2) 上传WS_MQ_LINUX_ON_X86_64_7.5.0.2_IMG.tar.gz;解压3) 在解
在CentOS 7上快速安装配置WebSphere MQ 7.5快速指南 最近要在CentOS 7上WebSphere MQ 7.5,惊叹于IBM文档的浩繁(也许是笔者没找对地方),在这里安装配置的步骤整理成一篇小文,供像笔者一样的小白参考。安装MQ产品1) 上传并解压MQ安装介质,如WS_MQ_LINUX_ON_X86_64_7.5.0.2_IMG.tar.gz2) 使用root账号3) 在解压后的目录中执行 ./mqlicense.sh -text_
使用Docker快速打包和部署运行Disconf Docker-DisconfDocker-Disconf是本人学习Docker后,尝试使用Docker解决Disconf打包和运行问题的作品。Disconf是分布式配置管理平台(Distributed Configuration Management Platform)的简称,使用该平台提供的Web界面,可以统一管理多个应用,多个环境的所有配置。Disconf是一个GitHub上的开源项目,在