科技新闻

Spring Cloud(八):使用Spring Cloud Bus来实现配置动态更新

青春壹個敷衍的年華 提交于 2020-02-27 15:01:45
使用Spring Cloud Config我们能实现服务配置的集中化管理,在服务启动时从Config Server获取需要的配置属性。但如果在服务运行过程中,我们需要将某个配置属性进行修改,比如将验证码的失效时间从五分钟调整为十分钟,如何将这个更新在服务端不重启服务就能动态生效,是本文讨论的内容。 Spring Cloud Bus Spring Cloud Bus可以理解为Spring Cloud体系架构中的消息总线,通过一个轻量级的Message Broker来将分布式系统中的节点连接起来。可用来实现广播状态更新(如配置更新),或其它管理指令。 Spring Cloud Bus 就像是一个分布式的Spring Boot Actuator, 目前提供了两种类型的消息队列中间件支持:RabbitMQ与Kafka(对应的pom依赖分别为spring-cloud-starter-bus-amqp, spring-cloud-starter-bus-kafka)。 Spring Cloud 在spring-cloud-context中添加了两个actuator管理接口(POST请求): /actuator/env 与 /actuator/refresh , 前者可用于更新当前服务实例Environment对象中的配置属性,后者可用于刷新当前服务实例的配置信息。 Spring Cloud

台媒:台积电5nm制程良率突破八成 拿下苹果全部A14处理器订单

本秂侑毒 提交于 2020-02-27 14:27:01
  【TechWeb】1 月 13 日消息,据台湾媒体报道,台积电 5nm 制程近期有重大突破,试产良率突破八成,为下季度导入量产打下基础。   台积电先前曾公开表示,旗下 5nm 效能已超越三星的 3nm;与 7nm 相比较,电晶体密度多 1.8 倍,速度增快 15%,功耗省 30%,同时也是全球第一家提供 5nm 晶圆代工服务的晶圆厂。   台积电供应链透露,尽管 5nm 全数导入极紫外光(EUV)微影设备,生产流程比 7nm 长,对晶圆代工厂是一大挑战,不过台积电已获重大突破。   目前台积电首批 5nm 制程试产苹果 A14 处理器,良率已突破八成。   依台积电规划,初期为苹果配置的 5nm 月产能达 5.1 万片,后续再加华为海思、高通等打造的 5nm 强化版等,月产能将推升至 8 万片。   台媒报道称,苹果明年下半年将推出 4 款 iPhone 12 系列手机,全部搭载运算能力更强大的 A14 处理器。A14 采用台积电 5nm 工艺,到 2020 年第二季度底开始量产。供应链人士称,苹果包下了台积电三分之二的 5nm 产能,苹果和华为海思是台积电 5nm 工艺首批两大客户。   台积电将在 1 月 16 日召开财报说明会,台媒预计,5nm 制程进度将是关注重点。   台积电 5nm 制程是该公司集结所有人力、物力和财力最大手笔的投资,包括竹科 12 厂试产线、南科

Spring Boot(七):RabbitMQ 详解

好久不见. 提交于 2020-02-27 13:58:31
一、RabbitMQ简介 RabbitMQ即一个消息队列,主要是用来实现应用程序的异步和解耦,同时也能起到消息缓冲,消息分发的作用。 消息中间件在互联网公司的使用中越来越多,消息中间件最主要的作用是解耦,中间件最标准的用法是生产者生产消息传送到队列,消费者从队列中拿取消息并处理,生产者不用关心是谁来消费,消费者不用关心谁在生产消息,从而达到解耦的目的。在分布式的系统中,消息队列也会被用在很多其它的方面,比如:分布式事务的支持,RPC的调用等等。 RabbitMQ是实现AMQP(高级消息队列)的消息中间件的一种,最初起源于金融系统,用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。RabbitMQ主要是为了实现系统之间的双向解耦而实现的。当生产者大量产生数据时,消费者无法快速消费,那么需要一个中间层保存这个数据。 AMQP,即advanced message queuing protocol,高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。消息中间件主要用于组件之间的解耦,消息的发送者无需知道消息使用者的存在,反之亦然。AMQP的主要特征是面向消息、队列、路由(包括点对点和发布/订阅)、可靠安全。 RabbitMQ是一个开源的AMQP实现,服务器用Erlang语言编写,支持多种客户端,如 Python、Ruby、.NET、Java、JMS

中间件——消息队列的作用,为什么要用消息队列?

