微服务常用的中间件有哪些?都有什么用途?
前言
最近整理一下我们的项目使用了哪些中间件,借此机会也来分享一下,在微服务架构中我们常用的那些中间件,都有什么作用,为什么要使用中间件。
消息中间件-RocketMQ
比如RocketMQ,RocketMQ 是一个开源的分布式消息传递和流处理平台,由阿里巴巴开发并贡献给Apache软件基金会。它被设计为高吞吐量、高可用性、可扩展和低延迟的消息中间件,适用于大规模的分布式系统。
RocketMQ 的用途
- 消息队列:RocketMQ 常用作异步通信的消息队列,支持发布/订阅和点对点消息模型。
- 流量削峰:RocketMQ 可以用于处理流量峰值,通过消息队列缓冲大量请求,避免系统过载。
- 数据同步:RocketMQ 可以用于不同系统之间的数据同步,确保数据一致性。
- 日志收集:RocketMQ 可以作为日志收集和处理的中间件,支持大规模日志数据的实时处理。
- 分布式事务:RocketMQ支持分布式事务消息,可以用于实现跨多个服务的原子操作。
RocketMQ 的优势
- 高吞吐量:RocketMQ 设计为高性能消息中间件,能够处理每秒百万级的消息。
- 高可用性:RocketMQ 支持主从复制和故障转移,确保消息服务的持续可用性。
- 可扩展性:RocketMQ 支持水平扩展,可以通过添加更多的节点来增加处理能力。
- 低延迟:RocketMQ 提供了低延迟的消息传递,适合实时数据处理和分析。
- 丰富的消息模型:RocketMQ 支持多种消息模型,包括普通消息、顺序消息、延迟消息和事务消息。
- 灵活的部署:RocketMQ 支持多种部署方式,包括单机部署、集群部署和云原生部署。
RocketMQ 的缺点
- 学习曲线:虽然RocketMQ 提供了丰富的功能,但对于新手来说,仍然需要一定的学习时间来理解和掌握。
- 运维复杂性:随着集群规模的扩大,RocketMQ 的运维和管理可能会变得复杂,需要专业的知识和技能。
- 社区支持:虽然RocketMQ 是一个Apache项目,但相比一些更成熟的消息中间件(如Kafka),其社区和生态系统可能相对较小。
- 功能限制:在某些高级特性(如复杂的流处理和实时分析)方面,RocketMQ 可能不如一些专门的流处理平台(如Apache Flink)。
总结:总体来说,RocketMQ 是一个高性能、高可用、可扩展的消息中间件,特别适合于需要高吞吐量和低延迟的大规模分布式系统。然而,它也有一些缺点,包括学习曲线、运维复杂性和社区支持。
服务治理中间件-Nacos
比如Nacos,Nacos(Dynamic Naming and Configuration Service)是一个阿里巴巴开源的、易于使用的平台,用于动态服务发现、配置管理和服务管理。Nacos 由阿里巴巴开发并开源,旨在帮助开发者更轻松地构建云原生应用,市面上用的也是最多的。
Nacos 的用途
- 服务发现:Nacos 提供了服务注册和发现功能,帮助服务提供者和消费者之间进行动态的连接。
- 配置管理:Nacos 支持动态配置服务,允许应用在不重启的情况下更新配置,实现配置的热更新。
- 服务管理:Nacos 提供了服务元数据管理、流量管理和服务健康检查等功能。
- 动态 DNS 服务:Nacos 支持基于DNS的服务发现,可以与Kubernetes等容器编排平台集成。
Nacos 的优势
- 易于使用:Nacos 提供了简洁的API和用户界面,使得服务注册、发现和配置管理变得简单易用。
- 动态配置:Nacos 支持配置的热更新,可以在不重启应用的情况下动态更新配置。
- 高可用性:Nacos 设计为高可用系统,支持集群部署,确保服务的稳定性和可靠性。
- 多环境支持:Nacos 支持多种环境(如开发、测试、生产)的配置管理和服务发现。
- 丰富的生态系统:Nacos 与Spring Cloud、Dubbo、Kubernetes等云原生技术紧密集成,提供了丰富的生态系统。
- 社区支持:Nacos 是一个活跃的开源项目,拥有一个庞大的社区,提供了丰富的文档和示例。
Nacos 的缺点
- 运维复杂性:随着集群规模的扩大,Nacos 的运维和管理可能会变得复杂,需要专业的知识和技能。
- 功能限制:虽然Nacos 提供了丰富的功能,但在某些高级特性(如复杂的流量管理)方面,可能不如一些商业服务发现和配置管理解决方案。
- 性能问题:在高并发和大规模数据处理场景下,Nacos 的性能可能会受到影响,需要进行优化和调整。
总结:总体来说,Nacos 是一个功能丰富、易于使用的服务发现和配置管理平台,特别适合于云原生应用和微服务架构。然而,它也有一些缺点,包括学习曲线、运维复杂性和功能限制。
缓存中间件-Redis
Redis(Remote Dictionary Server)是一个开源的、高性能的键值对存储系统,它支持多种数据结构,如字符串、哈希、列表、集合、有序集合等。Redis 通常用作数据库、缓存和消息中间件
Redis 的用途
- **缓存:**Redis 常用作缓存层,存储频繁访问的数据,减少数据库的负载,提高应用性能。
- 会话存储:Redis 可以用于存储Web应用的会话数据,支持分布式会话管理。
- 实时分析:Redis 支持实时数据处理和分析,适用于实时统计、排行榜等场景。
- 消息队列:Redis 提供了发布/订阅和列表等数据结构,可以用于构建简单的消息队列系统。
- 分布式锁:Redis 可以用于实现分布式锁,保证分布式系统中的数据一致性。
- 计数器和限速器:Redis 支持原子操作,可以用于实现计数器和限速器。
Redis 的优势
- 高性能:Redis 设计为内存数据库,读写速度非常快,适合处理高并发的读写请求。
- 丰富的数据结构:Redis 支持多种数据结构,可以满足不同的业务需求。
- 持久化:Redis 支持数据持久化,可以将内存中的数据保存到磁盘,防止数据丢失。
- 高可用性:Redis 支持主从复制和哨兵机制,可以实现高可用性和故障转移。
- 可扩展性:Redis 支持分片(Sharding),可以通过添加更多的节点来水平扩展存储容量和处理能力。
- 社区和生态系统:Redis 拥有庞大的社区和丰富的生态系统,提供了大量的客户端库和工具。
Redis 的缺点
- 内存限制:由于Redis 主要运行在内存中,因此存储容量受限于可用内存的大小。
- 持久化开销:虽然Redis 支持持久化,但持久化操作可能会影响性能,特别是在高并发场景下。
- 运维复杂性:随着数据量和访问量的增加,Redis 的运维和管理可能会变得复杂,需要专业的知识和技能。
- 数据一致性:在分布式环境下,Redis 的某些操作(如事务)可能不如传统的关系型数据库那样保证强一致性。
- 成本:虽然Redis 是开源的,但在大规模部署和运维时,可能需要投入较多的硬件和人力成本。
总结:总体来说,Redis 是一个高性能、功能丰富的键值对存储系统,适用于各种需要快速读写和实时数据处理的场景。然而,它也有一些缺点,包括内存限制、持久化开销和运维复杂性。在选择使用Redis 时,需要根据具体的业务需求和资源情况进行综合考虑。
负载均衡中间件-nginx
Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。Nginx 由Igor Sysoev于2004年开发,旨在解决C10K问题(即同时处理10,000个并发连接的问题)。Nginx 因其稳定性、丰富的功能集、简单的配置文件和低资源消耗而广受欢迎。
Nginx 的用途
- HTTP服务器:Nginx 可以作为静态文件服务器,提供HTML、CSS、JavaScript和图像等静态内容的访问。
- 反向代理:Nginx 可以作为反向代理服务器,将客户端请求转发到后端服务器,并将响应返回给客户端。
- 负载均衡:Nginx 支持多种负载均衡算法,可以将请求分发到多个后端服务器,提高系统的可用性和性能。
- 缓存:Nginx 可以缓存后端服务器的响应,减少对后端服务器的请求,提高响应速度。
SSL/TLS终结:Nginx 可以处理SSL/TLS加密和解密,减轻后端服务器的负担。 - 安全防护:Nginx 可以配置各种安全策略,如访问控制、限速、防止DDoS攻击等。
Nginx 的优势
- 高性能:Nginx 设计为高性能服务器,能够处理大量的并发连接,适合高流量网站。
- 低资源消耗:Nginx 使用异步、事件驱动的架构,相比传统的多线程服务器,资源消耗更低。
- 高可靠性:Nginx 设计为高可靠性服务器,支持平滑重启和升级,不影响在线服务。
- 易于配置和扩展:Nginx 的配置文件简洁明了,易于理解和维护。同时,Nginx 支持模块化扩展,可以根据需要添加新功能。
- 社区和生态系统:Nginx 拥有庞大的社区和丰富的生态系统,提供了大量的文档、教程和第三方模块。
Nginx 的缺点
- 动态内容支持:Nginx 本身不支持动态内容生成,需要与后端应用服务器(如PHP-FPM、Node.js等)配合使用。
- 模块开发:虽然Nginx 支持模块化扩展,但开发和维护第三方模块需要一定的C语言编程技能。
- 功能限制:Nginx 的一些高级功能(如流媒体传输)可能不如专门的软件或服务。
总结:Nginx 是一个高性能、低资源消耗、易于配置和扩展的HTTP和反向代理服务器,适用于各种高流量和并发连接的场景。然而,它也有一些缺点,包括学习曲线、动态内容支持和模块开发难度。在选择使用Nginx 时,需要根据具体的业务需求和技术能力进行综合考虑。
分布式文件系统中间件-MinIO
MinIO 是一个开源的高性能对象存储系统,它兼容 Amazon S3 API,适用于存储大规模非结构化数据,如图片、视频、日志文件、备份和容器/虚拟机镜像等。MinIO 特别适合于私有云和混合云环境。
MinIO 的用途
- 对象存储:MinIO 提供了一个高性能的对象存储解决方案,可以用于存储和管理大量的非结构化数据。
- 云原生应用:MinIO 设计为云原生应用,可以与Kubernetes等容器编排平台无缝集成。
数据备份和归档:MinIO 可以用于数据备份和长期归档,支持数据的高可用性和持久性。 - 内容分发:MinIO 可以用于内容分发网络(CDN),提供快速和可靠的内容交付服务。
- 数据湖:MinIO 可以作为数据湖的基础存储层,支持大规模数据分析和处理。
MinIO 的优势
- 高性能:MinIO 设计为高性能对象存储,支持高并发和低延迟的数据访问。
- 兼容S3:MinIO 完全兼容Amazon S3 API,可以无缝替换或集成现有的S3应用。
- 易于部署和管理:MinIO 提供了简单的部署和管理工具,支持快速启动和扩展。
- 云原生:MinIO 是一个云原生应用,支持容器化部署,与Kubernetes等云原生技术紧密集成。
- 开源和社区支持:MinIO 是一个活跃的开源项目,拥有一个庞大的社区,提供了丰富的文档和示例。
MinIO 的缺点
- 资源消耗:虽然MinIO 设计为高性能,但在处理大规模数据时,仍然需要较多的硬件资源,包括CPU、内存和存储。
- 运维复杂性:随着集群规模的扩大,MinIO 的运维和管理可能会变得复杂,需要专业的知识和技能。
- 数据一致性:MinIO 在分布式环境下提供了高可用性和持久性,但在某些情况下,数据一致性可能不如传统的分布式文件系统。
- 功能限制:虽然MinIO 提供了丰富的功能,但在某些高级特性(如跨区域复制)方面,可能不如一些商业对象存储解决方案。
总结:总体来说,MinIO 是一个高性能、易于部署和管理的对象存储系统,特别适合于云原生应用和大规模数据存储场景。然而,它也有一些缺点,包括资源消耗、运维复杂性和功能限制。在选择使用MinIO 时,需要根据具体的业务需求和资源情况进行综合考虑。
搜索引擎中间件-Elasticsearch
简称ES。ES 是一个开源的分布式搜索和分析引擎,基于Lucene库构建,广泛用于各种场景,包括全文搜索、日志和事件数据分析、实时应用监控等。
ES 的用途
- 全文搜索:ES 提供了强大的全文搜索功能,支持复杂的查询和分析。
- 日志和事件数据分析:ES 常用于收集、存储和分析大量的日志和事件数据,支持实时数据分析。
- 实时应用监控:ES 可以用于监控应用程序的性能和状态,提供实时的监控和报警功能。
- 数据聚合和分析:ES 支持复杂的数据聚合操作,可以用于生成各种数据报表和分析结果。
- 地理空间数据分析:ES 提供了地理空间搜索和分析功能,支持地理位置相关的查询和可视化。
ES 的优势
- 分布式和高可用性:ES 是一个分布式系统,可以水平扩展,支持高可用性和容错性。
- 实时搜索和分析:ES 提供了近实时的搜索和分析能力,数据写入后很快就可以被搜索到。
- 强大的查询和聚合功能:ES 支持丰富的查询 DSL和聚合功能,可以进行复杂的数据分析。
- 易于使用和集成:ES 提供了RESTful API,易于使用和集成到各种应用程序中。
- 社区和生态系统:ES 拥有庞大的社区和丰富的生态系统,包括Kibana(可视化)、Logstash(数据收集)和Beats(轻量级数据发送器)等。
ES 的缺点
- 资源消耗:ES 需要较多的内存和CPU资源,特别是在进行大规模数据分析时。
- 复杂性:ES 提供了易于使用的API,但在处理复杂查询和聚合时,仍然需要一定的学习和理解成本。
- 数据一致性:ES 是一个近实时的系统,不保证强一致性,特别是在分布式环境下。
- 运维挑战:随着数据量和查询量的增加,ES 的运维和管理会变得更加复杂,需要专业的知识和技能。
- 成本:ES 是开源的,但在大规模部署和运维时,可能需要投入较多的硬件和人力成本。
总结:总体来说,ES 是一个功能强大的搜索和分析引擎,适用于各种需要实时数据处理和分析的场景。然而,它也有一些缺点,包括资源消耗、复杂性和运维挑战。在选择使用 ES 时,需要根据具体的业务需求和资源情况进行综合考虑
相关文章:
微服务常用的中间件有哪些?都有什么用途?
前言 最近整理一下我们的项目使用了哪些中间件,借此机会也来分享一下,在微服务架构中我们常用的那些中间件,都有什么作用,为什么要使用中间件。 消息中间件-RocketMQ 比如RocketMQ,RocketMQ 是一个开源的分布式消息…...
华为云认证
华为云认证 首页 云原生 DevOps工作级开发者认证:HCCDP – Cloud Native DevOps 对云上敏捷开发感兴趣的人员,培训DevOps的理论知识及在云端交付软件全生命周期的实操能力。 DevOps...
【Linux学习】常用基本指令
🔥个人主页: Forcible Bug Maker 🔥专栏:Linux学习 目录 🌈前言🔥XShell的一些使用查看Linux主机IP使用XShell登录主机XShell下的复制粘贴 🔥Linux下常用基本指令ls指令pwd指令cd指定touch指令…...
windows上安装Apache
安装前须知: 下载并安装,如未完成,请访问下载页面。安装Apache前需要安装Visual C Redistributable for Visual Studio 2015-2022 x64。 解压与配置: 将Apache24文件夹解压至C:\Apache24(这是配置中的ServerRoot&am…...
wps office 2019 Pro Plus 集成序列号Vba安装版教程
前言 wps office 2019专业增强版含无云版是一款非常方便的办公软件,我们在日常的工作中总会碰到需要使用WPS的时候,它能为我们提供更好的文档编写帮助我们更好的去阅读PDF等多种格式的文档,使用起来非常的快捷方便。使用某银行专业增强版制作…...
院内影像一体化平台PACS源码,C#语言的PACS/RIS系统,二级医院应用案例
全院级PACS系统源码,一体化应用系统整合,满足放射、超声、内窥镜中心、病理、检验等多个科室的工作流程和需求,为不同科室提供专业的解决方案,实现了全院乃至区域内信息互联互通、数据统一存储与管理等功能,做到以病人…...
基于java的设计模式学习
PS :以作者的亲身来看,这东西对于初学者来说有用但不多,这些东西,更像一种经验的总结,在平时开发当中一般是用不到的,因此站在这个角度上用处不大。 1.工厂模式 1.1 简单工厂模式 我们把new 对象逻辑封装…...
组合数学+费用背包+刷表,G2 - Playlist for Polycarp (hard version)
目录 一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 二、解题报告 1、思路分析 2、复杂度 3、代码详解 一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 G2 - Playlist for Polycarp (hard version) 二、解题报告 1、思路分析 一…...
阿尔泰科技利用485模块搭建自动灌溉系统实现远程控制
自动灌溉系统又叫土壤墒情监控系统,土壤墒情监控系统主要实现固定站无人值守情况下的土壤墒情数据的自动采集和无线传输,数据在监控中心自动接收入库;可以实现24小时连续在线监控并将监控数据通过有线、无线等传输方式实时传输到监控中心生成…...
Python正则表达式中的分组
表达式中的分组 它是可以通过" () “来进行分组,更专业的表达就是捕获组,每个完整的” () “可以分为一组,同时,” () “中还可以嵌套” () ",即组之间还可以存在更小的组 概念 1、当我们在一个正则表达式…...
openstack设置IP直接登录,不需要加dashboard后缀
openstack 实验环境,openstack-t版,centos2009 修改配置文件 [rootcontroller ~]# vim /WEBROOT /etc/openstack-dashboard/local_settings #将dashboard去掉 WEBROOT /dashboard/ #改为 WEBROOT /[rootcontroller ~]# vim /etc/httpd/conf.d/openst…...
PHP宠物店萌宠小程序系统源码
🐾萌宠生活新方式🐾 🏡【一键直达萌宠世界】 你是否也梦想着拥有一家随时能“云撸猫”、“云吸狗”的神奇小店?现在,“宠物店萌宠小程序”就是你的秘密花园!🌟只需轻轻一点,就能瞬…...
nginx负载均衡实例
实现效果 浏览器输入地址http://nginx服务器ip(:80)/edu/a.html,实现负债均衡效果,平均分配到 服务器ip:8080和 服务器ip:8081进程中。 准备工作 准备两个tomcat,一个监听在8080端口,一个监听在8081端口。也可以准备多个tomcat。…...
正则表达式在Python中的高级应用:从HTML中提取数据
正则表达式在Python中的高级应用:从HTML中提取数据 作为一名资深的Python程序员,我深知正则表达式在文本处理中的重要性。尤其是在处理HTML文档时,正则表达式可以成为我们提取数据的强大工具。在本文中,我将通过一个实际的例子&a…...
docker compose 部署交互模式的容器-以Ubuntu为例
docker compose 部署交互模式的容器-以Ubuntu为例 问题介绍解决方式 同步发布在个人笔记docker compose 部署交互模式的容器-以Ubuntu为例 问题介绍 想通过 docker compose 方式部署一个交互模式的 Ubuntu 容器,但是以平常的方式执行部署后,发现容器被创…...
display: flex 和 justify-content: center 强大居中
你还在为居中而烦恼吗,水平居中多个元素、创建响应式布局、垂直和水平同时居中内容。它,display: flex 和 justify-content: center 都可以完成! display: flex:将元素定义为flex容器 justify-content:定义项目在主轴…...
记录贴-idea导入别人的项目
链接: IDEA导入Web项目的三种方式 链接: idea怎么导入别人的maven项目 链接: IDEA 如何导入别人的javaweb项目进行部署...
算法第九天:leetcode59.螺旋矩阵II
给你一个正整数 n ,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。 示例 1: 输入:n 3 输出:[[1,2,3],[8,9,4],[7,6,5]]示例 2: 输入:n 1 输出&am…...
androidkiller重编译apk失败的问题
androidkiller重编译apk失败 参考: https://blog.csdn.net/qq_38393271/article/details/127057187 https://blog.csdn.net/hkz0704/article/details/132855098 已解决:“apktool” W: invalid resource directory name:XXX\res navigation 关键是编译…...
matlab中plot的一些用法
文章目录 一、基本用法二、绘制多个数据集三、设置线型、颜色四、添加标题和标签五、添加图例六、设置轴范围七、绘制网格八、 在同一图中绘制多个子图九、绘制带误差条的图十、绘制半对数图和对数图十一、绘制填充区域图十二、综合案例 一、基本用法 x 0:0.1:10; y sin(x);…...
Elasticsearch:Retrievers 介绍 - Python Jupyter notebook
在今天的文章里,我是继上一篇文章 “Elasticsearch:介绍 retrievers - 搜索一切事物” 来使用一个可以在本地设置的 Elasticsearch 集群来展示 Retrievers 的使用。在本篇文章中,你将学到如下的内容: 从 Kaggle 下载 IMDB 数据集…...
5 webSocket
webSockets 简介 什么是 websocket webSockets 是一种先进的技术;它可以在用户的浏览器和服务器之间打开交互式通信会话;使用此 API,您可以向服务器发送消息并接收事件驱动的响应,而无需通过轮询服务器的方式以获得响应 websocket 是一种网络通信协议,是HTML5开始提供的一种在单…...
PD芯片诱骗取电电压给后端小家电用电:LDR6328
在智能家居浪潮的推动下,小家电作为日常生活中不可或缺的一部分,其供电方式的创新与优化正逐步成为行业关注的焦点。随着快充技术的普及,特别是Power Delivery(PD)协议的广泛应用,一种新型供电模式——利用…...
深入解析Linux文件权限管理:掌握`chmod`和`chown`命令
深入解析Linux文件权限管理:掌握chmod和chown命令 深入解析Linux文件权限管理:掌握chmod和chown命令 大纲:摘要:内容: 1. 引言2. 理解文件权限3. 使用chmod命令4. 使用chown命令5. 综合应用6. 常见问题与解决方案7. 结…...
3.Implementing Controllers
Implementing Controllers 控制器提供了对应用程序行为的访问,这些行为通常通过一个服务接口来定义。控制器解释用户输入,并将其转换为由视图展示给用户的模型。Spring 以非常抽象的方式实现了控制器,使得你能够创建各种各样的控制器。 Spr…...
如何分清楚常见的 Git 分支管理策略Git Flow、GitHub Flow 和 GitLab Flow
Git Flow、GitHub Flow 和 GitLab Flow 是几种常见的 Git 分支管理策略,它们帮助开发团队更高效地管理代码库和协同开发。 Git Flow Git Flow 是一种功能强大的分支管理模型,由 Vincent Driessen 提出,适用于发布周期较长、需要严格管理发布…...
Java垃圾收集器选择与优化策略
1.垃圾收集算法有哪些,可以聊一下吗? 如何确定一个对象是垃圾? 要想进行垃圾回收,得先知道什么样的对象是垃圾。 1.1 引用计数法 对于某个对象而言,只要应用程序中持有该对象的引用,就说明该对象不是垃圾。如果一个对象没有任何指针对其引用,它就是垃圾。 弊端:如果…...
django命令
Django 的命令行工具 django-admin(或 manage.py 中的 manage 函数)提供了一系列的命令,用于执行各种管理任务。 1. check: 检查项目的 full 路径,确保没有错误配置。 2. compilemessages: 编译 .po 文件中的翻译,生…...
23种设计模式之命令模式
命令模式 1、定义 命令模式:将一个请求封装为一个对象,从而可用不同的请求对客户进行参数化,对请求排队或者记录请求日志,以及支持可撤销的操作 2、命令模式结构 Command(抽象命令类):一般是…...
esp8266模块(1)
1WiFi的两种模式 1AP模式:ESP8266模块充当一个无线接入点,类似于一个路由器。(如手机开热点) 2Station模式(sta):ESP8266模块作为客户端连接到一个现有的WiFi网络。(如路由器&#…...
做网购的有哪几个网站/东莞seo管理
用JQuery Validate框架,在IE8下验证报错问题解决参考文章: (1)用JQuery Validate框架,在IE8下验证报错问题解决 (2)https://www.cnblogs.com/destimarve/p/5511257.html 备忘一下。...
互联业务登录页 网站/百度网址大全设为主页
空姐梅梅入住酒店,意外发现房间内装有针孔摄像头。梅梅认为自己的个人隐私被严重侵犯,要求酒店担责,但酒店却称并不知情,而且摄像头早已陈旧损坏,并没有实际摄录功能。近日,法院经审理认定酒店方侵权&#…...
wordpress首页自定义小工具/推广关键词排名方法
昨天晚上看了一部录像,具体名字我忘了,不过其中有句话记得非常清楚,“Who is the lion!”。故事讲述的是一个胆子很小的警察,无意中被要求付5000美金去学习一本课程,当然教授是一个比较坏的家伙,不过我也确…...
wordpress产品展示/如何推广自己的业务
我使用的是BCM的GPIO编号,用GPIO 18,对应pin 12。树莓派GPIO分布图。使GPIO18从内核空间暴露到用户空间中:piraspberrypi:~ $ sudo echo 18 > /sys/class/gpio/export执行该操作之后,/sys/class/gpio目录下会增加一个gpio18文件…...
dw做六个页面的网站/今日头条新闻大事
转自:http://blog.csdn.net/totogo2010/article/details/9100767 准备2个文件: 文件一,ThisService.app文件二,Doxygen.rb下载上述2个文件:ThisService&Doxygen_rb准备好之后,两步配置,一步…...
wordpress主题背景图片/营销推广有哪些公司
time模块 表示时间有三种表示方式: 时间戳-----time.time(); 格式化的字符串形式 ------time.strftime(); 结构化的元组----time.localtime() time.time(): 时间戳,主要是给计算机看的,从1970年算起到现在过了多少秒; import time…...