科技新闻

应用消息中间件设计可以解决哪些实际问题?

南笙酒味 提交于 2020-02-26 00:08:18
消息队列中间件是分布式系统中重要的组件,主要解决应用解耦,异步消息,流量削锋等问题,实现高性能,高可用,可伸缩和最终一致性架构。目前使用较多的消息队列有ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMQ,RocketMQ。消息中间件到底该如何使用,何时使用这是一个问题,胡乱地使用消息中间件增加了系统的复杂度,如果用不好消息中间件还不如不用。 消息队列通讯模式 点对点通讯 点对点方式是最为传统和常见的通讯方式,它支持一对一、一对多、多对多、多对一等多种配置方式,支持树状、网状等多种拓扑结构。 多点广播 MQ适用于不同类型的应用。其中重要的,也是正在发展中的是"多点广播"应用,即能够将消息发送到多个目标站点(DestinationList)。可以使用一条MQ指令将单一消息发送到多个目标站点,并确保为每一站点可靠地提供信息。MQ不仅提供了多点广播的功能,而且还拥有智能消息分发功能,在将一条消息发送到同一系统上的多个用户时,MQ将消息的一个复制版本和该系统上接收者的名单发送到目标MQ系统。目标MQ系统在本地复制这些消息,并将它们发送到名单上的队列,从而尽可能减少网络的传输量。 发布/订阅(Publish/Subscribe)模式 发布/订阅功能使消息的分发可以突破目的队列地理指向的限制,使消息按照特定的主题甚至内容进行分发

Kubernetes--YAML文件

房东的猫 提交于 2020-02-25 23:55:10
Kubernetes支持YAML和JSON格式创建资源对象 JSON格式用于接口之间消息的传递 YAML格式用于配置和管理 YAML是一种简洁的非标记性语言 语法格式 缩进标识层级关系 不支持制表符(tab)缩进,使用空格缩进 通常开头缩进两个空格 字符后缩进一个空格,如冒号,逗号等 “—”表示YAML格式,一个文件的开始 “#”表示注释 查看应用名称 kubectl api-versions demo演示 mkdir demo #编辑nginx-deployment.yaml文件 vim /demo/nginx-deployment.yaml apiVersion: apps/v1 kind: Deployment metadata: name: my-nginx labels: app: nginx spec: replicas: 2 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - name: nginx image: nginx:1.15.4 ports: - containerPort: 80 #创建nginx-deployment.yaml文件 kubectl create -f nginx-deployment.yaml

SpaceX星链项目IPO可能助马斯克超过贝佐斯成世界首富

寵の児 提交于 2020-02-25 23:38:22
  【TechWeb】2 月 10 日消息,据国外媒体报道,太空探索公司 SpaceX 的星链(Starlink)项目 IPO 可能使该公司首席执行官(CEO)埃隆·马斯克(Elon Musk)超过杰夫·贝佐斯(Jeff Bezos),成为世界首富。   上周,SpaceX 总裁格温·肖特维尔(Gwynne Shotwell)在迈阿密的一个投资者活动上表示,该公司计划分拆星链业务,并寻求 IPO(首次公开募股)。   2015 年 1 月,马斯克宣布了 SpaceX 的卫星互联网服务计划。SpaceX 计划将约 1.2 万颗通信卫星发射到轨道,这一项目被命名为“星链”。   SpaceX 在提交给监管机构的文件中表示:“该项目旨在为全球住宅用户、商业用户、机构用户、政府和专业用户提供各种宽带和通信服务。”   目前,马斯克的净资产只有大约 380 亿美元。相比之下,贝佐斯的净资产为 1250 亿美元,所以马斯克要打败贝佐斯还有很长的路要走。   如果马斯克能够解锁 2018 年谈判达成的巨额薪酬方案,那么他的净资产可能接近贝佐斯,而 SpaceX 的星链(Starlink)项目 IPO 可能会帮助他超过其他几个超级富豪,成为世界首富。   2018 年 3 月 21 日,特斯拉特别股东大会批准了马斯克未来十年的薪酬方案。根据该方案,马斯克的薪酬是与特斯拉市值和经营业绩挂钩的约