北城以北 提交于 2020-02-27 13:30:23
消息队列的作用:1,是减少相应所需的时间和削峰2,降低系统耦合性(解耦或提升系统的可拓展性) 当我们不使用消息队列的时候,所有用户的请求都会直接落到服务器上,然后通过数据库或者缓存相应,假如在高并发的环境下,如果没有缓存或者数据库承受不了那么大的压力的话,就会造成响应速度缓慢,甚至造成数据库宕机。因此这时候如果使用消息队列,用户发送的请求数据发送给了消息队列之后就可以立即返回,再由消息队列的消费者进程从消息队列中获取数据,异步写入数据库。由于消息队列服务器的处理速度大于数据库,因此响应速度大幅度提高。 (图片来自于网络) 另外消息队列还具有一定的削峰的作用——通过异步处理,将短时间内高并发产生的事务消息存储在消息队列当中,从而削平高峰期的并发事务。比如一些电商网站的秒杀和促销活动都是用消息队列来缓解对系统的冲击,当然这时用户请求的压力也就变成了消息队列的压力。 (图片来自于网络) 同样的消息队列还可以降低系统的耦合性,就像我们知道如果模块之间不存在直接的调用,那么新增的模块就会对其他的模块的影响减少,这样系统的可拓展性就更好。生产者发送信息到消息队列当中去,接收者负责处理消息,需要消费的系统直接去消息队列当中去取即可,这样就不需要和其他系统有耦合冲突,就提升了系统的拓展性。 当然消息队列也不是没有缺点的: 1.首先就是系统的可用性降低了,在加入mq之前,你不用去考虑消息的丢失的情况

python面试题 -- 网编并发

白昼怎懂夜的黑 提交于 2020-02-27 12:21:54
Python面试重点(进阶篇) 注意:只有必答题部分计算分值,补充题不计算分值。 第一部分 必答题 简述 OSI 7层模型及其作用?(2分) # 应用层:文件传输,文件管理,电子邮件的信息处理# 表示层:确保一个系统的应用层发送的消息可以被另一个系统的应用层读取,编码转换,数据解析,管理数据的解密和加密# 会话层:验证访问和会话管理# 传输层:为应用程序之间提供端对端的逻辑通信。# 网络层:选择合适的网间路由完成两个计算机之间的多个数据链路,通过路由协议和地址解析协议(ARP)。IP,RIP(路由信息协议),OSPF(最短路径优先协议)# 数据链路层:在物理层提供的比特流的基础上,建立相邻节点之间的数据链路,不可靠的物理介质提供可靠传输 ppp协议# 物理层:规定通信设备,通信链路的特性 简述 TCP三次握手、四次回收的流程。(3分) # 第一次握手:客户端首先向服务端发起连接,这时TCP头部中的SYN标识位值为1,然后选定一个初始序号seq=x(一般是随机的),消息发送后,A进入SYN_SENT状态,SYN=1的报文段不能携带数据,但要消耗一个序号。# 第二次握手:服务端收到客户端的连接请求后,同意建立连接,向A发送确认数据,这时TCP头部中的SYN和ACK标识位值均为1,确认序号为ack=x+1,然后选定自己的初始序号seq=y(一般是随机的),确认消息发送后,服务端进入SYN

CentOS 7 SSH连接超时自动断开解决方案

非 Y 不嫁゛ 提交于 2020-02-27 12:21:44
用SSH登录到Linux的时候,由于默认的连接超时时间很短,经常断开。可以修改配置文件调整服务器端向客户端请求消息的时间间隔,解决自动断开的问题。 编辑 /etc/ssh/sshd_config 找到 #ClientAliveInterval 0 #ClientAliveCountMax 3 修改为 ClientAliveInterval 60 ClientAliveCountMax 10 重启sshd服务 systemctl restart sshd 这样调整后,即使长时间不操作也不会连接超时中断了。 来源: oschina 链接: https://my.oschina.net/matrixchan/blog/3161871

MFC重绘原理的关键理解

≡放荡痞女 提交于 2020-02-27 12:17:13
// ====================Windows重绘消息与函数========================== 得到桌面窗口的句柄,然后再绘图 HWND GetDesktopWindow(VOID); 当需要更新或重新绘制窗口的外观时,应用程序就会发送WM_PAINT消息对窗口进行重新绘制。 Invalidate()是强制系统进行重画,但是不一定就马上进行重画。因为Invalidate()只是通知系统,此 时的窗口已经变为无效。强制系统调用WM_PAINT,而这个消息只是Post就是将该消息放入消息队列。当执行到WM_PAINT消息时才会对敞口进行重绘。 UpdateWindow只向窗体发送WM_PAINT消息,在发送之前判断GetUpdateRect(hWnd,NULL,TRUE)看有无可绘制的客户区域,如果没有,则不发送WM_PAINT。 RedrawWindow()则是具有Invalidate()和UpdateWindow()的双特性。声明窗口的状态为无效,并立即更新窗口,立即调用WM_PAINT消息处理。 调用Invalidate之后,屏幕不一定马上更新,因为WM_PAINT消息不一定在队列头部,而 调用UpdateWindow会使WM_PAINT消息马上执行的,绕过了消息队列。 如果你调用Invalidate之后想马上更新屏幕

