空间升级维护怎么解除老恢复迅雷离线种子失败咋办办啊能自动解开单封吗

首先注册商户账户,这个属于非技术流程 按步骤操作就可以了,不细讲了 首先需要创建一个应用 https://developer.paypal.com/developer/applications/ 在这里创建一个应用 然后可以获得 clientId 和 clientSecret ,在下面会用到,接下来是创建一个测试账号,同样是下面会用到 https://developer.paypal.com/developer/accounts/ 下来来讲PayPal的代码嵌入: 有三种方式 1.Server Side Express Checkout using REST 2.Client Side Express Checkout using REST 3.Express Checkout using Braintree SDK 因为我们有现有的支付体系,只是想额外支持PayPal这种支付方式,所以我们就采用了第一种方式 先说一下页面部分的实现 &!DOCTYPE html&
&meta http-equiv="X-UA-Compatible" content="IE=edge" /&
&meta name="viewport" content="width=device-width, initial-scale=1"&
&script src="https://www.paypalobjects.com/api/checkout.js"&&/script&
&div id="paypal-button-container"&&/div&
paypal.Button.render({
env: 'sandbox', // sandbox | production
// Show t...
什么是SVN SVN全称:Subversion,是一个开放源代码的版本控制系统 Svn是一种集中式文件版本管理系统。集中式代码管理的核心是服务器,所有开发者在开始新一天的工作之前必须从服务器获取代码,然后开发,最后解决冲突,提交。 集中式文件版本控制器:将所有的文件都交由服务器来进行统一的管理。既然是有服务器的,那么就需要联网进行操作了。 为什么要使用SVN 我们写一个项目一般都是一个团队来写,如果我们没有用SVN的话,那么我们只能在团队中互相拷贝对方的代码来完成我们的项目。 SVN还有如下的好处: 轻松比较不同版本间的细微差别【修改了代码,就有版本号,还能知道修改前后的数据】 及时了解团队中其他成员的进度【如果没有把代码提交到服务器中,就是做得比较慢了】 广域网共享【连上局域网就可以代码共享了】 协同工作,大大提高团队工作效率 快速了解SVN 配置库 在SVN中有配置库这么一个概念,那它是什么东东呢?? 它储存所有的数据,配置库按照文件树形式储存数据 包括目录和文件 任意数量的客户端可以连接到配置库,读写这些文件.并且可以添加读写日志,有权限的用户很方便的看到这些修改 工作副本 我们从上面已经知道了,我们可以从配置库中得到想要的文件。那...
详细解读阿里巴巴开源技术,包括框架、组件、引擎、数据库/存储、平台/系统、解决方案、工具、中间件、Web Sever、设计等十大类73款!
本文从 Tomcat 源码的角度深入分析了在FORM表单中如果直接提交中文,而默认不做任何编码的设置,那么在结果页中将会出现中文乱码。分析了中文乱码出现的本质原因在于一头一尾和中间环节的编码不一致导致的。并给出了解决中文乱码的几种途径。如果你从源码的角度了解了为什么会出现乱码,以后遇到任何乱码的问题,在你面前将不再是问题。
在帮助小白解决了很多开源使用的问题后,我总结了小白的不科学的提问方式,以遭受9种伤害夸张的手法一一道来
dart语言一直不愠不火,默默成长,但是随着谷歌的慢慢发力,这种语言前景越来越光明,它属于全栈式的语言,既能前端,也能后端。 我今天无聊开始研究下这门语言,dart算是什么语言呢?它可以编译成为JS,因此可以成为WEB开发的选择,同时在本地它也可以拥有虚拟机,也能开发服务器之类的程序。 在目前多如毛的语言中,任何一门语言出来面世,都要和其他语言做比较,看看它有什么优势,有什么样的用途。 先看看运行效率。 目前执行效率第一的是C/C++(对于我们这种从事互联网的人来说,相信极少人去用汇编),其次RUST,再次是GO,OBJECT-C等,这是大家公认的,紧随其后的是JAVA、C#、或者delphi之类的等等。 拿JAVA做比较最好,因为JAVA语言在目前的互联网中,用途极为广泛:网站服务器,游戏服务器、也能做科学数据分析,更能做出高性能的数据队列缓存,以上这么多成功的例子中,说明它的运行速度极为不平凡。 至于安卓为什么那么卡,那是因为与苹果的对比把安卓给踢下去了,造成不好的印象,仔细想想,当年苹果手机6000元以上,而安卓手机那时候不过千元左右,甚至很多人购买几百元的安卓手机,价格相差这么大,安卓想不卡都不行,安卓一卡,结果JAVA背上了黑锅。 1:整数计...
虽然国内大厂(豆瓣、微信公众平台 等)已支持 Google 推出的 WebP 图片格式来进一步优化性能,但其它多数软件平台还是只支持 BMP、GIF、JPEG、PNG 等经典格式,有时临时找个支持 WebP 的图片格式转换器也挺麻烦的,不如抄起键盘就是一把梭~
外键创建时默认属性是MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION。这里需要深入思考一下NO ACTION这部分。 首先,该部分参数有三种: 1)NO ACTION - 不允许删除/更新,但是在事务中延迟报错。 2)RESTRICT - 不允许删除/更新,直接报错。 3)CASCADE - 允许级联删除/更新。
在这里,CASCADE最好理解,是级联的意思,如删除父表数据时子表关联数据也存在则会级联删除。 NO ACTION和RESTRICT对于操作都会进行检查,如果不符合约束则会报ERROR并退出,数据不变,唯一的区别是NO ACTION可以设置约束在事务中延迟生效,而RESTRICT不允许。个人理解应该是处于事务性能的考虑,假设在一个大事务中,定义的是RESTRICT,那么执行每一条语句都回去校验,如果整个事务中没有关联删除的错误存在,那必然会导致时间的浪费;但是如果此时使用NO ACTION,事务整个过程都在平滑处理,到最后提交时,如果存在级联约束,那么久报错退出,如果不存在久直接提交整个事务,此时是最省时的。另外事务具有原子性,针对一个事务做此处理也说的过去。...
最近我区块链技术非常火,区块链优势是去中心化,数据不可撰改,但你仔细想想自己需求,真的需要区块链吗?还是需要区块链上的一些特性?例如数据不可撰改。 区块链并非能解决所有问题,虽然他也算是一种数据库,它能解决问题十分有限,它的数据管理和查询能力还打不到 NoSQL 的水平,更别提 SQL 的复杂应用。所以在实际的应用中,区块链不能替代数据,只能互补。
每周为您推送最有价值的开源技术内参!
### 一、背景
在学习Spring Cloud过程中,使用了Eureka发现服务,但是发现EurekaServer的界面全英文,并且和我们现在页面风格不符,所以尝试找到汉化和修改样式的方法。网上的方法多,但是大多都是,下载jar替换文件,这样做的话,需要把jar修改后重新上传到私服,更新也是比较麻烦 ### 二、主要思路
方式还是采用覆盖但是,不是修改jar包,而是将jar中文件复制到新项目中,放到resource文件下,通过打包进行文件覆盖 ### 三、实现过程 1. 解压 spring-cloud-netflix-eureka-server.jar 2. 将 static 和 templates 两个文件夹复制到resource中 3. 修改ftl文件 和 css 文件 ### 四、代码实现 Pom 文件 4.0.0 com.demodashi eureka-server-hans 1.0-SNAPSHOT Eureka 服务器 Edgware.SR2 org.springframework.boot spring-boot-starter-parent 1.5.9.RELEASE org.springframework.boot spring-boot-starter-web org.springframework.cloud spring-cloud-starter-eureka-server org.springframework.boot spring-boot-maven-plugin org.springframework.cloud spring-cloud-dependencies ${spring.cloud.version} pom import 修改ftl 和 css 首页 启动时起最后1000条 ...
SpringDataJPA是Spring Data的一个子项目,通过提供基于JPA的Repository极大的减少了JPA作为数据访问方案的代码量,你仅仅需要编写一个接口集成下SpringDataJPA内部定义的接口即可完成简单的CRUD操作。
Autowired注解 Autowired顾名思义,表示自动注入,如下是Autowired注解的源代码: @Target({ElementType.CONSTRUCTOR, ElementType.METHOD, ElementType.PARAMETER, ElementType.FIELD, ElementType.ANNOTATION_TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface Autowired {
* Declares whether the annotated dependency is required.
* &p&Defaults to {@code true}.
boolean required()
} 从Autowired的实现可以看到,Autowired可以用于类的构造方法,类的字段,类的方法以及注解类型上,但是Autowired不能用于类上面。 关于Autowired注解,有如下问题需要解决:
1. Autowired作用在不同的范围上(构造方法,字段、方法)上,它的装配策略如何,按名称还是类型?
2. 为构造方法,字段和方法添加Autowired注解之后,谁来解析这个Autowired注解,完成装配
3. 装配的bean从何处而来,是在Spring的xml文件中定义的bean吗? 从Autowired的javadoc开始
从Autowired的javadoc中得到如下信息
1. AutowiredAnnotationBeanPostProcessor负责扫描Autowired注解,然后完成自动注入
2. 可以对私有...
& 通过之前的[《消息驱动的微服务(入门)》](http://blog.didispace.com/spring-cloud-starter-dalston-7-1/)一文,相信很多朋友已经对Spring Cloud Stream有了一个初步的认识。但是,对于[《消息驱动的微服务(核心概念)》](http://blog.didispace.com/spring-cloud-starter-dalston-7-2/)一文中提到的一些核心概念可能还有些迷糊,下面我们将详细的来学习一下这些概念。本文我们就来学习和使用一下“消费组”这一概念。 ## 使用消费组实现消息消费的负载均衡 通常在生产环境,我们的每个服务都不会以单节点的方式运行在生产环境,当同一个服务启动多个实例的时候,这些实例都会绑定到同一个消息通道的目标主题(Topic)上。 默认情况下,当生产者发出一条消息到绑定通道上,这条消息会产生多个副本被每个消费者实例接收和处理,但是有些业务场景之下,我们希望生产者产生的消息只被其中一个实例消费,这个时候我们需要为这些消费者设置消费组来实现这样的功能,实现的方式非常简单,我们只需要在服务消费者端设置`spring.cloud.stream.bindings.input.group`属性即可,比如我们可以这样实现: - 先创建一个消费者应用`SinkReceiver`,实现了`greetings`主题上的输入通道...
本文首发于个人微信公众号《andyqian》,期待你的关注~ 引言
熟悉Java的童鞋,应该对OOM比较熟悉。该类问题,一般都比较棘手。因为造成此类问题的原因有很多。今天就分享一个非常有意思的案例。(说实话。这个问题,我也是前两天才遇到的。花了不少时间来分析。觉得非常有意思,记录在此。大神勿喷!) 问题场景 重启应用时,调试到给MQ发消息时。有如下错误: Exception in thread "Thread-4" java.lang.OutOfMemoryError: unable to create new native thread
at java.lang.Thread.start0(Native Method)
at java.lang.Thread.start(Thread.java:717)
at java.util.concurrent.ThreadPoolExecutor.addWorker(ThreadPoolExecutor.java:957)
at java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:1378)
at org.apache.activemq.thread.PooledTaskRunner.wakeup(PooledTaskRunner.java:81)
at org.apache.activemq.transport.failover.FailoverTransport.reconnect(FailoverTransport.java:757)
at org.apache.activemq.transport.failover.FailoverTransport.start(FailoverTransport.java:344)
本文首发于个人微信公众号《andyqian》,期待你的关注! 前言
今天我们一起来做个简单有趣的实验。熟悉Java的童鞋,对ScheduledExecutorService 类应该不陌生。不记得的童鞋,先回忆下。 实验一 我们先看下下面这段简单的代码。如下: public class ExecutoryServiceTest {
private static ScheduledExecutorService executorService = Executors.newScheduledThreadPool(10);
public static void main(String[] args){
executorService.scheduleAtFixedRate(new Runnable() {
public void run() {
int[] array
= new int[1];
System.out.println("&hello world&");
System.out.println(array[1]);
}},0,2, TimeUnit.SECONDS);
} 够简单了吧。意思我就不再阐述了。看完别急,我们先回答下面这个问题。 问题一: 请问:上面一共打印了多少个&hello world&。 实验二
看到此处的童...
## 又产生的问题 自从上次做过优化之后,貌似程序跑的还行,但是,最近发现日志中有报这样的错: ```java java.lang.IllegalStateException: The remote endpoint was in state [TEXT_PARTIAL_WRITING] which is an invalid state for called method at org.apache.tomcat.websocket.WsRemoteEndpointImplBase$StateMachine.checkState(WsRemoteEndpointImplBase.java:1224) at org.apache.tomcat.websocket.WsRemoteEndpointImplBase$StateMachine.textPartialStart(WsRemoteEndpointImplBase.java:1182) at org.apache.tomcat.websocket.WsRemoteEndpointImplBase.sendPartialString(WsRemoteEndpointImplBase.java:222) at org.apache.tomcat.websocket.WsRemoteEndpointBasic.sendText(WsRemoteEndpointBasic.java:49) at org.springframework.web.socket.adapter.standard.StandardWebSocketSession.sendTextMessage(StandardWebSocketSession.java:203) at org.springframework.web.socket.adapter.AbstractWebSocketSession.sendMessage(AbstractWebSocketSession.java:101) ``` 这是为啥呢?不是同一个 session 都已经做同步处理了么? 仔细看这里,跟之前的报错不...
1 概述 Jenkins是一个Java语言编写的开源的持续集成工具,它的前身为Hudson,使用它可以进行项目的自动编译、测试与发布,这极大的减轻了团队之间的繁琐重复的工作,从而加快了整个项目的交付进度。 jenkins官方wiki:https://wiki.jenkins.io/display/JENKINS/Use+Jenkins 2 安装Jenkins
2.1 安装JDK (1)安装包:jdk-7u80-linux-x64.rpm (2)解压安装包 $ rpm -ivh jdk-7-linux-x64.rpm (3)环境变量配置:vi /etc/profile JAVA_HOME=/usr/java/jdk1.7.0_80
JRE_HOME=/usr/java/jdk1.7.0_80/jre
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
export JAVA_HOME JRE_HOME PATH CLASSPATH 2.2 安装Maven (1)安装包:apache-maven-3.5.2-bin.tar.gz (2)解压安装包 $ tar -zxvf apache-maven-3.5.2-bin.tar.gz -C /usr/local/
(3)配置maven的环境变量 2.3 安装Jenkins 这里有两种方式 方式一:直接下载jenkins.war包 运行jenkins.war的两种方式 (1)通过jenkins内建的容器运行 java -jar jenkins.war (2)通过独立的tomcat/jboss容器运行 方式二:通过yum安装(这里选择安装稳定...
公司某项目网站接入PC端扫码支付(微信和支付宝),代码全部流程已经调通
通过统计数据库中的1000多个项目,我们发现在 JavaScript 中最常出现的错误有10个。下面会向大家介绍这些错误发生的原因以及如何防止。 对于这些错误发生的次数,我们是通过收集的数据统计得出的。Rollbar 会收集每个项目中的所有错误,并总结每个错误发生的次数,然后通过各个错误的特征进行分组。 下图是发生次数最多的10大 JavaScript 错误:
下面开始深入探讨每个错误发生的情况,以便确定导致错误发生的原因以及如何避免。
Uncaught TypeError: Cannot Read Property 这是 JavaScript 开发人员最常遇到的错误。当你读取一个属性或调用一个未定义对象的方法时,Chrome 中就会报出这样的错误。 导致这个错误发生的原因有很多,常见的一种情况是在渲染 UI 组件时,不正确地初始化状态。我们来看一个真实的应用程序中发生这种情况的例子。 class Quiz extends Component {
componentWillMount() {
axios.get('/thedata').then(res =& {
this.setState({items: res.data});
render() {
{this.state.items.map(item =&
&li key={item.id}&{item.name}&/li&
& 原文地址如下 http://www.yiiframework.com/news/165/yii-2-0-14-is-released (英文版) **翻译中文内容如下,翻译参与人员 google翻译参与99% 阿北参与1%,鉴于水平有限,有的地方可能有点绕口,但是整体理解是没问题的。** 我们非常高兴地宣布发布Yii Framework 2.0.14版。 请参阅http://www.yiiframework.com/download/上的说明安装或升级到此版本。 这是一个次版本,其中包含一百多个增强功能和bug修复,包括安全修复。这也是包含功能增强的最后一个2.0.x版本,接下来我们将专注于2.1分支的开发,2.0版本将只进行bug修复。在2.1版本发后时我们也将给出每个分支的时间表。 该版本有一些细微的变化可能影响你正在运行的yii2程序,所以在升级前务必仔细阅读 [UPGRADE.md](https://github.com/yiisoft/yii2/blob/2.0.14/framework/UPGRADE.md) 文件。 感谢所有为这个框架贡献力量的Yii社区成员。 我们一起做了! 您可以通过**star**或**watch** yii2的GitHub项目来关注开发进度。还有许多活跃的yii社区,所以如果您需要帮助或想分享您的经验,请随时加入。 由于**yii2.1**正在开发中,因此请确保您的composer.json中有一个版本限制,这样它允许自动安装最新版本,直到下...
2018全球人工智能技术大会(GAITC)将在5月19日-20日的北京国家会议中心举办,本次大会由中国人工智能学会领衔,李德毅、姚期智等院士担任大会主席,包括微软、京东、搜狗、Skype等企业的众多国际一流人工智能专家也会亲临现场!
WebService介绍 首先我们来谈一下为什么需要学习webService这样的一个技术吧.... 问题一 如果我们的网站需要提供一个天气预报这样一个需求的话,那我们该怎么做????? 天气预报这么一个功能并不是简单的JS组件就能够实现的,它的数据是依赖数据库分析出来的,甚至需要卫星探测..我们个人建站是不可能搞这么一个数据库的吧。 那么既然我们自己干不了,我们可以去找别人吗???我们从搜索引擎搜索,可以发现很多提供天气预报的网站,但是它返回的是一个网页,而我们仅仅需要的是对应的数据! 我们可能就在想,我们能不能仅仅只要它返回的数据,而并不是经过加工处理后返回的网页呢?? 于是乎,webService就诞生了,webservice就是一个部署在Web服务器上的,它向外界暴露出一个能够通过Web进行调用的API。也就是说:当我们想要获取天气预报的信息,我们可以调用别人写好的service服务,我们调用就能够得到结果了! 问题二 可是我们写网站主流的就有好几个平台:Java、.net、PHP等等,那么部署在Web服务器上的服务器也就是webserice怎么能够就让我们不同的平台都能够调用呢?? 我们知道java、.net这样的平台他们语言的基本数据类型、复杂数据类型就可能不一样,那么怎么...
### **_0x00 前言_** 社区大佬:“交易是操作区块链的唯一方式。” ### **_0x01 交易类型_** 在NEO中,几乎除了共识之外的所有的对区块链的操作都是一种“交易”,甚至在“交易”面前,合约都只是一个小弟。交易类型的定义在Core中的TransactionType中: 源码位置: neo/Core/TransactionType ``` /// /// 用于分配字节费的特殊交易 /// [ReflectionCache(typeof(MinerTransaction))] MinerTransaction = 0x00, /// /// 用于分发资产的特殊交易 /// [ReflectionCache(typeof(IssueTransaction))] IssueTransaction = 0x01, [ReflectionCache(typeof(ClaimTransaction))] ClaimTransaction = 0x02, /// /// 用于报名成为记账候选人的特殊交易 /// [ReflectionCache(typeof(EnrollmentTransaction))] EnrollmentTransaction = 0x20, /// /// 用于资产登记的特殊交易 /// [ReflectionCache(typeof(RegisterTransaction))] RegisterTransaction = 0x40, /// /// 合约交易,这是最常用的一种交易 /// [ReflectionCache(typeof(ContractTransaction))] ContractTransaction = 0x80, /// /// 投票合约 //votingDialog /// [ReflectionCache(typeof(StateTransaction))] StateTran...
1.两个服务器通过同步session实现session共享 优点:配置简单 缺点:如果机器多了,就会出现大量的网络传输,甚至容易引起网络风暴,导致系统崩溃,只能适合少数的机器。 2.将session存储在某个介质上、比如数据库上或者缓存服务器上,进行统一管理。
下面是一个springboot+springSession+redis共享的列子
&?xml version="1.0" encoding="UTF-8"?&
&project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"&
&modelVersion&4.0.0&/modelVersion&
&groupId&com.sumei&/groupId&
&artifactId&login&/artifactId&
&version&0.0.1-SNAPSHOT&/version&
&packaging&jar&/packaging&
&name&login&/name&
&description&Demo project for Spring Boot&/description&
&groupId&org.springframework.boot&/groupId&
&artifactId&spring-boot-starter-parent&/artifactId&
&version&1.5.10.RELEASE&/version&
&relativePath/...
以下是一些 Python 编写的用来解析和操作特殊文本格式的库,希望对大家有所帮助。 1、Tablib Tablib 是一个用来处理与表格格式数据有关的 Python 库,允许导入、导出、管理表格格式数据,并具备包括切片、动态列、标签和过滤,以及格式化导入和导出等高级功能。 Tablib 支持导出/导入的格式包括:Excel 、JSON 、YAML 、HTML 、TSV 和 CSV ,暂不支持 XML 。 &&& data = tablib.Dataset(headers=['First Name', 'Last Name', 'Age'])
&&& for i in [('Kenneth', 'Reitz', 22), ('Bessie', 'Monke', 21)]:
data.append(i)
&&& print(data.export('json'))
[{"Last Name": "Reitz", "First Name": "Kenneth", "Age": 22}, {"Last Name": "Monke", "First Name": "Bessie", "Age": 21}]
&&& print(data.export('yaml'))
- {Age: 22, First Name: Kenneth, Last Name: Reitz}
- {Age: 21, First Name: Bessie, Last Name: Monke}
&&& data.export('xlsx')
&censored binary data&
&&& data.export('df')
First Name Last Name
21 2、Openpyxl Openpyxl 是一个用于读写 Excel 2010 xlsx / xlsm / x...
这段时间项目组内想要引入Kubernetes,作为第二代容器调度引擎,故最近在系统的学习Kubernetes。整理了一些学习笔记,心得,放到博客中,一来记录自己的学习经过,二来看能否帮到有需要的同学。详情见下: 1、Kubernetes核心概念总结——介绍基础架构、Pod、RC、Job、Service、Deployment等。 2、Centos7部署Kubernetes集群——基于Centos7,yum安装K8s,并配置集群,最后部署了容器覆盖网络——Flannel。 3、基于kubernetes集群部署DashBoard——基于上一篇部署的集群,搭建了DashBoard,其中介绍了一些众所周知的坑,比如google镜像国内无法下载。 4、为Kubernetes集群部署本地镜像仓库——针对上一篇中的镜像坑,给出部署本地仓库的操作流程。 5、基于Kubernetes集群部署skyDNS服务——继续搭建Kubernetes中的服务注册发现系统:SkyDNS。 6、基于Kubernetes集群部署完整示例——Guestbook——搭建了后端自组集群、服务注册;前端通过服务发现找到后端的完整用例——GuestBook 7、Kubernetes与容器设计模式——学习容器设计模式过程中,对一些网络资料的整理 8、Kubernetes资源管理 9、Kubernetes应用健康检查
10、Kubernetes容器上下文环境 11、Kubernetes外挂配置管理...
Elixir Go 多方面对比
OOM 内存泄漏 GC overhead limit excceded
大吉大利,今晚吃鸡!
SecondaryNameNode通知NameNode开始做CheckPoint,并且通过远程RPC调用NameNode的rollEditLog()方法来建立临时日志文件。SecondaryNamgeNode从NameNode下载镜像和日志文件,并合并。将合并后的镜像上传到NameNode。SecondNameNode通过远程RPC调用NameNode的rollFSImage()方法,用新的镜像和日志文件代替旧文件,通知NameNode结束CheckPoint。
拓展词库章节分三篇文章介绍 1:手动添加热词文件方式 2:配置http请求,动态热词形式 3:热词更新后,如何索引重建
只是个赚小钱的方法哈,想一夜暴富别进,这个毕竟不是传销。
```shell ets Jan 8 2013,rst cause:1, boot mode:(3,6) load 0x, len 2592, room 16 tail 0 chksum 0xef load 0x, len 0, room 8 tail 0 chksum 0xef load 0x, len 0, room 0 tail 0 chksum 0xef csum 0xef csum err ets_main.c ``` ## 起因 最近在做智能硬件相关的东西,手里有个ESP8266-F芯片,于是就按官方的文档开始了[2a-esp8266-sdk_getting_started_guide_cn.pdf](https://www.espressif.com/sites/default/files/documentation/2a-esp8266-sdk_getting_started_guide_cn.pdf) ## 芯片资料 模块型号示意图 ![输入图片说明](https://static.oschina.net/uploads/img/71137_PGzg.png "在这里输入图片标题") 模块管脚定义示意图 ![输入图片说明](https://static.oschina.net/uploads/img/71137_PGzg.png "在这里输入图片标题") GPIO模式定义 ![输入图片说明](https://static.oschina.net/uploads/img/71239_ATWU.png "在这里输入图片标题") 参考手册,GPIO15接地,GPIO2接3.3V,使能脚EN拉高,然后控制GPIO0的高低电平进入烧录模式还是运行模式,Flash Boot模式就是正常运行模式。 & 关于如何生成user1.bin和u...
Spring Security是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架。它提供了一组可以在Spring应用上下文中配置的Bean,充分利用了Spring IoC,DI(控制反转Inversion of Control ,DI:Dependency Injection 依赖注入)和AOP(面向切面编程)功能,为应用系统提供声明式的安全访问控制功能,减少了为企业系统安全控制编写大量重复代码的工作。
一、JVM内存模型
内存空间(Runtime Data Area)中可以按照是否线程共享分为两块,线程共享的是方法区(Method Area)和堆(Heap),线程独享的是Java虚拟机栈(Java Stack),本地方法栈(Native Method Stack)和PC寄存器(Program Counter Register)。具体参见下图: 1.虚拟机栈: 每个线程有一个私有的栈,随着线程的创建而创建。栈里面存放着一种叫做“栈帧”的东西,每个方法会创建一个栈帧,栈帧中存放了局部变量表(基本数据类型和对象引用)、操作数栈、方法出口等信息。栈的大小可以固定也可以动态扩展。当栈调用深度大于JVM所允许的范围,会抛出StackOverflowError的错误,不过这个深度范围不是一个恒定的值,我们通过下面这段程序可以测试一下这个结果:
// 栈溢出测试源码
package com.paddx.test.
* Created by root on 2/28/17.
public class StackErrorMock {
private static int index = 1;
public void call() {
public static void main(String[] args) {
StackErrorMock mock = new StackErrorMock();
mock.ca...
首先job client向ResourceManager提交执行请求,ResourceManage接收到job请求之后,生成一个Job ID,并将Job ID和staging工作目录等信息返回给job client。job client把资源jar等拷贝到HDFS的staging工作目录(hdfs/tmp/xxx/yarn-staging/JobID。此时,ResourceManager会把job放入工作队列。NodeManage从ResourceManager队列中领取任务,ResourceManager会根据job和NodeManager情况,计算出资源大小,并创建Container。随后创建MRAppMaster运行在Container上。MRAppmaster会向ResourceManager注册,注册完之后在yarn-child上创建Map,Reduce task任务进程。Map和Reduce运行完之后,ResourceManager会注销APPMaster进程。
本文来自网友“owen”的分享,email:wang. 1、前言
携程 Apollo 配置中心 学习笔记, Windows 系统搭建基于携程Apollo配置中心分布式模式, 在此基础上,介绍如何使用阿波罗整合zuul实现动态路由。 2、项目搭建 2.1 创建Spring Boot项目apollo-zuul
apollo-zuul项目用的是Eureka作为服务注册与发现,因此这里我加入了Eureka Client的依赖,同时需要加入zuul网关的依赖实现微服务的路由
pom.xml文件加入以下依赖 &dependencies&
&dependency&
&groupId&org.springframework.cloud&/groupId&
&artifactId&spring-cloud-starter-eureka&/artifactId&
&/dependency&
&dependency&
&groupId&com.ctrip.framework.apollo&/groupId&
&artifactId&apollo-client&/artifactId&
&version&0.10.0-SNAPSHOT&/version&
&/dependency&
&dependency&
&groupId&org.springframework.boot&/groupId&
&artifactId&spring-boot-starter-test&/artifactId&
&scope&test&/scope&
&/dependency&
&dependency&
首先讲一下我是如何走上Linux学习道路,刚接触计算机的时候,什么都不懂,只知道电脑分为硬件和软件,但是要细分起来,我就懵逼了,不知道如何选择,因为分的东西太多了,不知道走软件开发好,还是系统运维好。在我看了一本书以后我果断的选择了系统运维。接下来给大家分享下一下我是如何从一个Linux小白到精通的过程,这个过程说简单也简单,说难也难。大家都知道不及硅步何以至千里,不积小流何以成江海。不管干什么事都贵在坚持,你要想着你以后就靠这吃饭,此时不拼,何时拼。想学习Linux的还在等什么,相信自己学习Linux是个不错的选择。
其次再给大家说一下Linux的好处,Linux是一款开源的类Unix操作系统操作系统,基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。用户可以通过网络或其他途径免费获得,并可以任意修改其源代码。这是其他的操作系统所做不到的。正是由于这一点,来自全世界的无数程序员参与了Linux的修改、编写工作,程序员可以根据自己的兴趣和灵感对其进行改变,这让Linux吸收了无数程序员的精华,不断壮大。Linux的图形化界面也有着别具一格的特点...
永久更新地址:https://my.oschina.net/bysu/blog/.下载https://repo.continuum.io/archive/Anaconda3-5.1.0-Windows-x86_64.exe Anaconda 安装成功。 如果开始菜单和桌面没有快捷键,那么可以到安装目录下的Scripts中找到相关程序。 如果需要启动这个,那么双击运行anaconda-navigator.exe即可。 如果需要打开Anaconda Prompt,这个命令窗口,则需要先打开cmd窗口(如果不知道怎么打开cmd,请自行搜索引擎),然后把activate.bat文件通过鼠标拖到打开的cmd窗口里面,松开鼠标后,通过cd命令切换至activate.bat所在目录。步骤详见下图:
如果开始菜单和桌面有快捷键,那么不用理会上面的操作。 接下来需要设置 Anaconda 仓库镜像,因为默认连接的是国外镜像地址,下载速度比较慢,我们把镜像地址改为清华大学开源软件镜像站,打开 Anaconda Prompt, 输入: conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --set show_channel_urls yes 2.安装 TensorFlow 继续在 Anaconda Prompt 窗口输入: conda create -n tensorflow python=3.5 按回车。 表示创建 TensorFlow 依赖环境,TensorFlow 目前不支持Python3...
将输出信息格式化排版。
int random(){
i=example()//该函数为给定的函数
j=example()
while(true){
if(i==0&&j==1){
}else if(i==1&&j==0){
转转作为国内领先的二手电商交易平台,全平台交易额较2016年增幅超过200%达到210.64亿元,同时平台交易订单量达5698万,同比2016年增长了269.76%,欢迎对技术执着、对电商有兴趣的同学加入转转,一起探索技术和商业的边界。现诚招各类工程师,欢迎各位同学推荐或者投递简历。 环境福利: 季度奖、年终奖、六险一金、氛围活跃、业务高速增长 办公地址: 北京海淀区西小口路东升科技园b-2楼6层(地铁 8 号线西小口C口出) 投递邮箱: decli#qq.com(请将 # 改成 @) ★★★★★ 部门负责人直招,最快半天面完所有流程。 ★★★★★ 欢迎各位同学自荐或者推荐加入转转,简历符合要求第一时间通知面试。
1、高级大数据 BI 开发工程师【20k-40k/月】 【1、岗位职责】 1、基于海量日志及 hadoop 生态圈相关组件,开发大数据分析平台的后台服务,支持部门的数据接入、落地,统计、分析业务; 2、构建基于spark/storm的实时数据处理平台,支撑上层业务使用,如:数据监控、日报展现、统计分析、接口调用等; 3、负责数据仓库及数据体系化建设,构建敏捷BI平台,快速支持产品运营统计分析需求,释放rd人力; 4、高并发、海量数据场景下的数据接入基础服务、工具研发。 【2、任职...
详细解读阿里巴巴开源技术,包括框架、组件、引擎、数据库/存储、平台/系统、解决方案、工具、中间件、Web Sever、设计等十大类73款!
你真的是一个Kotlin开发者吗?
  社区中并不缺少有关软件工程师职业发展的文章,甚至可以说是泛滥。很多人都能在这个话题上说两句,三五年工作经验的编程老鸟也好,架构师也好,技术 VP 也好,CTO 也好,都有各自的看法与实践经验。没有哪一套方法是适用于所有人的,这一套软件工程师职业发展纲要,也不过是在你踽踽前行的路上,迷茫时可用来参考借鉴。你的核心竞争力,永远是你的自身实力。切记! 一、专业技能学习捷径 1、爱上你的编码神器   众所周知,软件工程师要做的工作就是写代码,准确地说,你的目标应该是写出满足业务需求并且无法找出 Bug 的代码,而不是写一大堆没用的文字。既然你的任务是写出高质量的代码,那么你首先应该训练的就是打字速度,你需要掌握键盘盲打技能,甚至还要爱上你的“编码神器”,并做到将此工具的用法烂熟于心,闭上眼睛都能正确敲中你想要的快捷键。 2、熟悉底层技术原理   当你完全驾驭了计算机的输入设备以后,你需要进一步了解计算机的内部工作原理,不是让你把机器大卸八块,而是你需要全面了解计算机的组成结构与工作原理。如果你不是计算机科班出生也没关系,在网上买一本关于计算机组成原理的书自学即可。你无需做到精通,能全面了解即可,因为接下来你...
# 环境要求 1、Java SDK 1.8 [下载](http://www.oracle.com/technetwork/cn/java/javase/downloads/jdk8-downloads-2133151-zhs.html) 2、Eclipse IDE for Java EE Mars 2 (4.5.2) [下载](https://www.eclipse.org/downloads/packages/eclipse-ide-java-ee-developers/mars2) 3、Apache Maven 3.3+ [下载](https://maven.apache.org/download.cgi) 4、MySql 5.7+ [下载](https://dev.mysql.com/downloads/windows/installer/5.7.html) # 导入到Eclipse 1、检出JeeSite4源代码: ``` git clone https://gitee.com/thinkgem/jeesite4.git ``` 2、拷贝`web`文件夹,到你的工作目录(不包含中文和空格的目录)下,重命名为你的工程名,如:`jeesite-demo` 3、打开`pom.xml`文件,修改第13行,artifactId为你的工程名,如:`jeesite-demo` 4、导入到Eclipse,菜单 File -& Import,然后选择 Maven -& Existing Maven Projects,点击 Next& 按钮,选择第2步的`jeesite-demo`文件夹,然后点击 Finish 按钮,即可成功导入 5、这时,Eclipse会自动加载Maven依赖包,初次加载会比较慢(根据自身网络情况而定),若工程上有小叉号,请打开Problems窗口,查看具体错误内容,直到无错误为...
### ElasticSearch ``` 现有三台服务器[192.168.1.30, 192.168.1.31, 192.168.1.32],使用这三台服务器搭建ElasticSearch集群 ``` #### CentOS 使用 yum 安装 ###### 编辑 repo ``` vim /etc/yum.repos.d/elasticsearch.repo # 内容如下 [elasticsearch-6.x] name=Elasticsearch repository for 6.x packages baseurl=https://artifacts.elastic.co/packages/6.x/yum gpgcheck=1 gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch enabled=1 autorefresh=1 type=rpm-md ``` ###### 使用yum安装 ``` yum install elasticsearch ``` ###### 创建用户 ``` useradd elastic ``` ###### 修改权限 ``` # 数据 chown -R elastic:elastic /var/lib/elasticsearch # 日志 chown -R elastic:elastic /var/log/elasticsearch # 配置 chown -R elastic:elastic /etc/elasticsearch chown -R elastic:elastic /etc/sysconfig/elasticsearch # 指令 chown -R elastic:elastic /usr/share/elasticsearch ``` ###### 配置 ``` # 主节点 192.168.1.30 vim /etc/elasticsearch/elasticsearch.yml # 修改以下几项 cluster.name: etl_es node.name: node-30 node.master: true node.d...
### 1.虚拟环境 ``` tianshl:workspace tianshl$ mkdir server tianshl:workspace tianshl$ cd server/ tianshl:server tianshl$ virtualenv venv --python=python3 tianshl:server tianshl$ source venv/bin/activate ``` ### 2. 安装依赖 ``` (venv) tianshl:server tianshl$ pip install django (venv) tianshl:server tianshl$ pip install djangorestframework ``` ### 3. 创建项目 ``` (venv) tianshl:server tianshl$ django-admin.py startproject server (venv) tianshl:server tianshl$ tree server/ server ├── manage.py └── server ├── __init__.py ├── settings.py ├── urls.py └── wsgi.py ``` ### 4. 更新配置 ``` (venv) tianshl:server tianshl$ cd server/ (venv) tianshl:server tianshl$ vim server/settings.py # 1.修改 INSTALLED_APPS = ( ... 'rest_framework', ) # 2.添加 REST_FRAMEWORK = { # Use Django's standard `django.contrib.auth` permissions, # or allow read-only access for unauthenticated users. 'DEFAULT_PERMISSION_CLASSES': [ 'rest_framework.permissions.DjangoModelPermissionsOrAnonReadOnly' ] }...
## 更新model #### 需求 ``` 概览表增加"创建时间,修改时间,软删除" ``` #### 以往的方式 ###### 1. 修改model.jh, 在实体 Overview 中增加三个属性 ``` /** * 数据概览 -- 概览 */ entity Overview { id Long, ... /* 以下属性为新增的属性 */ /* 创建时间 */ createTime ZonedDateTime, /* 更新时间 */ updateTime ZonedDateTime, /* 是否删除 */ delFlag Boolean, } ``` ###### 2. 生成配置文件 ``` jhipster import-jdl model.jh ``` ###### 3. 运行项目使配置生效 ``` 运行项目时提示"Validation Failed",原因是配置文件的MD5值不同, 此时需要以下操作 1. 修改 DATABASECHANGELOG 表中相关记录的 MD5SUM 2. 在overview表中手动新增三个属性. ``` #### 现在的方式 ###### 1. 修改model.h, 在实体 Overview 中增加三个属性 ###### 2. 生成配置文件 ###### 3. 修改生成的配置文件 ``` src/main/resources/config/liquibase/changelog/15_added_entity_Overview.xml 将 changeSet中新增的三个column提取至新的changeSet中, 如下: 注意: changeSet的id不能与之前的相同 ``` ###### 4. 运行项目使配置生效 ``` 不需要手动修改MySQL,自动生效 ```...
# django ``` # 刚写的就不复制粘贴了 https://my.oschina.net/tianshl/blog/1611257 # 列一下目录结构 root@tianshl:~# cd server/ root@tianshl:~/server# tree server server ├── db.sqlite3 ├── manage.py └── server ├── __init__.py ├── settings.py ├── urls.py └── wsgi.py ``` # gunicorn ##### 安装 ``` pip install gunicorn ``` ##### 配置 ``` # 修改django项目的settings.py INSTALLED_APPS = [ ...... 'gunicorn', ] ``` ##### 运行 ``` root@tianshl:~# cd /root/server/server/ root@tianshl:~/server/server# gunicorn --pythonpath /root/server/venv/bin/python3 -w 3 -b 0.0.0.0:80 server.wsgi # 测试能否正常运行, 然后ctrl+c结束进程 ``` # supervisor ##### 安装 ``` pip install supervisor ``` ##### 配置 ``` # 默认配置 # 使用echo_supervisord_conf命令查看默认配置 root@tianshl:~# echo_supervisord_conf # 自定义配置 root@tianshl:~# mkdir /etc/supervisor root@tianshl:~# mkdir /etc/supervisor/conf.d root@tianshl:~# echo_supervisord_conf & /etc/supervisor/supervisor.conf root@tianshl:~# vim /etc/su...
### Logstash ##### 使用yum安装 ###### 编辑 repo ``` vim /etc/yum.repos.d/elasticsearch.repo # 内容如下 [elasticsearch-6.x] name=Elasticsearch repository for 6.x packages baseurl=https://artifacts.elastic.co/packages/6.x/yum gpgcheck=1 gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch enabled=1 autorefresh=1 type=rpm-md ``` ###### 安装 ``` sudo yum install logstash ``` #### 配置 Logstash ``` # 参考 https://www.elastic.co/guide/en/logstash/current/configuration-file-structure.html # input项配置源数据,此处为监听 "/log"目录下满足"insert.*.log"匹配的所有日志文件 # filter项过滤input输入的数据, "insert.*.log"中每条日志形式如:" | type | cid | src | eventId | reason", 所以使用" | "拆分每条日志 # output项是输出数据,此处为输出至ElasticSearch # 新建配置文件 insert.conf vim conf.d/insert.conf # 内容如下 input { file { path =& "/log/insert.*.log" } } filter { mutate{ split=&["message"," | "] add_field =& { "date" =& "%{[message][0]}" } add_field =& { "type" =& "%{[message][1]...
如何快速申请免费的阿里云服务器
### 写在开头 ``` 使用jhipster声明的OneToMany在One的一方DTO中是没有与Many的DTO的映射关系的, 为了在One的一方DTO中使用Many的DTO, 使用以下三步解决此问题。 ``` ### 步骤 ``` 1. OneDTO 中的"mark 1"处为自己写的一对多的关系, 此处变量名称不能与实体One中相应的变量名称一致,否则编译失败。 2. OneMapper 中的"mark 2"处 uses属性添加ManyMapper。 2. OneMapper 中的"mark 3"处使用@Mapping注解声明 Entity 转 DTO 的映射关系。 ``` ### Entity ``` @Entity @Table(name = "one") public class One { ... @OneToMany(mappedBy = "one") private Set manys = new HashSet&&(); ... public void setManys(Set manys) { this.manys = } public Set getManys() { } } @Entity @Table(name = "many") public class Many { ... @ManyToOne private O } ``` ### DTO ``` public class OneDTO { ... // mark 1 private Set manyDTOS = new HashSet&&(); ... public void setManyDTOS(Set manyDTOS) { this.manyDTOS = manyDTOS; } public Set getManyDTOS() { return manyDTOS; } } public class ManyDTO { ... private Long oneId; ... public...
### 新增Python3编译环境 ``` Tools & Build System & New Build System 将默认内容替换为: { "cmd": ["python3", "-u", "$file"], "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)", "selector": "source.python" } 保存为 Python3.sublime-build ``` ### 选中Python3环境 ``` Tools & Build System & Python3 ``` ### 使用Python3编译运行 ``` Ctrl + b ``` ### 可能遇到的问题 ##### 问题 ``` UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-1: ordinal not in range(128) ``` ##### 原因 ``` 默认是ascii编码但是输出中包含中文 ``` ##### 解决 ``` Preferences & Browse Packages & Users & Python3.sublime-build 修改配置文件, 配置文件中新增一条 "env": {"LANG": "en_US.UTF-8"} 修改后如下: { "cmd": ["python3", "-u", "$file"], "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)", "selector": "source.python", "env": {"LANG": "en_US.UTF-8"} } ```...
### 需求 ``` 对MySQL数据库中某个表的某个字段执行k-means算法,将处理后的数据写入新表中。 ``` ### 源码及驱动 ``` http://download.csdn.net/download/xiaobuding007/ ``` ### 源码 ```java import java.sql.*; import java.util.*; /** * @author tianshl * @version
上午11:13 */ public class Kmeans { // 源数据 private List origins = new ArrayList&&(); // 分组数据 private Map& // 初始质心列表 private L // 数据源 private String tableN private String colN /** * 构造方法 * * @param tableName 源数据表名称 * @param colName 源数据列名称 * @param cores 质心列表 */ private Kmeans(String tableName, String colName,List cores){ this.cores = this.tableName = tableN this.colName = colN } /** * 重新计算质心 * * @return 新的质心列表 */ private List newCores(){ List newCores = new ArrayList&&(); for(List v: grouped.values()){ newCores.add(v.stream().reduce(0, (sum, num) -& sum + num) / (v.size() + 0.0)); } Collections.sort(newCores); return newC } /...
每周为您推送最有价值的开源技术内参!
最近使用`consul`作为项目的服务注册与服务发现的基础功能。在塔建集群使用中遇到一些坑,下面一个个的记录下来。 ## consul集群多node consul集群的node也就是我们所说的consul实例。集群由多个node组成,为了集群的可用性,需要超过半数的node启用server。如5个node中起码3个启用server模式,3个node组成的集群就2个node启用server模式。 看到这里的时候你一定觉得没有什么问题呀,但是consul坑就是多。加入你的集群组成如下: ``` Node Address Status Type Build Protocol DC Segment BJ-MQTEST-01 10.163.145.117:8301 alive server 1.0.6 2 iget-topology-aliyun BJ-MQTEST-02 10.163.147.47:8301 alive server 1.0.6 2 iget-topology-aliyun BJ-TGO-01 10.163.145.110:8301 alive client 1.0.6 2 iget-topology-aliyun ``` 那么client可以使用上述的3个ip连接到consul集群,假设client A使用使用10.163.145.117注册了service,重启后使用地址10.163.145.110注册之前的service信息,此时你就会惊喜的发现,UI可以同时看到在同一个servicename下存在两个相同的serviceid。 这就是consul集群多node的坑,因为service底层虽然使用了KV存储,但是service的KEY与serviceid...
最近在学习Spring boot,写了个读写分离。并未照搬网文,而是独立思考后的成果,写完以后发现从零开始写读写分离并不难! 我最初的想法是: 读方法走读库,写方法走写库(一般是主库),保证在Spring提交事务之前确定数据源.
保证在Spring提交事务之前确定数据源,这个简单,利用AOP写个切换数据源的切面,让他的优先级高于Spring事务切面的优先级。至于读,写方法的区分可以用2个注解。 但是如何切换数据库呢? 我完全不知道!多年经验告诉我 当完全不了解一个技术时,先搜索学习必要知识,之后再动手尝试。
我搜索了一些网文,发现都提到了一个AbstractRoutingDataSource类。查看源码注释如下 /** Abstract {@link javax.sql.DataSource} implementation that routes {@link #getConnection()}
* calls to one of various target DataSources based on a lookup key. The latter is usually
* (but not necessarily) determined through some thread-...
这几年深度学习快速发展,在图像识别、语音识别、物体识别等各种场景上取得了巨大的成功,例如AlphaGo击败世界围棋冠军,iPhone X内置了人脸识别解锁功能等等,很多AI产品在世界上引起了很大的轰动。在这场深度学习革命中,卷积神经网络(Convolutional Neural Networks,简称CNN)是推动这一切爆发的主力,在目前人工智能的发展中有着非常重要的地位。 【问题来了】那什么是卷积神经网络(CNN)呢? 1、小白一下,什么是神经网络? 这里的神经网络,也指人工神经网络(Artificial Neural Networks,简称ANNs),是一种模仿生物神经网络行为特征的算法数学模型,由神经元、节点与节点之间的连接(突触)所构成,如下图:
每个神经网络单元抽象出来的数学模型如下,也叫感知器,它接收多个输入(x1,x2,x3...),产生一个输出,这就好比是神经末梢感受各种外部环境的变化(外部刺激),然后产生电信号,以便于转导到神经细胞(又叫神经元)。
单个的感知器就构成了一个简单的模型,但在现实世界中,实际的决策模型则要复杂得多,往往是由多个感知器组成的多层网络,如下图所示,这也是经典的神经网络模型,由输入层、隐含层、输出层构成。
人工神经网络可以映射任...
前言 前面已经学习了Struts2和Hibernate框架了。接下来学习的是Spring框架...本博文主要是引入Spring框架... Spring介绍 Spring诞生: 创建Spring的目的就是用来替代更加重量级的的企业级Java技术 简化Java的开发 基于POJO轻量级和最小侵入式开发 通过依赖注入和面向接口实现松耦合 基于切面和惯例进行声明式编程 通过切面和模板**减少样板式代码 ** 侵入式概念 Spring是一种非侵入式的框架... 侵入式 对于EJB、Struts2等一些传统的框架,通常是要实现特定的接口,继承特定的类才能增强功能 改变了java类的结构 非侵入式 对于Hibernate、Spring等框架,对现有的类结构没有影响,就能够增强JavaBean的功能 松耦合 前面我们在写程序的时候,都是面向接口编程,通过DaoFactroy等方法来实现松耦合
private CategoryDao categoryDao = DaoFactory.getInstance().createDao("zhongfucheng.dao.impl.CategoryDAOImpl", CategoryDao.class);
private BookDao bookDao = DaoFactory.getInstance().createDao("zhongfucheng.dao.impl.BookDaoImpl", BookDao.class);
private UserDao userDao = DaoFactory.getInstance().createDao("zhongfucheng.dao.impl.UserDaoImp...
面向各部门组织的技术分享活动,一起探讨、学习,愿能有所得。
WebSocket协议是基于TCP的一种新的网络协议。它实现了浏览器与服务器全双工(full-duplex)通信——允许服务器主动发送信息给客户端。 ——百度百科 目前唯一的问题是:不兼容低版本的IE
JVM Options 配置: -server -Xms512m -Xmx512m -XX:PermSize=128m -XX:MaxPermSize=256m **-Dfile.encoding=UTF-8** 启动IntelliJ IDEA配置: -Xms128m -Xmx750m -XX:ReservedCodeCacheSize=240m -XX:+UseConcMarkSweepGC -XX:SoftRefLRUPolicyMSPerMB=50 -ea -Dsun.io.useCanonCaches=false -Djava.net.preferIPv4Stack=true -XX:+HeapDumpOnOutOfMemoryError -XX:-OmitStackTraceInFastThrow **-Dfile.encoding=UTF-8**
一.认识自动化运维 传统运维效率低,大多工作人为完成 传统运维工作繁琐,容易出错 传统运维每日重复做相同的事情 传统运维没有标准化流程 传统运维脚本多,不能方便管理 自动化运维就是要解决上面所有的问题
二.常见自动运维工具 Pueppet (WWW.puppetlabs.com). 基于rubby开发,c/s架构,支持多平台,可管理配置文件,用户,cron任务,软件包,系统服等。分社区版 和企业版。企业版是收费版本,提供图形界面。
Saltstack (官网:httpps://saltstack.com), (文档docs.saltstack.com).
基于python开发,c/s架构,支持多平台,比puppet轻量,再远程执行命令时非常快捷,因为saltstack有一个东西叫做消息队列,举个例子,客户端和服务端,服务端就是中控中心,客户端就是管理客户机器,那些客户机很多,如果要执行一个命令,要是并行的话就会很快,并行就是把指令发送到每一台机器上去,同时运行就很快了。 配置和使用比puppet容易,能实现puppet几乎所有功能。
Ansible (www.ansible.com)
更加简洁的自动话运维工具,不需要在客户端上安装agent,基于python开发,可实现批量操作系统配置,批量程序部署,批量运行命令。...
我买的3.5寸触摸屏如下: 请对应硬件。 硬件安装: 将树莓派关机,断电,把屏幕插入树莓派相对应的端口 安装驱动 下载驱动到/boot文件 方法一: 将SD卡插到电脑上,然后将此文件下载后,放到SD卡根目录。 树莓派LCD驱动:171219,适用于-raspbian-jessie及之后版本的Raspbian(注:该驱动安装时,必须联网) 这样此文件就位于/boot目录下了 方法二: 在树莓派上,切换到/boot目录 然后用wget直接下载到本地 cd /boot
sudo wget www.waveshare.net/w/upload/9/99/LCD-show-171219.tar.gz 方法三: 有文章提到git上也有驱动的文件,可以使用git去下载,地址是:https://github.com/goodtft/LCD-show 可以使用: cd /boot
sudo git https://github.com/goodtft/LCD-show.git 此种方法我这边因为网络问题,没有尝试。理论上可以获得最新的驱动。 确保下载到/boot目录后,切换到/boot下 cd /boot
tar xzvf /boot/LCD-show-171219.tar.gz
cd LCD-show/
chmod +x LCD35-show
./LCD35-show 若是通过git方法下载的,就没必要tar解压缩了。 使用方法: LCD/HDMI切换 cd LCD-show
执行sudo ./LCD-hdmi cd LCD-show
执行sudo ./LCD35-show
安装完触摸驱动后,可以通过...
完整的前后端图片压缩上传,后台语言php
&!DOCTYPE html&
&meta charset="utf-8" /&
&meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport"&
&title&文件api&/title&
&link rel="stylesheet" href="../bootstrap/css/bootstrap.min.css"&
#previewImgDiv {
width: 200
height: 200
display: table-
background: #f2f2f2;
border: 1px solid #
vertical-align:
text-align:
margin-bottom: 20
#previewImgDiv img {
max-width: 100%;
max-height: 100%;
&body style="padding:20"&
&div id="test-file-info"&&/div&
&div id="previewImgDiv"&图片预览&/div&
&div class="file-input" style="margin-top:20"&
&label for="xFile" class="btn btn-primary"&选择图片&/label&
&button id="upload" class="btn btn-success"&上传图片&/butto...
详细解读阿里巴巴开源技术,包括框架、组件、引擎、数据库/存储、平台/系统、解决方案、工具、中间件、Web Sever、设计等十大类73款!
**工厂模式**
本文介绍如何利用imagenet比赛上训练好的inception v3冻结的pb模型进行inference。 1.下载inception v3 pb文件。 2.导入pb到TensorFlow。 3.获取输入与预测Tensor。 4.加载图片 5.进行inference 【一】先看代码 import tensorflow as tf
import numpy as np
下载训练好的pb文件
'http://download.tensorflow.org/models/image/imagenet/inception-.tgz'
pb_path = r"D:\TensorFlow-model\inception-\classify_image_graph_def.pb"
with tf.gfile.FastGFile(pb_path,'rb') as f:
graph_def = tf.GraphDef()
graph_def.ParseFromString(f.read())
tf.import_graph_def(graph_def, name='')
with tf.Session() as session:
#获取pb文件中模型的所有op,主要是为了获得input与output
print(tf.get_default_graph().get_operations())
image = "D:\TensorFlow-model\inception-\cropped_panda.jpg"
#解码图片作为inference的输入
image_data = tf.gfile.FastGFile(image, 'rb').read()
softmax_tensor = session.graph.get_tensor_by_name('softmax:0')
predictions = session.run(softmax_ten...
在raft协议中,snapshot主要用来压缩raft日志、减少raft日志的数量,一旦正确产生并持久化了一个snapshot,那么在这个snapshot之前的日志全部都可以直接丢掉。 snapshot定义
etcd中对raft snapshot的定义如下(在文件raft.pb.go):
type Snapshot struct {
`protobuf:"bytes,1,opt,name=data" json:"data,omitempty"`
SnapshotMetadata `protobuf:"bytes,2,opt,name=metadata" json:"metadata"`
XXX_unrecognized []byte
`json:"-"`
其中的Data为snapshot的数据部分,这部分通常就是应用状态机数据,而Metadata则是snaoshot的元信息(包括集群当前的配置状态、日志索引、该条索引日志对应的任期号),定义如下: // snapshot的元数据
type SnapshotMetadata struct {
ConfState `protobuf:"bytes,1,opt,name=conf_state,json=confState" json:"conf_state"` // 最后一次的配置状态
`protobuf:"varint,2,opt,name=index" json:"index"`
// 被快照取代的最后的条目在日志中的索引...
# Federation(联邦) 此页面解释了为什么以及如何使用联邦来管理多个Kubernetes集群。 - Why federation - [Caveats](https://kubernetes.io/docs/concepts/cluster-administration/federation/#caveats) - [Hybrid cloud capabilities](https://kubernetes.io/docs/concepts/cluster-administration/federation/#hybrid-cloud-capabilities) - [Setting up federation](https://kubernetes.io/docs/concepts/cluster-administration/federation/#setting-up-federation) - [API resources](https://kubernetes.io/docs/concepts/cluster-administration/federation/#api-resources) - [Cascading deletion](https://kubernetes.io/docs/concepts/cluster-administration/federation/#cascading-deletion) - [Scope of a single cluster](https://kubernetes.io/docs/concepts/cluster-administration/federation/#scope-of-a-single-cluster) - [Selecting the right number of clusters](https://kubernetes.io/docs/concepts/cluster-administration/federation/#selecting-the-right-number-of-clusters) - [What’s next](https://kubernetes.io/docs/concepts/clust...
内容太多!就贴个转发地址吧。 https://juejin.im/post/5aa252acd5de?utm_source=gold_browser_extension
## 背景 包装一个用户服务,一部分功能需要调用远程服务,而另一部分功能调用本地方法,如: ```java @FeignClient(value="USER-SERVICE") public interface RemoteUserService{ @GetMapping("getUserByUserId") public User getUserByUserId(String userId); } public interface LocalUserService{ public String getUserId(); } @Service public class LocalUserServiceImpl implements LocalUserService{ @Autowired private HttpServletR public String getUserId(){ return (String)request.getSession().getAttribute("user-id"); } } ``` 为了简化篇幅,并没有处理异常。 当使用者使用这两个用户相关的服务,就需要自动装载两个Service: ```java @Autowired private LocalUserService localUserS @Autowired private RemoteUserService remoteUserS ``` 能不能简化一下呢?将两个服务整合。 ### 尝试将本地方法加入Feign接口 ```java @FeignClient(value="USER-SERVICE",fallback=UserServiceHystrix.class) public interface UserService{ @GetMapping("getUserByUserId") public User getUserByUserId(String userId); public ...
go goroutine chan 并发
对接支付宝支付的前提: 1,商户开通支付能力 登录蚂蚁金服 开放平台:https://open.alipay.com/platform/home.htm 需要开通 的功能选项有: 创建应用,类型是:网页&移动应用 设置应用的RSA 等各项参数,界面如下: 支付宝推荐使用RSA2 加密方式,老版的加密方式只有RSA 和md5,没有RSA2. 本项目使用RSA2 加密方式 2,对接支付宝依赖的jar包
&!-- https://mvnrepository.com/artifact/net.guerlab/sdk-alipay-core --&
&dependency&
&groupId&net.guerlab&/groupId&
&artifactId&sdk-alipay-core&/artifactId&
&version&1.0.3&/version&
&/dependency&
我写了一个专门封装对接支付宝的Service 层 见代码:https://gitee.com/kunlunsoft/pay_service.git 项目结构: 发起支付 控制器(需根据实际情况修改): 下面的"/order/startPay"接口 package com.girltest.web.controller.
import com.common.annotation.NoL
import com.common.bean.BaseResponseD
import com.common.dict.Constant2;
import com.common.util.RedisH
import com.common.util.SystemHWU
import com.girltest.dao.AlipayNotifySuccess...
首先声明,转载自:https://my.oschina.net/kimver/blog/1634575,感谢原创作者,我修改了部分内容以及Nginx的配置。搭建过程从头run了一遍 阅读目录: 1. 摘要 2. 使用 acme.sh 的方式 3. 配置Nginx 4. 注意事项及说明 1. 摘要
摘要: 申请Let's Encrypt通配符HTTPS证书
Let's Encrypt 发布的 ACME v2 现已正式支持通配符证书,接下来将为大家介绍怎样申请,Let's go. 注 本教程是在centos 6下操作的,其他Linux系统大同小异。
Nginx的搭建:https://my.oschina.net/u/3209432/blog/1581391
Nginx配置Https: https://my.oschina.net/u/3209432/blog/. 使用 acme.sh 的方式
2.1 获取acme.sh
[root@loubobooo ~]# curl https://get.acme.sh | sh 如下图所示安装成功
1.1 执行以下命令
[root@loubobooo ~]# source ~/.bashrc
[root@loubobooo ~]# acme.sh 2.开始获取证书 acme.sh强大之处在于,可以自动配置DNS,不用去域名后台操作解析记录了,我的域名是在阿里注册的,下面给出阿里云解析的例子,其他地方注册的请参考这里自行修改:传送门 请先前往阿里云后台获取App_Key跟App_Secret 传送门...
1、firewalld的基本使用 启动: systemctl start firewalld 查看状态: systemctl status firewalld
停止: systemctl disable firewalld 禁用: systemctl stop firewalld
2.systemctl是CentOS7的服务管理工具中主要的工具,它融合之前service和chkconfig的功能于一体。 启动一个服务:systemctl start firewalld.service 关闭一个服务:systemctl stop firewalld.service 重启一个服务:systemctl restart firewalld.service 显示一个服务的状态:systemctl status firewalld.service 在开机时启用一个服务:systemctl enable firewalld.service 在开机时禁用一个服务:systemctl disable firewalld.service 查看服务是否开机启动:systemctl is-enabled firewalld.service 查看已启动的服务列表:systemctl list-unit-files|grep enabled 查看启动失败的服务列表:systemctl --failed 3.配置firewalld-cmd 查看版本: firewall-cmd --version 查看帮助: firewall-cmd --help 显示状态: firewall-cmd --state 查看所有打开的端口: firewall-cmd --zone=public --list-ports 更新防火墙规则: firewall-cmd --reload 查看区域信息:
firewall-cmd --get-active...
带模板的邮件系统对接
XAMPP下载地址:https://www.apachefriends.org/zh_cn/download.html 下载好XAMPP安装程序,放入服务器根目录 运行安装程序
./xampp-linux-x64-7.0.28-0-installer 安装完成后,设置XAMPP开机启动 1.打开rc.local文件,该文件为Linux默认启动文件
vim /etc/rc.local 2.将启动命令加入文件中
/opt/lampp/lampp start 注:XAMPP相关问题地址:https://www.apachefriends.org/faq_linux.html
2014年,GoogLeNet和VGG是当年ImageNet挑战赛(ILSVRC14)的双雄,GoogLeNet获得了第一名、VGG获得了第二名,这两类模型结构的共同特点是层次更深了。VGG继承了LeNet以及AlexNet的一些框架结构(详见
大话CNN经典模型:VGGNet),而GoogLeNet则做了更加大胆的网络结构尝试,虽然深度只有22层,但大小却比AlexNet和VGG小很多,GoogleNet参数为500万个,AlexNet参数个数是GoogleNet的12倍,VGGNet参数又是AlexNet的3倍,因此在内存或计算资源有限时,GoogleNet是比较好的选择;从模型结果来看,GoogLeNet的性能却更加优越。 小知识:GoogLeNet是谷歌(Google)研究出来的深度网络结构,为什么不叫“GoogleNet”,而叫“GoogLeNet”,据说是为了向“LeNet”致敬,因此取名为“GoogLeNet” 那么,GoogLeNet是如何进一步提升性能的呢? 一般来说,提升网络性能最直接的办法就是增加网络深度和宽度,深度指网络层次数量、宽度指神经元数量。但这种方式存在以下问题: (1)参数太多,如果训练数据集有限,很容易产生过拟合; (2)网络越大、参数越多,计算复杂度越大,难以应用; (3)网络越深,容易出现梯度弥散问题(梯度越往后穿越容易消失),难以优化模型。 所以,有人调侃...
大数据Spark有怎样的缓存机制?首先Spark是开源的,所以翻看一下Spark的代码也能够多少了解一下Spark的缓存机制。在Spark较早的版本中,CacheManager的主要功能就是缓存,假设用户将一个分区的RDD 数据 cache了,当再次需要使用这份数据的时候是可以从缓存中进行提取的。 CacheManager底层存储是BlockManager,CacheManager负责维护缓存的元信息。在Spark的缓存中,就是把 RDD cache 在 Blockmanager 中存储,如果下次在需要 RDD,可以直接从缓存中获取,减少了重头再算的麻烦。 在缓存中,常见的有以下一些问题:持久化策略、RDD 缓存的过程、淘汰机制、缓存的更新问题等。这些问题在spark cache机制中都有相应的处理策略。 例如持久化策略:Spark为持久化 RDD 定义了几种不同的机制,用不同的 StorageLevel 值表示。尚学堂陈老师指出,rdd.cache()可将 RDD 存储为未序列化的 Java对象。当Spark在估计内存不够的情况下存放一个分区时,就可以在不同的内存中存放该分区,在下次需要的时候就可以重新计算。当对象需要频繁或低延访问时适合StorageLevel.MEMORY,可避免序列化的带来的成本。相比其他而言,该选项要占用更大的内存空间。同时也会影响Java GC回收的效率。 再例如...
分布式Session的实现有很多,从简单到复杂各种各样,但是要做到分布式Session跟原生本地Session一致的API,对开发人员几乎是0门槛是不容易的。SpringSession 提供了现成的分布式Session功能,本文就是介绍SpringSession的实现细节
在某论坛看见有这个需求,就抽时间做了一个。 第一次的构想是:DNS轮询 + 节点 显然出现了许多问题,速度慢,分载不均匀。 现在做了一套 云转码系统 + CDN系统 ---------- 比较了一下云转码系统市面上最多的就是 PPOVD系统,但是老板已经放弃了项目。想出了这套源码,价格有点贵,接不了盘。考虑下决定自己做这套系统。单一上传处理,速度太慢。所以本地软件进行批量处理,然后传递到服务器,并发送给cdn系统进行缓存。 DNS轮询适合钱少的中小型企业,成本很低,dnspod、xnsdns(可能打错了),智能dns。能自动分配压力。虽然不够精准,但是对教育行业、在线点播等业务还是够用了。 ----------- ![![输入图片说明](https://static.oschina.net/uploads/img/34804_Bm78.png "在这里输入图片标题")] ![输入图片说明](https://static.oschina.net/uploads/img/35005_Q5YE.png "在这里输入图片标题")
背景 和女朋友异地恋一年多,为了保持感情我提议每天晚上视频聊天一次。 从好上开始,到现在,一年多也算坚持下来了。 问题 有时候聊天的过程中,我的网络或者她的网络可能会不好,视频就会卡住,听不到对方的声音,过一会儿之后才会恢复。 中间双方可能就要不断的确认网络是否恢复,但是有时候会: 她:“你可以听到了吗?” 我:“可以了,你呢?”、 她:“喂喂,你可以听到了吗?” 我:“可以了,我可以听到了,你呢?” 她:“你可以听到了吗?” ..... 这种情况很蛋疼,那么怎样才能找一个简单的办法,让两个人都确认自己可以听到对方的声音,对方也可以听到自己的声音呢? 注:以下情节纯属虚构
方案 TCP建立连接为什么是三次握手,而不是两次或四次? TCP,名为传输控制协议,是一种可靠的传输层协议,IP协议号为6。 顺便说一句,原则上任何数据传输都无法确保绝对可靠,三次握手只是确保可靠的基本需要。 举个日常例子,打电话时我们对话如下:
对应为客户端与服务器之间的通信: 于是有了如下对话: 我:1+1等于几? 她:2,2+2等于几? 我:4 首先两个人约定协议 1.感觉网络情况不对的时候,任何一方都可以发起询问 2.任何情况下,若发起询问后5秒还没收到...
介绍一个类从Java编码到Java bytecode再到JVM运行的过程,在介绍过程中分析JVM方法区(非堆)的存储模型。
一、概述 ELK 已经成为目前最流行的集中式日志解决方案,它主要是由Beats、Logstash、Elasticsearch、Kibana等组件组成,来共同完成实时日志的收集,存储,展示等一站式的解决方案。本文将会介绍ELK常见的架构以及相关问题解决。 Filebeat:Filebeat是一款轻量级,占用服务资源非常少的数据收集引擎,它是ELK家族的新成员,可以代替Logstash作为在应用服务器端的日志收集引擎,支持将收集到的数据输出到Kafka,Redis等队列。 Logstash:数据收集引擎,相较于Filebeat比较重量级,但它集成了大量的插件,支持丰富的数据源收集,对收集的数据可以过滤,分析,格式化日志格式。 Elasticsearch:分布式数据搜索引擎,基于Apache Lucene实现,可集群,提供数据的集中式存储,分析,以及强大的数据搜索和聚合功能。 Kibana:数据的可视化平台,通过该web平台可以实时的查看 Elasticsearch 中的相关数据,并提供了丰富的图表统计功能。 二、ELK常见部署架构 2.1、Logstash作为日志收集器 这种架构是比较原始的部署架构,在各应用服务器端分别部署一个Logstash组件,作为日志收集器,然后将Logstash收集到的数据过滤、分析、格式化处理后发送至Elasticsearch存储,最后使用Kibana进...
本篇只讲了协程库的使用。还有中篇讲协程的启动和切换实现原理,下篇核心讲解kotlin协程在JVM层的实现原理。 这可能是至今为止最详细实用的 Kotlin 协程库详解了。
详细解读阿里巴巴开源技术,包括框架、组件、引擎、数据库/存储、平台/系统、解决方案、工具、中间件、Web Sever、设计等十大类73款!
前文我们介绍了redis持久化及其中的一种方法——RDB。本文将介绍另一种方式——AOF。 请大家带着三个问题来思考这两种方法: 1. 如果一个系统中同时存在AOF和RDB,它们是冲突还是协作? 2. 为什么AOF会在RDB之后产生出现? 3. 相比于RDB,本文介绍的AOF会有什么优缺点?
AOF(Append Only File)
官网的原文介绍如下: AOF advantages Using AOF Redis is much more durable: you can have different fsync policies: no fsync at all, fsync every second, fsync at every query. With the default policy of fsync every second write performances are still great (fsync is performed using a background thread and the main thread will try hard to perform writes when no fsync is in progress.) but you can only lose one second worth of writes. The AOF log is an append only log, so there are no seeks, nor corruption problems if there is a power outage. Even if the log ends with an half-written command for some reason (disk full or other reasons) the redis-check-aof tool is able to fix it easily. Redis i...
# 从0开始搭建自动部署环境 ## 前言 从Docker改变使用动态库后,DooD不再可行,而Dind依然可行。针对此改变,重新整理并记录自动部署环境配置步骤。 此环境是实现微服务自动部署的基础,使用jenkins持续集成工具,并内置了java和maven,并实现了容器内运行Docker命令的功能。 ## 软件环境 - 宿主机win10 - 虚拟机CentOS-7-x86_64-Minimal-1708 - Docker 17.09.0-ce - apache-maven-3.5.2 - jdk 1.8.0_151 - jenkins 2.73.3 ## 虚拟机安装配置 ### 1. 安装Docker 参考官方教程[Get Docker CE for CentOS](https://docs.docker.com/engine/installation/linux/docker-ce/centos/#set-up-the-repository) 可选项:更换源。官方源下载Docker可能很慢,更换成国内的Docker源,比如阿里云的Docker源[https://download.docker.com/linux/centos/docker-ce.repo](https://download.docker.com/linux/centos/docker-ce.repo) ### 2. 启动Docker并设置开机自启 ``` $ sudo service docker start $ sudo chkconfig docker on ``` ### 3. 更换Docker镜像源 从Docker官方源下载镜像可能很慢,更换成阿里云的源即可。阿里云专属加速器[地址](https://cr.console.aliyun.com/?spm=...
搜索是大数据领域里常见的需求。Splunk和ELK分别是该领域在非开源和开源领域里的领导者。本文利用很少的Python代码实现了一个基本的数据搜索功能,试图让大家理解大数据搜索的基本原理。 布隆过滤器 (Bloom Filter) 第一步我们先要实现一个布隆过滤器。 布隆过滤器是大数据领域的一个常见算法,它的目的是过滤掉那些不是目标的元素。也就是说如果一个要搜索的词并不存在与我的数据中,那么它可以以很快的速度返回目标不存在。 让我们看看以下布隆过滤器的代码: class Bloomfilter(object):
A Bloom filter is a probabilistic data-structure that trades space for accuracy
when determining if a value is in a set.
It can tell you if a value was possibly
added, or if it was definitely not added, but it can't tell you for certain that
it was added.
def __init__(self, size):
"""Setup the BF with the appropriate size"""
self.values = [False] * size
self.size = size
def hash_value(self, value):
"""Hash the value provided and scale it to fit the BF size"""
springboot+vue的前后端分离与合并
本文主要内容:①我为啥拖延;②MariaDB的BSL许可证;③BSL示例。下一步准备介绍下MySQL和MariaDB的版权细节问题。
原文出处,在 Spring For All 社区(http://spring4all.com ): http://www.spring4all.com/article/213 最近,开源社区发生了一件大事,那个全国 Java 开发者使用最广的开源服务框架 Dubbo 低调重启维护,并且 3 个月连续发布了 4 个维护版本。 我上次在写[放弃Dubbo,选择最流行的Spring Cloud微服务架构实践与经验总结](http://mp.weixin.qq.com/s/bciSlKearaVFQg1QWOSn_g)这篇文章的时候,就有很多的网友给我留言说,Dubbo 又开始更新了。我当然是清楚的,我也一直在关注着 Dubbo 的走向,在几个月前技术圈里面就有一个消息说是 Dubbo 又开始更新了,大家议论纷纷不知真伪。我还专门跑到 GitHub 上面进行了留言询问,最后在 Dubbo 的 gitter 聊天室里面找到了确信的答案,说是正在组建团队。虽然稍稍有所期待,但也不知道阿里这次拿出了多少的诚意来做这件事,于是我昨天又到 GitHub 逛了一下,发现从 9 月开始,阿里三个月连着发布了四个版本,还是非常有诚意的,值得关注。 ## Dubbo简介 Dubbo 是阿里巴巴公司一个开源的高性能服务框架,致力于提供高性能和透明化的 RPC 远程服务调用方案,以及 SOA 服务治理方案,使得应用可通过高性能 RPC 实现服务的输出、输入功能...
### 如何7步实现根据源码包创建rpm包 --- & 本文是"[7 Steps to Build a RPM Package from Source on CentOS / RedHat](http://www.thegeekstuff.com/2015/02/rpm-build-package-example/)"一文的简单翻译。 **version: 0.1.0 ** 有时你可能需要获取一个开源应用的源码包,但是可能没有无法通过该应用的RPM文件来安装到系统。 在这种情况下,你既可以编译源码安装,也可以以源码包来创建一个rpm包文件,实现安装应用的功能。 同样存在一种情况即你想要创建一个你自己开发的自定义的RPM包。 这篇指南解释了如何提高源码来创建一个rpm包。 为了创建rpm包,你将需要源码包(通常为一个压缩文件,其内也包含了SPEC文件)。 SPEC文件包含以下说明:如何创建rpm包,包内包含的文件,安装的路径。 RPM将展现创建过程中的测试过程。 执行spec文件中的prep块中定义的系统命令和宏命令。 检测文件列表的内容 执行spec文件中的build块中定义的系统命令和宏命令。在这一步中文件列表中的宏命令也被执行。 创建二进制包文件 创建源码包文件 一旦RPM执行了上述步骤,将创建二进制的包文件和源码包文件。 二进制包文件包含所有安装或卸载包的额外信息的源文件。 通常安装包的所有...
## 介绍 为了演示Hutool-http的http请求功能,因此这个栗子用红薯家的开源资讯开刀,在此做个简单的Demo。 ## 开始 ### 分析页面 1. 打开红薯家的主页,我们找到最显眼的开源资讯模块,然后点击“更多”,打开“开源资讯”板块。 ![](https://static.oschina.net/uploads/img/04312_zJD8.png) 2. 打开F12调试器,点击快捷键F12打开Chrome的调试器,点击“Network”选项卡,然后在页面上点击“全部资讯”。 ![](https://static.oschina.net/uploads/img/04634_1ahd.png) ![](https://static.oschina.net/uploads/img/04743_eJBy.png) 3. 由于红薯家的列表页是通过下拉翻页的,因此下拉到底部会触发第二页的加载,此时我们下拉到底部,然后观察调试器中是否有新的请求出现。如图,我们发现第二个请求是列表页的第二页。 ![](https://static.oschina.net/uploads/img/05000_V7Sj.png) 4. 我们打开这个请求地址,可以看到纯纯的内容。红框所指地址为第二页的内容,很明显p参数代表了页码page。 ![](https://static.oschina.net/uploads/img/05156_dTb8.png) 5. 我们右键点击后查看源码,可以看到源码。 ![](https://static...
在一般的web应用开发里通常会使用开发工具(如Eclipse、IntelJ)集成tomcat,这样可以将web工程项目直接发布到tomcat中,然后一键启动。经常遇到的一种情况是直接修改一个类的源文件,此时开发工具会直接将编译后的class文件发布到tomcat的web工程里,但如果tomcat没有配置应用的自动加载功能的话,当前JVM中运行的class还是源文件修改之前编译好的class文件。可以重启tomcat来加载新的class文件,但这样做需要再手工点击一次【restart】,为了能够在应用中即时看到java文件修改之后的执行情况,可以在tomcat中将应用配置成自动加载模式,其配置很简单,只要在配置文件的Context节点中加上一个reloadable属性为true即可,示例如下: &Context path="/HelloWorld" docBase="C:/apps/apache-tomcat/DeployedApps/HelloWorld" reloadable="true"/& 如果你的开发工具已经集成了tomcat的话应该会有一个操作界面配置来代替手工添加文件信息,如Eclipse中是如下界面来配置的: 此时需要把【Auto reloading enabled】前面的复选框钩上。其背后的原理实际也是在server.xml文件中加上Context节点的描述: &Context docBase="test" path="/test" reloadable="true"/& 这样Tomcat就会监...
Dynamo是Amazon提供的一个分布式存储NoSQL 数据库,它采用去中心化、松散耦合的方式,组成一个支持高度扩展的Key/Value 数据库,本篇我们着重分析一下,它是如何采用采用一致性hash而达到可高度扩展的。
Activiti DMN 规则引擎 规则匹配 表达式
## 前言 因今年公司新产品线较多,为了降低耦合,达到业务分离、重用,提高内部开发效率的目的,采用了基于服务组件、前后端分离的架构体系。与之前传统单应用架构相比,系统部署、配置更加复杂,为了能够频繁地将软件的最新版本,及时、持续地交付给测试团队及质量控制团队,以供评审,所以引入持续集成工具Jenkins,从而实现公司新产品持续集成,自动化部署。 ## 环境准备 - 操作系统:Windows10 - Java环境:下载 jdk-1.8.0-131-X64.zip,配置Java环境变量(参考:http://jingyan.baidu.com/article/b941bcc9ce521.html) - Maven环境:下载apache-maven-3.5.2-bin.zip,配置Maven环境变量(参考:http://wiki.jikexueyuan.com/project/maven/environment-setup.html) - Tomcat环境:下载apache-tomcat-8.5.20-windows-x64.zip,配置Tomcat环境变量(参考:http://jingyan.baidu.com/article/8065f87fcc0f.html) - Jenkins环境:下载Jenkins2.73.2 for Windows ## 安装Jenkins 1. 运行下载好的Jenkins安装包jenkins.msi,选择安装路径,点击”安装“,等待安装完成; ![11](https://gitee.com/lsjcoder/img/raw/master/%E4%BB%A3%E7%A0%81%E7%...
最近看到一个非常酷炫的menu插件,一直想把它鼓捣成vue形式,谁让我是vue的死灰粉呢,如果这都不算爱?。?开个小玩耍,我们一起来探索黑魔法吧。观看本教程的读者需要具备一定的vue和css3的知识. 本文结构 1.效果演示 2.使用方法介绍 3.关键步骤讲解 正文 1.效果演示
在线演示live demo 2.使用介绍
项目地址:github.com/MingSeng-W/vue-bloom-menu,clone项目到本地
a. 首先在单文件组件里引入menu组件,导入common文件夹stylus里的menuConfig.stylus.
b.配置相应的参数
* radius:default为100px,item距离menu的button的距离。
startAngle:defaut为0,item开始的角度,以时钟3点钟方向记为0,然后顺时针方向为递增方向。
endAngle:default为315,最后一个item的角度。
itemNum:default为8
animationDuration:default为0.5s,每个item动画的执行时间
itemAnimationDelay:d...
作者:社区 徐靖峰 原文地址:http://www.spring4all.com/article/156 在服务比较少的年代,一个系统的接口响应缓慢通常能够迅速被发现,但如今的微服务模块,大多具有规模大,依赖关系复杂等特性,错综复杂的网状结构使得我们不容易定位到某一个执行缓慢的接口。分布式的服务跟踪组件就是为了解决这一个问题。其次,它解决了另一个难题,在没有它之前,我们客户会一直询问:你们的系统有监控吗?你们的系统有监控吗?你们的系统有监控吗?现在,谢天谢地,他们终于不问了。是有点玩笑的成分,但可以肯定的一点是,实现全链路监控是保证系统健壮性的关键因子。 介绍Spring Cloud Sleuth和Zipkin的文章在网上其实并不少,所以我打算就我目前的系统来探讨一下,如何实现链路监控。全链路监控这个词意味着只要是不同系统模块之间的调用都应当被监控,这就包括了如下几种常用的交互方式: 1 Http协议,如RestTemplate,Feign,Okhttp3,HttpClient... 2 Rpc远程调用,如Motan,Dubbo,GRPC... 3 分布式Event,如RabbitMq,Kafka... 而我们项目目前混合使用了Http协议,Motan Rpc协议,所以本篇文章会着墨于实现这两块的链路监控。 ## 项目结构 ![项目结构](http://ov0zuistv.bk...
本博文是我参加 K8S技术社区深圳站Meetup分享的PPT内容,主要介绍Kubernetes在vivo容器云平台的应用与实践,重点介绍我们跟业界大多数方案不一样的地方,

我要回帖

更多关于 如何解除空间维护升级 的文章

 

随机推荐