开源组件:
1、drools:一个业务逻辑集成平台(BLip)。它是用Java编写。它是由JBoss和红帽公司扩展支持,并实现Rete模式匹配算法的一个开源项目。
通俗地说,Drools是一种工具,使我们能够分离内部业务流程,找到逻辑和数据的集合。我们需要注意的两个重要关键词是逻辑和数据。
Drools的被分成两个主要部分:编写和运行系统。
制作:制作过程涉及创建规则文件(.DRL文件)。
运行时:它涉及到创建工作存储器和处理活化。
2、docker:是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
工作流:指“业务过程的部分或整体在计算机应用环境下的自动化”。是对工作流程及其各操作步骤之间业务规则的抽象、概括描述。在计算机中,工作流属于计算机支持的协同工作(CSCW)的一部分。后者是普遍地研究一个群体如何在计算机的帮助下实现协同工作的。
工作流主要解决的主要问题是:为了实现某个业务目标,利用计算机在多个参与者之间按某种预定规则自动传递文档、信息或者任务。
3、elk:是三个开源软件的缩写,分别为:Elasticsearch , Logstash, Kibana , 它们都是开源软件。新增了一个FileBeat,它是一个轻量级的日志收集处理工具(Agent),Filebeat占用资源少,适合于在各个服务器上搜集日志后传输给Logstash,官方也推荐此工具。
Elasticsearch是个开源分布式搜索引擎,提供搜集、分析、存储数据三大功能。它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。
Logstash 主要是用来日志的搜集、分析、过滤日志的工具,支持大量的数据获取方式。一般工作方式为c/s架构,client端安装在需要收集日志的主机上,server端负责将收到的各节点日志进行过滤、修改等操作在一并发往elasticsearch上去。
Kibana 也是一个开源和免费的工具,Kibana可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助汇总、分析和搜索重要数据日志。
4、lvs/nginx:lvs:是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统。
nginx:是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。
5、容器资源调度(Kubernetes):简称K8s,是用8代替8个字符“ubernete”而成的缩写。是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效(powerful),Kubernetes提供了应用部署,规划,更新,维护的一种机制。
6、DevOps:(Development和Operations的组合词)是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。
7、Fabric:是基于SSH协议和paramiko实现的快速自动化部署的运维工具python第三方模块。
一个让你通过 命令行 执行 无参数 Python 函数 的工具;
一个让通过 SSH 执行 Shell 命令更加 容易 、 更符合 Python 风格 的命令库(建立于一个更低层次的库)。
8、psutil模块:可以跨平台获取系统运行的进程和系统利用率(CP、内存、硬盘、网络信息的python扩展库),跨平台这就意味着Windows系统主机的信息也可以被采集到。主要运用于系统监控,分析系统资源和进程管理。psutil比在shell中使用一连串的命令(ps,top,lsof,df,who,ionice,iostat等)命令来分析系统要简单方便得多。
9、kafka:最初由Linkedin公司开发,是一个分布式、支持分区的(partition)、多副本的(replica),基于zookeeper协调的分布式消息系统,它的最大的特性就是可以实时的处理大量数据以满足各种需求场景:比如基于hadoop的批处理系统、低延迟的实时系统、storm/Spark流式处理引擎,web/nginx日志、访问日志,消息服务等等,用scala语言编写,Linkedin于2010年贡献给了Apache基金会并成为顶级开源 项目。
特性:①高吞吐量、低延迟:kafka每秒可以处理几十万条消息,它的延迟最低只有几毫秒,每个topic可以分多个partition, consumer group 对partition进行consume操作。
②可扩展性:kafka集群支持热扩展
③持久性、可靠性:消息被持久化到本地磁盘,并且支持数据备份防止数据丢失
④容错性:允许集群中节点失败(若副本数量为n,则允许n-1个节点失败)
⑤高并发:支持数千个客户端同时读写
场景:①日志收集:一个公司可以用Kafka可以收集各种服务的log,通过kafka以统一接口服务的方式开放给各种consumer,例如hadoop、Hbase、Solr等。
②消息系统:解耦和生产者和消费者、缓存消息等。
③用户活动跟踪:Kafka经常被用来记录web用户或者app用户的各种活动,如浏览网页、搜索、点击等活动,这些活动信息被各个服务器发布到kafka的topic中,然后订阅者通过订阅这些topic来做实时的监控分析,或者装载到hadoop、数据仓库中做离线分析和挖掘。
④运营指标:Kafka也经常用来记录运营监控数据。包括收集各种分布式应用的数据,生产各种操作的集中反馈,比如报警和报告。
⑤流式处理:比如spark streaming和storm
⑥事件源
nginx是负载均衡服务器。
redis集群用来做cache缓存数据。
zookeeper是做分布式管理。
dubbo是阿里开源的分布式服务框架。
solr是进行分布式查询服务。
分布式:一个系统,多个模块,应用多。如何联系,使得每台服务器都存的是一样,那就使用消息中间件。
一个业务被拆分成多个子业务,部署在多台服务器上,这就是分布式。
解决分布式系统之间消息的传递,数据的传输等问题的就是消息中间件。
集群:单个应用,主从复制。同一个业务,部署在多台服务器上,这就是集群。
sentinal,中文名是哨兵。
对于不同场景,缓存有各自不同的用法,同样的不同的缓存也有自己的调优策略,
进程内缓存你需要关注的是他的淘汰算法和GC调优,以及要避免缓存污染等。
分布式缓存你需要关注的是他的高可用,如果其不可用了如何进行降级,
以及一些序列化的问题。
流程自动 手动
节点递进、联系 Excel函数
权限、角色