中国移动人工智能服务器产品集采:规模为2000台,总限价9亿元

安稳与你 提交于 2020-02-27 12:10:02
  C114 讯 2 月 17 日消息(九九)中国移动今日发布 2020 年至 2021 年人工智能服务器产品集中采购招标公告,招标内容为 1000 台 V1(推理型),1000 台 V2(训练型),共计 2000 台。   本项目不划分标包:原则上中标人数量为 3 个。若中标人数量为 3 个,每个中标人对应的分配份额依次为:第 1 名 50%:第 2 名 30%:第 3 名 20%;若中标人数量为 2 个,每个中标人对应的分配份额依次为:第 1 名 70%、第 2 名 30%;若中标人数量为 1 个,中标人分配份额为:100%;   本项目设置最高投标限价,V1(推理型)产品投标总价(不含税)不高于 250,000,000.00 元人民币;V2(训练型)产品投标总价(不含税)不高于 650,000,000.00 元人民币。投标人产品投标报价高于最高投标限价的,其投标将被否决。 来源: oschina 链接: https://my.oschina.net/u/4436414/blog/3168030

Java工程师必备

笑着哭i 提交于 2020-02-27 12:03:04
Java工程师必备 JAVA基础扎实,熟悉JVM,熟悉网络、多线程、分布式编程及性能调优 精通Java EE相关技术 熟练运用Spring/SpringBoot/MyBatis等基础框架 熟悉分布式系统相关技术 熟悉MySQL及SQL优化 高并发、高可用、微服务、容器化等开发经验 熟悉JVM原理,精通io、多线程,精通分布式、缓存、消息等机制 熟练使用和配置Tomcat应用服务器 掌握Eclispse,Maven,SVN,GIT等软件开发工具的环境搭建和使用 熟悉H5、CSS、JS等前端技术,熟悉BootStrap、Jquery等常用框架的一种 掌握SQL,至少熟悉MariaDB(MySQL)/Oracle数据库中的一种 客户端与服务端数据接口封装,独立调试各类数据接口,如支付接口,短信接口,等各类第三方数据接口对接 熟悉分布式缓存、消息中间件、RPC框架、负载均衡、安全防御等技术 有大数据处理经验,包括hadoop/storm/spark/hbase/ELK等 对RPC或GRPC有一定的工作经验 熟悉Linux环境以及操作 熟练掌握Java开发语言或Python,有服务端开发经验,熟悉多线程、高并发等常用开发技术 熟悉JS、Jquery,掌握HTTP/HTTPS协议,有Web前台开发经验优先 有云计算及大数据领域开发经验优先 结言 好了,欢迎在留言区留言,与大家分享你的经验和心得

JavaEE开发之SpringMVC中的自定义消息转换器与文件上传

安稳与你 提交于 2020-02-27 08:51:13
SpringMVC中的自定义消息转发器(HttpMessageConverter)和SpringMVC中的文件上传。消息转发器在日常开发中是比较常用的,其可以灵活的将用户发过来的消息按照自定义的格式进行解析,然后将解析的数据映射成Model,下方会给出自定义消息转发器的详细内容。聊完消息转发器,我们还会聊一下Spring中MVC的文件上传的操作。详细的内容请看下方介绍。 一、自定义消息转发器 接下来我们将实现自定义消息转发器,在自定义消息转发器时,我们需要基础Springframework中的AbstractHttpMessageConverter这个抽象类。这个抽象类中就定义着我们自定义消息转发器所需要的方法。我们将这些方法进行重写就好。 1.创建消息转发器的类 下方就是我们创建自定义消息转发器的过程,我们将其命名为CustomMessageConverter类,如下所示:    接下来我们就来聊一下CustomMessageConverter中的内容,下方代码段就是CustomMessageConverter类中的部分内容。在继承类时,我们将泛型指定为StudentModel类,然后在该类中的构造器中,我们创建了一个新的媒体类型。该媒体类型就是我们自己定义的,并且指定了相应的编码方式。在重写的support()方法中