微信公众号开发 (2) 消息处理

扶醉桌前 提交于 2020-02-25 23:34:28
一、前言 微信公众号开发 (1) 微信接入认证成为开发者 本文将实现 接收消息 回复消息 二、消息接收 消息接收 POST 和微信认证 GET 是同一个接口(开发者填写的URL) @Slf4j @RestController @RequestMapping("/api/weixin/index") @Api(tags = "微信 - 接口") public class IndexController extends BaseController { /** * 解析请求消息,post请求 */ @PostMapping public void msgProcess(HttpServletRequest request, HttpServletResponse response) throws Exception { // 获取请求的字节流 ServletInputStream inputStream = request.getInputStream(); // 转换为字符流, 得到缓冲流 InputStreamReader inputStreamReader = new InputStreamReader(inputStream, StandardCharsets.UTF_8); BufferedReader reader = new BufferedReader

MQ消息传输可靠性/消息丢失

一曲冷凌霜 提交于 2020-02-25 23:30:37
RabbitMQ 解决方案 1、生产者将消息传输给mq时丢失 A:可以使用 RabbitMQ 提供的事务功能; 生产者 发送数据之前 开启 RabbitMQ 事务 channel.txSelect ,再发送消息,如果消息没有成功被 RabbitMQ 接收到,那么生产者会收到异常报错,此时就可以回滚事务 channel.txRollback ,然后重试发送消息;如果收到了消息,那么可以提交事务 channel.txCommit 。 // 开启事务 channel.txSelect try { // 这里发送消息 } catch (Exception e) { channel.txRollback // 这里再次重发这条消息 } // 提交事务 channel.txCommit 这样会降低吞吐量,降低性能。 B: 开启 confirm 模式; 生产者开启 confirm 模式之后,每次写的消息都会分配一个唯一的 id,如果写入了 RabbitMQ 中,RabbitMQ 会回传一个 ack 消息,表示这个消息 ok 了。如果 RabbitMQ 没能处理这个消息,会回调生产者 nack 接口表示消息接收失败,生产者可以重试。而且生产者可以结合这个机制自己在内存里维护每个消息 id 的状态,如果超过一定时间还没接收到这个消息的回调,那么可以重发。 事务机制和 cnofirm

Samba文件共享服务--学习笔记

99封情书 提交于 2020-02-25 22:45:34
本次实验环境是redhat 7.0系统 1987年,微软公司和英特尔公司共同制定了SMB(server messages block,服务器消息块)协议,旨在解决局域网内的文件或打印机等资源的共享问题,这也使得在多个主机之间共享文件变得越来越简单。1991年,Tridgwell为了解决linux系统与windows系统之间的文件共享问题,基于SMB写协议开发出了SMBServer服务程序,Tridgwell想把这款软件的名字SMBServer注册成为商标,但是被商标局以SMB是没有意义的字符而被拒绝了申请,后台Tridgwell看到了一个拉丁舞蹈的名字---Samba,而且这个名字又恰好包含了“SMB”,于是Samba服务程序的名字由此诞生。 1. 服务器端 1.1 安装 [root@localhost Desktop]# yum install samba -y 1.2 创建用户 创建用户访问共享资源的账户信息,samba服务程序默认使用的是用户口令认证模式,Samba服务程序的数据库要求账户必须在房钱系统中存在,否则日后创建文件时将导致文件的权限属性混乱,引发错误。 # 创建系统用户 [root@localhost Desktop]# useradd developer # 创建samba账户 [root@localhost Desktop]# pdbedit -a

stomp协议简介 服务器客户端通讯协议

让人想犯罪 __ 提交于 2020-02-25 22:13:49
一、STOMP协议介绍 STOMP即Simple (or Streaming) Text Orientated Messaging Protocol,简单(流)文本定向消息协议,它提供了一个可互操作的连接格式,允许STOMP客户端与任意STOMP消息代理(Broker)进行交互。STOMP协议由于设计简单,易于开发客户端,因此在多种语言和多种平台上得到广泛地应用。 STOMP协议的前身是TTMP协议(一个简单的基于文本的协议),专为消息中间件设计。 STOMP是一个非常简单和容易实现的协议,其设计灵感源自于HTTP的简单性。尽管STOMP协议在服务器端的实现可能有一定的难度,但客户端的实现却很容易。例如,可以使用Telnet登录到任何的STOMP代理,并与STOMP代理进行交互。 STOMP协议与2012年10月22日发布了最新的STOMP 1.2规范。 要查看STOMP 1.2规范,见: https://stomp.github.io/stomp-specification-1.2.html 二、STOMP的实现 业界已经有很多优秀的STOMP的服务器/客户端的开源实现,下面就介绍一下这方面的情况。 1、STOMP服务器 项目名 兼容STOMP的版本 描述 Apache Apollo 1.0 1.1 1.2 ActiveMQ的继承者 http://activemq.apache

MQ优缺点及不同组件的区别

和自甴很熟 提交于 2020-02-25 22:06:17
为什么使用消息中间件? 消息队列核心使用场景<优点>: 解耦、异步、削峰 (1)解耦 传统模式: 传统模式的缺点: 系统间耦合性太强,如上图所示,系统A在代码中直接调用系统B和系统C的代码,如果将来D系统接入,系统A还需要修改代码,过于麻烦! 中间件模式: 中间件模式的的优点: 将消息写入消息队列,需要消息的系统自己从消息队列中订阅,从而系统A不需要做任何修改。 (2)异步 传统模式: 传统模式的缺点: 一些非必要的业务逻辑以同步的方式运行,太耗费时间。 中间件模式: 中间件模式的的优点: 将消息写入消息队列,非必要的业务逻辑以异步的方式运行,加快响应速度 (3)削峰 传统模式 传统模式的缺点: 并发量大的时候,所有的请求直接怼到数据库,造成数据库连接异常 中间件模式: 中间件模式的的优点: 系统A慢慢的按照数据库能处理的并发量,从消息队列中慢慢拉取消息。在生产中,这个短暂的高峰期积压是允许的。 消息中间件缺点有哪些? 系统可用性降低 系统引入的外部依赖越多,越容易挂掉,需要保证消息队列的高可用。 系统复杂度提高 多一个 MQ 组件,那就需要面对 消息没有重复消费,处理消息丢失的情况,保证消息传递的顺序性等等系统级别问题。 一致性问题 多个消费者消费某一个消息就可能出现个别消费失败的情况,会出现数据不一致。 ActiveMQ、RabbitMQ、RocketMQ、Kafka

温莎大师制度怎样,安全合法吗

纵饮孤独 提交于 2020-02-25 21:38:01
功能:发送数字货币红包、在线直播、空中课堂、一键禁言… 温莎——微聊软件支持一键建群,建群人数不封顶 人类历史上,最强大的区块链集成系统… 微聊是:2020年全球最牛逼的区块链社交功能的投资理财工具:可以用比特币BTC、以太坊ETH,等主流币发红包等等! 你可以足不出户,一部手机打天下! 2020年:最好的发财消息,我已经告诉你了,你千万不要错过! 没有绝对的实力不敢轻易造次,2020已新换旧的时代紧逼来临!一场没有硝烟的战争已经打响! WS项目内排已经开始,区块链项目中首例社交理财工具比特币、以太坊发红包,所有微信功能都会具备!! 温莎大师市场高级领导人欢迎你,团队领导人亲自带你一起改变自己,成长自己,成就自己。带你一起为生活加油,为梦想而拼!详情温莎大师最高 【伽照片薇號】 来源: CSDN 作者: L2177414243?? 链接: https://blog.csdn.net/qq_46404616/article/details/104497414

聊天系统数据库

ε祈祈猫儿з 提交于 2020-02-25 20:19:08
聊天 数据库设计 功能: 我的好友 我的消息 我的群组 我加入的群组 即时聊天 页面即时更新 数据库 用户表 好友表 用户群组关联表 群组信息表 聊天记录表 下次配数据库的详细 来源: CSDN 作者: wangzhae 链接: https://blog.csdn.net/wangzhae/article/details/104494723